CMakeLists.txt
我希望在用户调用时忽略文件的一部分
make package
因此,我正在寻找一个变量,例如 CMAKE_COMMAND 或 CMAKE_PACKAGING 以便我可以做到
if (CMAKE_COMMAND EQUAL 'package') ...
或者
if (CMAKE_PACKAGING) ...
这存在吗?可以实现吗?
CMake 生成包含一些“预定义”make 目标的 make 文件,这些目标遵循使用它们的人所期望的约定。诸如 all、install、package 和 test 等目标。
默认情况下,'install' 和 'package' make 目标通常依赖于 'all' make 目标。(因此,如果您键入“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”时。