0
我正在瀏覽CMakelist.txt文件,該文件有一個包含src和測試文件夾的C++項目的條目。 我需要知道以下語法的含義是什麼?CMakelist - if(DEFINED)syntax
if(DEFINED BUILD_TESTS)
add_subdirectory(tests)
endif(DEFINED BUILD_TESTS)
感謝 了rG
我正在瀏覽CMakelist.txt文件,該文件有一個包含src和測試文件夾的C++項目的條目。 我需要知道以下語法的含義是什麼?CMakelist - if(DEFINED)syntax
if(DEFINED BUILD_TESTS)
add_subdirectory(tests)
endif(DEFINED BUILD_TESTS)
感謝 了rG
您可以隨時檢查manual,但我認爲它在這裏明確:
if(DEFINED BUILD_TESTS)
檢查變量BUILD_TESTS在環境中定義。如果是這樣,:
add_subdirectory(tests)
add_subdirectory
是built in function(CMake的有那麼些),增加了一個目錄中稱爲測試(驚奇)到需要建立的東西列表/編譯。
BUILD_TESTS
本身是一個CMAKE變量,並且將確定'tests'是否將成爲Makefile的一部分。感謝@Tsyvarev指出了這一點。
感謝您的快速回復。我不知道「BUILD_TESTS」是在哪裏定義的。那就是問題所在。我正在經歷一個全新的項目,我不知道很多。 –
這會檢查'環境',就像你在運行'make'之前/期間定義的一樣。這可以在配置文件中,在Makefile中或由你在shell中完成。否則,Makefile會假設你不想構建測試。另一種選擇是在運行'make'時放置'BUILD_TESTS = 1'。它沒有被定義是一個完全可行的選擇。 – kabanus
@kabanus:表達式'DEFINED BUILD_TESTS'只檢查** CMake變量**,它不檢查*環境*。 – Tsyvarev