1. 程式人生 > >cmake 常用變數

cmake 常用變數

1. CMAKE_BINARY_DIRPROJECT_BINARY_DIR <projectname>_BINARY_DIR 這三個變數指代的內容是一致的,如果是 in source 編譯,指得就是工程頂層目錄,如果是 out-of- source 編譯,指的是工程編譯發生的目錄。 PROJECT_BINARY_DIR 跟其他指令稍有區別,現在,你 可以理解為他們是一致的。

2. CMAKE_SOURCE_DIR PROJECT_SOURCE_DIR <projectname>_SOURCE_DIR 這三個變數指代的內容是一致的,不論採用何種編譯方式,都是工程頂層目錄。 也就是在 in source 編譯時,他跟 CMAKE_BINARY_DIR 等變數一致。 PROJECT_SOURCE_DIR 跟其他指令稍有區別,現在,你可以理解為他們是一致的。

3. CMAKE_CURRENT_SOURCE_DIR 指的是當前處理的 CMakeLists.txt 所在的路徑,比如上面我們提到的 src 子目錄。

4. CMAKE_CURRRENT_BINARY_DIR 如果是 in-source 編譯,它跟 CMAKE_CURRENT_SOURCE_DIR 一致,如果是 out-of-source 編譯,他指的是 target 編譯目錄。 使用我們上面提到的 ADD_SUBDIRECTORY(src bin) 可以更改這個變數的值。 使用 SET(EXECUTABLE_OUTPUT_PATH < 新路徑 >) 並不會對這個變數造成影響,它僅僅 修改了最終目標檔案存放的路徑。

5. CMAKE_CURRENT_LIST_FILE 輸出呼叫這個變數的 CMakeLists.txt 的完整路徑。

6. CMAKE_CURRENT_LIST_LINE 輸出這個變數所在的行。

7. CMAKE_MODULE_PATH 這個變數用來定義自己的 cmake 模組所在的路徑。如果你的工程比較複雜,有可能會自己編寫一些 cmake 模組,這些 cmake 模組是隨你的工程釋出的,為了讓 cmake 在處理 CMakeLists.txt 時找到這些 模組,你需要通過 SET 指令,將自己的 cmake 模組路徑設定一下。 比如 SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) 這時候你就可以通過 INCLUDE 指令來呼叫自己的模組了。

8. EXECUTABLE_OUTPUT_PATH 和 LIBRARY_OUTPUT_PATH 分別用來重新定義最終結果的存放目錄,前面我們已經提到了這兩個變數。

9. PROJECT_NAME 返回通過 PROJECT 指令定義的專案名稱。