CMakeList使用参考

CMakeList 使用参考

1 set

//"set"用来定义变量 tutorial教程
set (Tutorial_VERSION_MAJOR 1)
set (Tutorial_VERSION_MINOR 0)
set(include_dir ${CMAKE_CURRENT_SOURCE_DIR}/include)

2 message

//"MESSAGE"用来打印信息,包括变量的值
MESSAGE(STATUS "include folder: " ${include_dir})

3 option

//"option"用来定义宏,"ON"表示打开,"OFF"表示关闭
option (USE_MYMATH "Use tutorial provided math implementation" ON)

4 configure_file

//configure_file: 将一份文件拷贝到另一个位置并修改它的内容
# configure_file(<input> <output> [COPYONLY] [ESCAPE_QUOTES] [@ONLY])
# configure a header file to pass some of the CMake settings to the source code
configure_file (
  "${PROJECT_SOURCE_DIR}/TutorialConfig.h.in"
  "${PROJECT_BINARY_DIR}/TutorialConfig.h"
)

5 include_directories

# add the binary tree to the search path for include files so that we will find TutorialConfig.h
//"include_directories"用来指定build时需要的头文件路径
//"PROJECT_BINARY_DIR"是内置变量,表示工程编译的目录,也就是--prefix指定的目录
include_directories("${PROJECT_BINARY_DIR}" "${include_dir}")

6 add_executable

// "add_executable"用来指定生成可执行文件,这里会生成Tutorial.out或者Tutorial.exe
add_executable(Tutorial tutorial.c)

7 target_link_libraries

// 由于tutorial.c中需要用到sqrt函数,这个函数要么来自于系统库,要么来自于自定义库,因此这里需要通过"target_link_libraries"指定链家的libraries
target_link_libraries(Tutorial m ${EXTRAL_LIBS}) 

8 CMAKE_CURRENT_SOURCE_DIR

  • 指示当前处理的 CMakeLists.txt 所在的路径,处理不同目录下的CMaleLists,这个宏的值是不一样的;在Top level中这个值就是Top Level所在目录,在lib中这个值就是lib所在的目录。

9 PROJECT_SOURCE_DIR

  • 用来表示当前project所在的目录;

10 INCLUDE_DIRECTORIES

  • 用来指定build时需要的头文件路径;

11 function

# 定义一个函数名为name 参数名为arg1 arg2 arg3(…)的函数 函数体内的命令在函数被调用的时执行
function(<name>[arg1 [arg2 [arg3 ...]]])
    COMMAND1(ARGS ...)
    COMMAND2(ARGS ...)
    ...
endfunction(<name>)

12 list

set(SRC)  list(APPEND SRC a.cpp b.cpp)  list(APPEND SRC c.cpp d.cpp)  function(tst_arguments src_list)      message("src_list = "${src_list})  endfunction()  message("SRC = "${SRC})  tst_arguments(${SRC})  ==== output ====  SRC = a.cppb.cppc.cppd.cpp  src_list = a.cpp  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值