rea*_*alh 3 cmake subdirectory
我希望我的源在许多子目录中组织,但能够创建单个可执行文件而无需为每个子目录构建库.CMake能做到吗?就像是:
ADD_EXECUTABLE(foo a/main.cpp a/other.cpp b/another.cpp)
这么简单吗?使用/作为目录分隔符而不管平台?
Ser*_*lov 10
这是我的简单例子
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(foo CXX)
# get all *.cpp files recursively
file(GLOB_RECURSE SRC_FILES ${PROJECT_SOURCE_DIR}/*.cpp)
add_executable(foo ${SRC_FILES})
Run Code Online (Sandbox Code Playgroud)
另一个变体(对于大型代码库而言可能更好)是CMakeLists.txt对每个子目录使用单独的变体,在其中您使用隔离目录的源添加到目标target_sources,也许某些特定的配置设置\包括这些源的条件:
target_sources( SomeExeOrLib PRIVATE source1.h source1.cpp )
Run Code Online (Sandbox Code Playgroud)
在这里,您还可以通过指定来控制范围PRIVATE,其他选项是INTERFACE或PUBLIC。在此处查看详细信息:https : //cmake.org/cmake/help/v3.3/command/target_sources.html
| 归档时间: |
|
| 查看次数: |
15146 次 |
| 最近记录: |