0%

cmake 常用命令


##Commands

头文件路径,相当于编译器参数 -Idir1 -Idir2

INCLUDE_DIRECTORIES( "dir1" "dir2" ... )

库文件路径。注意:
由于历史原因,相对路径会原样传递给链接器。
尽量使用FIND_LIBRARY而避免使用这个。

LINK_DIRECTORIES("dir1" "dir2")

收集目录中的文件名并赋值给变量

AUX_SOURCE_DIRECTORY( “sourcedir” variable)

可执行程序目标

ADD_EXECUTABLE

库目标

ADD_LIBRARY

自定义目标

ADD_CUSTOM_TARGET

目标target1依赖于t2 t3

ADD_DEPENDENCIES( target1 t2 t3 )

本意是供设置 -D… /D… 等编译预处理需要的宏定义参数,对比 REMOVE_DEFINITIONS()

ADD_DEFINITIONS( "-Wall -ansi")

设置单个目标需要链接的库

TARGET_LINK_LIBRARIES( target-name lib1 lib2 ...)

设置所有目标需要链接的库

LINK_LIBRARIES( lib1 lib2 ...)

设置目标的属性 OUTPUT_NAME, VERSION, ….

SET_TARGET_PROPERTIES( ... )

打印输出信息

MESSAGE(...)

DESTINATION 相对于 ${CMAKE_INSTALL_PREFIX}

INSTALL( FILES “f1” “f2”DESTINATION . )

变量赋值

SET( VAR value [CACHE TYPE DOCSTRING [FORCE]])

列表操作

LIST( APPEND|INSERT|LENGTH|GET| REMOVE_ITEM|REMOVE_AT|SORT ...)

字符串操作

STRING( TOUPPER|TOLOWER|LENGTH| SUBSTRING|REPLACE|REGEX ...)

转换空格分隔的字符串到列表

SEPARATE_ARGUMENTS( VAR )

文件操作

FILE( WRITE|READ|APPEND|GLOB| GLOB_RECURSE|REMOVE|MAKE_DIRECTORY ...)

注意 CMAKE_INCLUDE_PATH

FIND_FILE

注意 CMAKE_INCLUDE_PATH

FIND_PATH

注意 CMAKE_LIBRARY_PATH

FIND_LIBRARY
FIND_PROGRAM

注意 CMAKE_MODULE_PATH

FIND_PACKAGE

执行外部程序

EXEC_PROGRAM( bin [work_dir] ARGS <..> [OUTPUT_VARIABLE var] [RETURN_VALUE var] )

设置选项

OPTION( OPTION_VAR “description” [initial value] )

##Ref

引用文档:

  1. cmake syntax
  2. CMake常用变量列表
  3. cmake command