如何在CMake中知道我们正在生成软件包?

问题描述

| 我希望在用户调用时忽略部分“ 0”文件
make package
因此,我正在寻找诸如CMAKE_COMMAND或CMAKE_PACKAGING之类的变量,以便我可以
if (CMAKE_COMMAND EQUAL \'package\') ...
要么
if (CMAKE_PACKAGING) ...
是否存在?可以实现吗?     

解决方法

        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 \'时,它会在构建时间之后发生。