Skip to content

cmake-generator-expressions

约 134 字小于 1 分钟

2026-06-21

生成器表达式

先看两个典型用法,非常常见:

target_include_directories(
    MyTarget
  PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:include>
)

头文件在构建时在 ${CMAKE_CURRENT_SOURCE_DIR}/include,安装时在 include

根据构建时的配置在 Debug 和 Release 模式下定义宏,例如日志 Debug 模式更详细,或者 Debug 和 Release 代码走不同分支:

target_compile_definitions(MyApp PRIVATE "MYAPP_BUILD_CONFIG=$<CONFIG>")

相关信息

形如 $<KEYWORD:value> 的表达式,KEYWORD 会在构建和安装时被求值,如果求值结果为 1 则 value 值被保留。