1

CMakeLists.txt我希望在用户调用时忽略文件的一部分

make package

因此,我正在寻找一个变量,例如 CMAKE_COMMAND 或 CMAKE_PACKAGING 以便我可以做到

if (CMAKE_COMMAND EQUAL 'package') ...

或者

if (CMAKE_PACKAGING) ...

这存在吗?可以实现吗?

4

1 回答 1

0

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”时。

于 2011-06-16T10:56:22.517 回答