我有一个CMake C++项目,它包含一个库和多个可执行应用程序.该库包含许多文件,并且有条件地取决于用户是否想要GPU加速,库中的文件列表应该是不同的,例如
if (GPU_ACCELERATED)
add_library(my_library
file1.h
file1.cc
gpu_file2.h
gpu_file2.cc
)
else()
add_library(my_library
file1.h
file1.cc
)
endif()
Run Code Online (Sandbox Code Playgroud)
这是一种方法,但问题是我有大量的文件,file1.h file1.cc因此我非常强烈希望避免像这样重复文件列表.我宁愿喜欢这样的东西(但不是),例如
add_library(my_library
file1.h
file1.cc
if (GPU_ACCELERATED)
gpu_file2.h
gpu_file2.cc
endif()
)
Run Code Online (Sandbox Code Playgroud)
Gui*_*ume 15
使用该set命令可以创建和更新CMake变量:
set(my_SOURCES file1.h file1.cc)
if (GPU_ACCELERATED)
set(my_SOURCES ${my_SOURCES} gpu_file2.h gpu_file2.cc)
endif()
add_library(my_library ${my_SOURCES})
Run Code Online (Sandbox Code Playgroud)
这将定义一个my_SOURCES变量,如果GPU_ACCELERATED为true则会更新它.然后根据变量的内容创建库.
| 归档时间: |
|
| 查看次数: |
2508 次 |
| 最近记录: |