2011-06-15 89 views
1

我想CMakeLists.txt文件的一部分被忽略,當用戶調用如何在CMake中知道我們正在生成一個包?

make package 

所以我要尋找如CMAKE_COMMAND或CMAKE_PACKAGING一個變量,這樣我可以做

if (CMAKE_COMMAND EQUAL 'package') ... 

if (CMAKE_PACKAGING) ... 

這是否存在?它可以實現嗎?

回答

0

CMake會生成包含一些「預定義」make目標的make文件,這些目標遵循使用這些目標的約定。目標,如全部,安裝,打包和測試。

默認情況下,'install'和'package'會使目標通常依賴於'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」時發生。

相關問題