2015-06-29 145 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文件。