INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(curltest ${CURL_LIBRARY}) ELSE(CURL_FOUND) MESSAGE(FATAL_ERROR ”CURL library not found”) ENDIF(CURL_FOUND) FIND_PACKAGE 其实内部主要还是通过FIND_PATH,FIND_LIBRARY等基础命令实现的。 大型开源库路径添加方式 如果是简单的引入,可以直接...
find_path(INCLUDE_DIR NAMES gather.h HINTS ${PROJECT_SOURCE_DIR}/vac/util ${PROJECT_SOURCE_DIR}/app1 ) list(APPEND ADD_INCLUDE_DIR ${INCLUDE_DIR}) # 以追加的方式添加到 ADD_INCLUDE_DIR message("${INCLUDE_DIR}") unset(INCLUDE_DIR CACHE) # 清除变量 INCLUDE_DIR 之前的缓存 find_path(IN...
target_link_libraries(useSophus ${Sophus_LIBRARIES}) 我们怎么知道要连接Sophus_INCLUDE_DIRS,Sophus_LIBRARIES,而不是SOPHUS_INCLUDE_DIRS,SOPHUS_LIBRARIES或其他,其实 find_package主要是找到.cmake文件,然后这些变量在.cmake 里面定义了,我们看Sophus/SophusConfig.cmake: # Sophus source dir set( Sophus_SOURC...
所以我们在很多时候都会自定义 FindXXX.camke 来自己实现库的头文件/库文件的查找. 比如这里我们就会自己实现一个 FindZLIB.cmake 来查找自己的 zlib 库. FindXXX.camke 的实现 所有的 FindXXX.cmake 脚本, 其实最终就是在给 XXX_INCLUDE_DIR, XXX_LIBRARY, XXX_INCLUDE_DIRS, XXX_LIBRARIES, XXX_FOUND 赋值...
如果_FOUND 为真,需要把_INCLUDE_DIR 加入到INCLUDE_DIRECTORIES中,_LIBRARY 加入到TARGET_LINK_LIBRARIES中。 module 模式 find_package将先到 module 路径下查找Find<name>.cmake。首先它搜索${CMAKE_MODULE_PATH}中的所有路径,然后搜索/usr/share/cmake-3.5/Modules.比如find_package(Boost)搜索的文件是/usr/sh...
find_path( XXHASH_INCLUDE_DIR NAMES xxhash.h PATH_SUFFIXES xxhash ) # Look for the library. find_library(XXHASH_LIBRARY NAMES xxhash) # Handle the QUIETLY and REQUIRED arguments and set UCHARDET_FOUND to TRUE if all listed variables are TRUE. ...
include_directories("${BOO_INCLUDE_DIR}") add_executable(Bar Bar.hpp Bar.cpp) target_link_libraries(Bar ${FOO_LIBRARIES} ${BOO_LIBRARIES}) 请注意,如果系统目录(一般是 /usr/local/lib/cmake/ )里有一个Find<package>.cmake文件,但你却不想使用默认的,想自己定义一个Find<package>.cmake,即想让...
还可以使用find_library。 对于只需要头文件的库,最简单的,可以使用find_path。就是在CMakeLists.txt指定一个文件名,CMake会自动搜索,并且最后获取这个文件所在的文件夹,可以直接作为include dir。 例如stb库,https://github.com/nothings/stb 源代码里甚至没有CMakeLists.txt。毕竟全部都是头文件。这种想在CMake...
FIND_PATH(G2O_INCLUDE_DIR NAMES g2o PATHS /usr/local /opt/local PATH_SUFFIXES include NO_DEFAULT_PATH) 1. 2. 3. 4. 5. 在这个例子中,PATHS 选项指定了两个查找路径 /usr/local 和 /opt/local,而 PATH_SUFFIXES 选项指定了一个路径后缀 include。这意味着 FIND_PATH 函数会在 /usr/local/include...
# 设置属性PROPERTIES# 导入路径IMPORTED_LOCATION# ${CMAKE_SOURCE_DIR}是本 CMakeList.txt 构建脚本的路径,是 CMake 工具内置的变量 # Android CMake 也内置了一些变量,如ANDROID_ABI${CMAKE_SOURCE_DIR}/../jniLibs/armeabi-v7a/libadd.a)# 打印日志信息 ...