1.cmake的基本组成
指令、变量
2. 常用指令(推荐所有指令都大写)
指令 | 作用 |
---|---|
CMAKE_MINIMUM_REQUIRED | cmake最低版本要求 |
PROJECT | 添加项目名称 |
ADD_EXECUTABLE | 指定输出文件 |
ADD_SUBDIRECTORY | 添加项目子文件夹 |
SET | 设置变量 |
INSTALL | 将项目安装在系统的环境变量 |
INCLUDE_DIRECTORIES | 系统中包含头文件的目录 |
LINK_DIRECTORIES | 增加系统中特定链接库的目录 |
TARGET_LINK_LIBRARIES | 添加目标需要的链接库 |
FIND_PACKAGE | 发现库 |
3. 编译器添加c++11
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
4.开始一个项目
1)项目的基本构成
#cmake版本的最低要求
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
#项目名称
PROJECT(PROJECT_NAME)
# 添加生成的可执行文件(将main.cpp生成out)
ADD_EXECUTABLE(out main.cpp)
2)当项目中有子目录时
#添加子目录,注意添加顺序,碰到此指令先进入文件夹中处理,所以一定要靠前
ADD_SUBDIRECTORY(subdirectory_name)
#AUX_SOURCE_DIRECTORY (TODO)
AUX_SOURCE_DIRECTORY(subdirectory_name)