在CMake 中,有一些函数是比较常用的,用于执行各种任务。以下是使用频率较高的 20 个 CMake 函数,并对其用法进行简要说明和示例:
message
:
用法: 打印消息到控制台。
示例:
message(STATUS "Hello, CMake!")
project
:
用法: 定义一个项目,设置项目名称和语言。
示例:
project(MyProject CXX)
add_executable
:
用法: 添加可执行文件。
示例:
add_executable(my_executable source1.cpp source2.cpp)
add_library
:
用法: 添加库文件。
示例:
add_library(my_library source1.cpp source2.cpp)
target_link_libraries
:
用法: 链接目标与库文件。
示例:
target_link_libraries(my_executable my_library)
find_package
:
用法: 查找并加载外部包。
示例:
find_package(Boost REQUIRED COMPONENTS filesystem system)
include_directories
:
用法: 添加包含目录。
示例:
include_directories(include)
target_include_directories
:
用法: 设置目标的包含目录。
示例:
target_include_directories(my_executable PUBLIC include)
add_definitions
:
用法: 添加预处理器定义。
示例:
add_definitions(-DDEBUG)
set
:
用法: 设置变量的值。
示例:
set(MY_VARIABLE "Hello")
if
/ **else
/ endif
:
用法: 条件判断。
示例:
if(BUILD_TESTS)
add_subdirectory(tests)
endif()
foreach
:
用法: 遍历列表或范围。
示例:
foreach(file IN LISTS sources)
message(STATUS "Source File: ${file}")
endforeach()
file
:
用法: 文件操作相关命令。
示例:
file(GLOB sources src/*.cpp)
add_subdirectory
:
用法: 添加子目录。
示例:
add_subdirectory(lib)
option
:
用法: 添加用户选项。
示例:
option(BUILD_TESTS "Build tests" ON)
configure_file
:
用法: 配置文件生成。
示例:
configure_file(config.h.in config.h)
add_dependencies
:
用法: 添加目标的依赖项。
示例:
add_dependencies(my_executable my_library)
target_compile_features
:
用法: 指定目标的语言特性。
示例:
target_compile_features(my_executable PRIVATE cxx_std_11)
install
:
用法: 安装目标文件。
示例:
install(TARGETS my_executable DESTINATION bin)
get_target_property
:
用法: 获取目标属性的值。
示例:
get_target_property(MY_LIB_INCLUDE_DIRS my_library INCLUDE_DIRECTORIES)
message(STATUS "Include Directories: ${MY_LIB_INCLUDE_DIRS}")
这些函数是在CMake项目中经常使用的一些基本函数。具体的用法和参数取决于项目的需求和结构。