我在使用CMake來管理我的構建系統方面相當新,所以如果我愚蠢,這是一個壞主意,請告訴我。在CMake中自動使用該目錄作爲項目名稱
我希望能夠建立我的CMakeLists.txt文件,這樣當我做
project(...)
目錄的名稱將自動成爲該項目的名稱。我想這樣做是因爲我覺得能夠複製一個項目的整個目錄作爲另一個項目的起點很方便。不過,儘管我總是將目錄重命名爲有意義的東西,但我經常忘記更改cmakelists.txt文件的project(name)
行,然後最終在我的構建環境中打開了多個項目,並且名稱相同,這令人感到困惑。
理想情況下,如果目錄名稱中有空格,它們將被下劃線替換。
CMake能做到這一點嗎?由於某種原因,我沒有看到這是一個壞主意嗎?
,如果您有另一個目錄中的目錄overwise你得到一個錯誤,你應該使用$ {} CMAKE_CURRENT_LIST_DIR而不是$ {} CMAKE_SOURCE_DIR。 看看鏈接:http://stackoverflow.com/questions/15662497/in-cmake-what-is-the-difference-between-cmake-current-source-dir-and-cmake-curr – Maks
@Maks - A公平點,儘管['CMAKE_CURRENT_SOURCE_DIR'](https://cmake.org/cmake/help/v3.4/variable/CMAKE_CURRENT_SOURCE_DIR.html)比['CMAKE_CURRENT_LIST_DIR']更合適(https://cmake.org/ cmake/help/v3.4/variable/CMAKE_CURRENT_LIST_DIR.html),因爲它指向包含正在爲當前項目處理的CMakeLists.txt的目錄,而'... LIST_DIR'將隨'include'調用而改變。 – Fraser
當我在不同的工作樹中籤出2-3個不同的分支並希望在QtCreator中切換它們時(例如比較/對比源和執行),這對我很有用。然後它還允許我根據項目名稱以編程方式將構建存放在不同的位置,儘管它們都應該具有相同的項目名稱。在本地,我可能會將官方項目名稱與我的目錄名稱連接起來... – sage