如何编写接受不同源外构建的CMakeLists.txt
文件?我不是在谈论Debug和Release,而是更多关于一个用于远程测试的构建,用于本地测试等等。
例如:如果我进入build_local
构建目录并运行make
我希望为本地迁移编译源代码。如果我在make
构建目录中运行build_production
,我想使用不同的配置编译源代码。我知道源代码构建是我需要的。我只是不太明白如何:
cd build_local; cmake -D local
?)CMakeLists.txt
文件,使其生成不同的默认目标(即make all
或make
),具体取决于配置是否有人提供相应文档的示例或链接?
谢谢!
答案 0 :(得分:2)
使用if
命令,您可以使用不同的含义填充默认目标(和其他),具体取决于配置。
<强>的CMakeLists.txt 强>:
...
option(LOCAL "Build local-testing project" OFF)
if(LOCAL)
add_executable(program_local local.c)
else()
add_executable(program_remote remote.c)
endif()
本地构建:
cd build_local
cmake -DLOCAL=ON ..
make
...
远程构建:
cd build_remote
cmake ..
make
在if
分支机构中,您甚至可以使用不同的add_subdirectory()
命令,因此已配置的项目可能因不同的配置而完全不同。