CMakeLists.txt中关于生成可执行文件时依赖的源文件在当前目录及子目录中的解决办法

前端之家收集整理的这篇文章主要介绍了CMakeLists.txt中关于生成可执行文件时依赖的源文件在当前目录及子目录中的解决办法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
关于生成可执行文件时依赖的源文件在当前目录及当前目录子目录中的解决办法:

因为 aux_source_directory (./ EXE_SRC)中只能将当前目录中的源代码文件添加到变量 EXE_SRC中,如果最终要生成文件还依赖与当前目录中子目录里面的源代码文件时,可以用如下的方法

list命令

list(APPEND SRC_LIST 
          a.cpp
          b.cpp
    )

list(REMOVE_ITEM SRC_LIST
          a.cpp
    )

#假设有如下文件目录和源文件.
./Folder
|
+ --- a.cpp
+ --- b.cpp
+ --- c,cpp
|
+ --- other(文件夹)
|
+ --- d.cpp
+ --- e.cpp

#--------------------------------------------------------------------
# 若该动态库的生成不止依赖于当前目录下的所有源文件,还依赖该目录下
# 子目录 ( 假设为 other) 下的源文件,则做如下处理:
aux_source_directory (./ EXE_SRC ) # 将当前目录(不包含子目录)下所有源文件保存在变量 SRC_LIST
aux_source_directory (./other OTHER_SRC) # 将当前目录子目录 other 下的源文件保存在变量 OTHER_SRC_LIST
list ( APPEND EXE_SRC ${OTHER_SRC} ) # OTHER_SRC_LIST 添加 SRC_LIST
#--------------------------------------------------------------------

# 根据变量 MODEL_SRC (代表当前目录及子目录下的所有源文件
# 生成一个动态库 MODEL_dll SHARED 代表动态库)
add_library ( EXE _dll SHARED ${ EXE_SRC } )

猜你在找的设计模式相关文章