2014-11-06 73 views
6

我想要指定一個相對於CMake當前目錄的路徑,並且一直沒能找到解決方案。如何在CMAKE中指定相對路徑?

我的項目位於一個路徑是這樣的:

C:/Projects/ProjectA/CMakeLists.txt 

,我想用一組指定下列目錄的相對路徑名()命令

C:/External/Library 

在其他什麼是CMake翻譯的

../../External/Library? 

謝謝,

回答

9

幾乎完全一樣,除了您允許CMake在另一個位置運行以進行「out-of-tree」構建。您可以通過指定相對於${CMAKE_CURRENT_SOURCE_DIR}的路徑來執行此操作,該路徑是包含當前CMakeLists.txt文件的目錄。

${CMAKE_CURRENT_SOURCE_DIR}/../../External/Library 

但是,你可能要重新考慮,而是使用FIND_LIBRARY和FIND_FILE命令來搜索一組預定義的位置,讓您的圖書館的用戶沒有保持相同的相對結構。

+0

我應該指定我試圖指向一個VTK安裝目錄。如果我運行CMake,它會在我的系統上找到VTK構建目錄,但是我已將安裝目錄放在我們的源代碼管理系統上,並且要特別指出這一點。使用SET(VTK_DIR $ {CMAKE_CURRENT_SOURCE_DIR} /../../ External/VTK)不會完成我想要的操作。謝謝 – krames 2014-11-06 19:40:58

+0

它以什麼方式不做你想做的事? – Peter 2014-11-06 19:52:37

+1

對不起 - 當我運行CMake(GUI現在)時,我想用自定義的外部路徑自動填充VTK_DIR,而不是自動從我的正常系統構建中找到的路徑。我可以手動設置它,一切都很好 - 但我希望它自動填充,以便我可以作爲構建腳本的一部分自動運行CMake – krames 2014-11-06 20:02:11

相關問題