2015-06-29 187 views
0

如何讓cmake在執行find_path時忽略目錄?我試圖找到系統的freetype2庫,但它正在找到我的項目中的一個。我怎樣才能忽略它?cmake - 找到忽略目錄的路徑

這裏是我的FindFreeTypeTwo.cmake是什麼樣子

FIND_PATH(_FREETYPE2_INCLUDE_DIR ft2build.h PATH_SUFFIXES freetype2) 
FIND_LIBRARY(_FREETYPE2_LIBRARIES NAMES freetype) 

INCLUDE(FindPackageHandleStandardArgs) 
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype2 DEFAULT_MSG _FREETYPE2_LIBRARIES _FREETYPE2_INCLUDE_DIR) 

if (FREETYPE2_FOUND) 
    set (FREETYPE2_INCLUDE_DIR ${_FREETYPE2_INCLUDE_DIR}) 
    set (FREETYPE2_LIBRARIES ${_FREETYPE2_LIBRARIES}) 
endif (FREETYPE2_FOUND) 

這是我的文件結構是什麼樣子。

\ 
    \ src 
    | CMakeLists.tst 
    \ build 
     \ cmake_config 
     \ find_packages 
     | FindFreeTypeTwo.cmake 
    \ (folder to exclude) 
    \ (other folders) 
+0

有一個經過良好測試的FindFreetype.cmake find-module隨CMake一起發貨。你試過了嗎? –

+0

關於您的實際問題,[find_path](http://www.cmake.org/cmake/help/v3.3/command/find_path.html)文檔應回答它。 –

回答

0

您可以更改FIND_PATH()中的參數。而不是使用PATH_SUFFIXES,你可以使用這樣的東西 FIND_PATH(_FREETYPE2_INCLUDE_DIR ft2build.h HINTS ENV FREETYPE2_INCLUDE_DIR PATHS /usr/local/include) 這是我通常使用時,我寫cmake文件。