强制cmake FIND_LIBRARY查看自定义目录

时间:2013-04-02 11:48:04

标签: cmake

cmake version 2.8.4

我有以下apache可移植运行时库,我自己编译并希望我的应用程序链接。

我的apr库所在的项目目录:

gw_proj/tools/apr/libs

在我的CMakeLists.txt中,我有以下内容:

FIND_LIBRARY(APRUTIL NAMES "aprutil-1"
  PATHS ${PROJECT_SOURCE_DIR}/tools/apr/libs)

我的问题出现在已经安装了apache可移植运行时的计算机上,它将在此文件夹中查找它:

/usr/lib

所以总会忽略我的自定义路径。

如何强制FIND_LIBRARY始终查看我的自定义目录:

gw_proj/tools/apr/libs

非常感谢任何建议

1 个答案:

答案 0 :(得分:14)

您可以使用NO_DEFAULT_PATHNO_CMAKE_ENVIRONMENT_PATH中的一个或多个来指定搜索顺序 ,NO_CMAKE_PATHNO_SYSTEM_ENVIRONMENT_PATHNO_CMAKE_SYSTEM_PATHCMAKE_FIND_ROOT_PATH_BOTHONLY_CMAKE_FIND_ROOT_PATHNO_CMAKE_FIND_ROOT_PATH

来自find_library的文档:

  

默认搜索顺序旨在针对常见用例进行最具体,最不具体。项目可以通过多次调用命令并使用NO_ *选项来覆盖订单:

find_library(<VAR> NAMES name PATHS paths... NO_DEFAULT_PATH)
find_library(<VAR> NAMES name)
     

一旦其中一个调用成功,结果变量将被设置并存储在缓存中,这样就不会再搜索任何调用。

所以在你的情况下,你可以做到

FIND_LIBRARY(APRUTIL NAMES "aprutil-1"
  PATHS ${PROJECT_SOURCE_DIR}/tools/apr/libs NO_DEFAULT_PATH)