项目属性
CMAKE_VERSION
cmake_minimum_required(VERSION 3.2)
if(CMAKE_VERSION VERSION_LESS "3")
add_definitions(-std=c++14)
else()
# add_definitions(-std=c++14)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
endif()
CMAKE_BUILD_TYPE
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif()
message("BUILD TYPE:" ${CMAKE_BUILD_TYPE})
第三方库
编译相关
添加g++标志位
add_definitions:
if(CMAKE_VERSION VERSION_LESS "3")
add_definitions(-std=c++14)
else()
# add_definitions(-std=c++14)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
endif()
set_target_properties设置可执行文件属性
# 添加可执行文件
add_executable(MyExecutable main.cpp)
# 设置可执行文件的属性
set_target_properties(MyExecutable PROPERTIES
OUTPUT_NAME "myapp"
OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
COMPILE_OPTIONS "-Wall"
LINK_OPTIONS "-L/some/path"
INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/include"
LINK_LIBRARIES mylib
)
链接
include_directories
include_directories(${PROJECT_SOURCE_DIR})
文件
获取文件
file
file(GLOB_RECURSE CPP_SOURCES "*.cpp") # 获取文件路径
get_filename_component
cmake(三十一)Cmake之get_filename_component指令
get_filename_component(filename ${cpp_name} NAME_WE) # 获取文件不含扩展名
- DIRECTORY:文件所在目录
- NAME:没有目录名的文件名
- NAME_WE: 没有文件名和扩展名的文件名
- LAST_EXT:最后一个扩展名
- NAME_WLE:没有目录和最后一个扩展名的文件名