Как узнать в CMake, что мы генерируем пакет? - PullRequest
1 голос
/ 15 июня 2011

Я хочу, чтобы часть файла CMakeLists.txt игнорировалась, когда пользователь вызывает

make package

. Поэтому я ищу переменную, такую ​​как CMAKE_COMMAND или CMAKE_PACKAGING, чтобы я мог сделать

if (CMAKE_COMMAND EQUAL 'package') ...

или

if (CMAKE_PACKAGING) ...

Это существует?Можно ли этого достичь?

1 Ответ

0 голосов
/ 16 июня 2011

CMake генерирует файлы make, которые содержат некоторые «предопределенные» цели make, соответствующие соглашениям, ожидаемым теми, кто их использует.Такие цели, как all, install, package и test.

Цели make и install обычно устанавливаются по умолчанию и зависят от цели 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'.

...