PROJECT_IS_TOP_LEVEL¶
版本 3.21 新增。
一個布林變數,指示最近在目前或以上範圍中呼叫的 project()
命令是否位於頂層 CMakeLists.txt
檔案中。
某些模組應該只作為頂層 CMakeLists.txt
檔案的一部分包含,以避免在建置樹狀結構中造成非預期的副作用,並且此變數可用於有條件地執行此類程式碼。例如,考慮 CTest
模組,它會建立目標和選項
project(MyProject)
...
if(PROJECT_IS_TOP_LEVEL)
include(CTest)
endif()
變數值在下列情況下為 true
專案的頂層目錄
由
ExternalProject
新增的外部專案的頂層目錄由
add_subdirectory()
新增的目錄,該目錄也未包含project()
呼叫由
FetchContent_MakeAvailable()
新增的目錄,如果提取的內容未包含project()
呼叫
變數值在下列情況下為 false
由
add_subdirectory()
新增的目錄,該目錄也包含project()
呼叫由
FetchContent_MakeAvailable()
新增的目錄,如果提取的內容包含project()
呼叫