Cmake整理文件
1.引入最小版本号:
cmake_minimum_required(VERSION 版本号)
2.项目名称:
project(项目名称)
3.指定c++编译版本号
set(CMAKE_CXX_STANDARD 11)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
4.打包文件目录
set(INCLUDE_SOURCE
include/mock_turtle.h
include/painter.h
include/turtle.h)
aux_source_directory(src/Painter.cpp SRC_SOURCE)
5.搜索头文件/库文件
include_directories(include) # 头文件搜索路径
link_directories (${PROJECT_SOURCE_DIR}/lib) # 库文件搜索路径
6.相关文件目录
PROJECT_NAME : 通过 project() 指定项目名称
PROJECT_SOURCE_DIR : 工程的根目录
PROJECT_BINARY_DIR : 执行 cmake 命令的目录
CMAKE_CURRENT_SOURCE_DIR : 当前 CMakeList.txt 文件所在的目录
EXECUTABLE_OUTPUT_PATH : 二进制可执行文件输出位置
LIBRARY_OUTPUT_PATH : 库文件输出位置
BUILD_SHARED_LIBS : 默认的库编译方式 ( shared 或 static ) ,默认为 static
CMAKE_C_FLAGS : 设置 C 编译选项
CMAKE_CXX_FLAGS : 设置 C++ 编译选项
CMAKE_CXX_FLAGS_DEBUG : 设置编译类型 Debug 时的编译选项
CMAKE_CXX_FLAGS_RELEASE : 设置编译类型 Release 时的编译选项
CMAKE_GENERATOR : 编译器名称
CMAKE_COMMAND : CMake 可执行文件本身的全路径
CMAKE_BUILD_TYPE : 工程编译生成的版本, Debug / Release
7. 生成库文件
set (LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
# 生成库,动态库是SHARED,静态库是STATIC
add_library (sum SHARED sum.cpp)
add_library (max SHARED max.cpp)
8. 生成最终要生成的可执行的二进制文件
add_executable(${PROJECT_NAME} ${EXE_SOURCES} ${TEST_SOURCES} )
9.链接所需的第三方库/库文件
find_package(第三方库名称 REQUIRED)
target_link_libraries(要生成的二进制文件名称 GTest::GTest 库文件)