cmake学习(四)模块的使用和自定义模块

FIND_PACKAGE

每一个模块都会产生如下变量
_FOUND
_INCLUDE_DIR
_LIBRARY or _LIBRARIES
如果_FOUND为真,把_INCLUDE_DIR加入到INCLUDE_DIRECTORIES中,_LIBRARY加入到TARGET_LINK_LIBRARIES中。
 
编写属于自己的FindHello模块:
1.FIND_PATH(HELLO_INCLUDE_DIR hello.h /usr/include/hello /usr/local/include/hello)
2.FIND_LIBRARY(HELLO_LIBRARY_DIR NAMES hello PATH /usr/lib /usr/local/lib)
  IF(HELLO_INCLUDE_DIR AND HELLO_LIBRARY)
  SET(HELLO_FOUND TRUE)
  ENDIF(HELLO_INCLUDE_DIR)
3.FIND_PACKAGE([major.minor][QUIET][NO_MODULE]
[[REQUIRED|COMPONENTS][componets...]])
QUIET参数:去掉输出信息
REQUIRED参数:共享库是否是工程必须的,如果是必须的,那么找不到
如果在src中想调用hello模块中的内容
FIND_PACKAGE(HELLO)
为了可以让工程找到FindHELLO.cmake
在主工程的CMakeList.txt中,SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_PATH}/cmake)
通过设置FIND_PACKAGE(HELLO QUIET)可以去掉输出信息
posted @ 2020-04-09 17:19  今天的小马同学  阅读(600)  评论(0)    收藏  举报