查找在某个路径下的所有源文件

# 1. Project Name
project(libhal-adsp)
# 2. Project Env (Include/Lib Path, C/CXX/LD FLAGS)
if($ENV{SVP_PLATFORM} MATCHES "ds03h")
    aux_source_directory(./ds03h UPDRADE_FILES)
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ds03h)
elseif($ENV{SVP_PLATFORM} MATCHES "g6s")
    aux_source_directory(./g6s UPDRADE_FILES)
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/g6s)
elseif($ENV{SVP_PLATFORM} MATCHES "g5r2")
    include_directories(${CMAKE_CURRENT_SOURCE_DIR}/g5r2)
    aux_source_directory(./g5r2 UPDRADE_FILES)
endif($ENV{SVP_PLATFORM} MATCHES  "ds03h")
# N/A # 3. Project Build
set(LIB_NAME "svp_hal-adsp")
set(LIB_SRC_FILES ${UPDRADE_FILES})
add_library(${LIB_NAME} SHARED ${LIB_SRC_FILES})
target_link_libraries(${LIB_NAME} svp_persist svp_basic        )
if($ENV{SVP_PLATFORM} MATCHES "g5r2")
    target_link_libraries(${LIB_NAME} svapisound  )
endif($ENV{SVP_PLATFORM} MATCHES  "g5r2")
set_target_properties(${LIB_NAME} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
# 4. Project Install
install(TARGETS ${LIB_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}/hw
        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/hw
        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/hw)

aux_source_directory 查找在某个路径下的所有源文件。

aux_source_directory(< dir > < variable >)

  搜集所有在指定路径下的源文件的文件名,将输出结果列表储存在指定的变量中。该命令主要用在那些使用显式模板实例化的工程上。模板实例化文件可以存储在Templates子目录下,然后可以使用这条命令自动收集起来;这样可以避免手工罗列所有的实例。

 
原文地址:https://www.cnblogs.com/yuguangyuan/p/9340815.html