2011-02-08 91 views
0

我在包上運行了cmake,但由此導致make失敗,因爲某些包沒有被正確包含。我可以編輯特定的find*.cmake文件以指向正確的位置嗎?手動編輯cmake文件指向正確的位置

目前,相應的文件的CMake是find_tbb.make

include(CheckIncludeFileCXX) 

check_include_file_cxx(tbb/tbb.h HAVE_TBB) 

我想,這意味着它正在尋找在tbb/tbb.h的文件。我的文件不在那裏,所以我可以編輯文件的這一行以指向更好的地方?

回答

1

我建議您編輯生成的CMakeCache.txt。

CMake的設計思想是,由於某些原因,Find *模塊可能會失敗,將任務留給用戶以填充正確的值,通常在緩存中留空,或者使用值ttb_NOT_FOUND

ccmakecmake-gui工具是專門爲此而設計的,它們提供了一個友好的界面來編輯CMake緩存中的條目。

0

編輯系統上的標準CMake模塊文件不是一個好主意。編輯這些文件可能會破壞其他CMake項目。它也使得你的CMake列表文件的可移植性降低。

更好的選擇是「分叉」那些CMake模塊文件,並將它們作爲項目的一部分。在最外面的項目文件夾中創建一個文件夾CMake並複製find*.cmake文件以適應它。進行更改,然後在你的根CMakeLists.txt修改CMake的模塊搜索路徑在項目的CMake文件夾先看看:

project (MyProject) 

set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH}) 
... 

的模塊文件在項目的CMake文件夾將覆蓋標準的模塊文件。