2017-08-20 40 views
0

我有一個庫(即CGAL)。它爲沒有與CGAL一起發貨的第三方庫(即Intel TBB)提供FindMODULE.cmake文件。不幸的是,這個文件有一個我需要修復的錯誤。 (這個bug似乎與不兼容目錄結構,但在這裏,這不是問題的關鍵。)使用CMake find_package與自定義,錯誤文件

所以我的項目的CMakeLists.txt有一行:

find_package(TBB) 

這將調用FindTBB.cmake這在CGAL的目錄結構中提供。

現在,我需要修復FindTBB.cmake中的一個bug。我想複製該文件並將固定版本直接放入我的項目目錄中。

調用find_package時,如何告訴CMake在我的項目目錄中使用FindTBB.cmake(而不是由CGAL提供的)?

+2

您可以嘗試'設置(CMAKE_MODULE_PATH 「 _SOURCE_DIR /路徑/到/固定/模塊」 $ {} CMAKE_MODULE_PATH)' – Gluttton

+0

無關,但還是:你已經打開了一個問題,對於CGAL?他們可能有興趣解決這個問題。 – usr1234567

回答

0

替代做法:

  1. 將文件複製到你的模塊目錄中,並修改它。
  2. 致電find_package(TBB)在你做任何與CGAL有關的事情之前。
  3. 使用CMake調用來查找/與CGAL交互。如果幸運的話,所有檢查的結果都會被緩存,並且可以正常工作。它依然可能無法工作,具體取決於實際完成的工作。
0

在這種情況下,find_package函數可能太重了,您可以試試像這樣包含重定位的.cmake文件。

include(<local path>/FindTBB.cmake) 
相關問題