1.cmake_minimum_required
语法:cmake_minimum_required(VERSION X.X)
说明:CMake最低版本号要求
示例:cmake_minimum_required(VERSION 3.5)
2.project
说明:指定项目名称
示例:project(target)
3.add_executable
语法:add_executable(target source1 source2 ...)
说明:指定生成目标及依赖文件
示例:add_executable(target main.cpp)
4.set
语法:set(var value1 value2 ...)
说明:设置变量
示例:set(CMAKE_C_STANDARD 99)
set(SOURCE_FILES main.c util/memory_pool.c util/memory_pool.h util/list.h)
5.include_directories
语法:include_directories(path1 path2 ...)
说明:向工程添加多个特定的头文件搜索路径
示例:include_directories(./include ./util/include)
6.link_directories
语法:link_directories(directory1 directory2 ...)
说明:添加非标准的共享库搜索路径,相当于gcc命令-L选项,相当于设置LD_LIBRARY_PATH
示例:link_directories(./lib)
7.find_package()
语法:find_package(libname [REQUIRED]),REQUIRED可忽略
说明:cmake程序会在/usr/share/cmake-x.x/Modules/目录下,寻找FindXXX.cmake文件,
通过这个文件,读取所有关于XXX库的安装信息,如:头文件路径,共享库路径
示例:find_package(Threads),找到/usr/share/cmake-x.x/Modules/FindThreads.cmake后
获取到变量:set(CMAKE_THREAD_LIBS_INIT -lthread),这时在自己的CMakeLists中使用此变量
8.target_link_libraries
语法:target_link_libraries(target lib1 lib2 ...)
说明:为target添加需要链接的链接库
示例:target_link_libraries(target pcap codec) 或
target_link_libraries(target -lpcap -lcodec) 或
target_link_libraries(target libpcap.so -libcodec.so)
9.message
语法:message([SEND_ERROR | STATUS | FATAL_ERROR] "message to display" …)
说明:输出用户定义的信息,MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display” …)
FATAL_ERROR:FATAL_ERROR会停止编译
示例:message("hello world")
10.aux_source_directory
说明:查找当前目录下所有源文件,并将名称保存到指定的变量
示例:aux_source_directory(. DIR_SRCS)
11.add_subdirectory
语法:add_subdirectory(subdir)
说明:添加子目录,有多个子目录需分别添加
示例:add_subdirectory(utils)
12.add_library
语法:add_library(libname [SHARED|STATIC|MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN)
说明:生成链接库,默认为STATIC,MODULE使用dyld的系统有效,不支持的被当作SHARED对待
EXCLUDE_FROM_ALL参数的意思是这个库不会被默认构建,除非有其他的组件依赖或者手工构建。
示例:aux_source_directory(. DIR_LIB_SRCS)
add_library(MathLib ${DIR_LIB_SRCS})
target_link_libraries(ProjTest MathLib)
阅读(2737) | 评论(0) | 转发(0) |