我希望在用户调用
时忽略CMakeLists.txt
文件的一部分
make package
因此我正在寻找一个变量,例如CMAKE_COMMAND或CMAKE_PACKAGING,以便我能够做到
if (CMAKE_COMMAND EQUAL 'package') ...
或
if (CMAKE_PACKAGING) ...
这是否存在?可以实现吗?
答案 0 :(得分:0)
CMake生成的make文件包含一些“预定义”的make目标,这些目标遵循那些使用它们的预期。目标,如全部,安装,打包和测试。
默认情况下,'install'和'package'制作目标通常取决于'all'制作目标。 (因此,如果您键入'make install',它会首先执行'make all'以确保在安装发生之前所有内容都是最新的。与'package'类似。)
'make package'实际上做的是在封面下调用cpack:
/full/path/to/cpack --config ./CPackConfig.cmake
如果执行:
,您可以看到正在调用此命令行make package VERBOSE=1
您希望在包装盒中跳过CMakeLists.txt文件的哪一部分?没有变量,例如您正在寻找的变量,因为在CMake配置时不会发生打包;它在构建时间之后,当用户显式调用'make package'或'cpack'时发生。