CMakeLists.txt 文件是 CMake 构建系统的输入文件,它定义了构建项目的规则。CMakeLists.txt 文件使用简单的声明性语法来指定构建过程中需要的各种信息,包括源文件、目标、依赖关系、编译选项等。
CMakeLists.txt 文件的一些基本语法和关键字:
-
cmake_minimum_required
:指定 CMake 的最低版本要求。#指定了CMake最低版本为3.1 cmake_minimum_required(VERSION 3.10)
-
project
:定义项目名称和语言。#定义一个名为 MyApp 的项目,版本号为 1.0,并提供了项目的描述 project(MyApp VERSION 1.0 DESCRIPTION "A simple C++ application")
-
add_executable
:从源文件创建一个可执行文件。#源文件为 main.cpp,最终构建的可执行文件为my_app add_executable(my_app main.cpp)
-
add_library
:从源文件创建一个库。add_library(my_lib STATIC src1.cpp src2.cpp)
-
target_link_libraries
:将库链接到目标。target_link_libraries(my_app my_lib)
-
include_directories
:添加头文件目录。include_directories(include)
-
add_subdirectory
:添加一个子目录,并处理该子目录中的 CMakeLists.txt。add_subdirectory(src)
-
find_package
:查找并使用外部库。find_package(Boost REQUIRED)
-
set
:设置变量。set(CMAKE_CXX_STANDARD 11)
-
if
、elseif
、else
和endif
:条件判断。if(WIN32) # Windows specific code elseif(UNIX) # Unix specific code else() # Other system specific code endif()
-
aux_source_directory
:查找目录中的所有源文件。aux_source_directory(. SRC_FILES) add_executable(my_app ${SRC_FILES})
-
install
:指定安装规则。install(TARGETS my_app DESTINATION bin) install(FILES my_header.h DESTINATION include)