CMAKE_CFG_INTDIR

自版本 3.21 起弃用:此变量在 Ninja Multi-Config 上支持不佳,并且早于 $<CONFIG> 生成器表达式的出现。改为使用 $<CONFIG>

构建时指向每个配置输出子目录的引用。

对于支持构建树中多配置的本机构建系统(如 Visual Studio 生成器Xcode),该值是对构建时变量(其指定每个配置输出子目录的名称)的引用。在 Makefile 生成器 中,此值会计算为 .,因为构建树中只有一个配置。示例值

$(Configuration)     = Visual Studio
$(CONFIGURATION)     = Xcode
.                    = Make-based tools
.                    = Ninja
${CONFIGURATION}     = Ninja Multi-Config

由于这些值是由本机构建系统计算的,因此此变量仅适合在将在构建时计算的命令行中使用。预期用途的示例

add_executable(mytool mytool.c)
add_custom_command(
  OUTPUT out.txt
  COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool
          ${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt
  DEPENDS mytool in.txt
  )
add_custom_target(drive ALL DEPENDS out.txt)

请注意,对于此目的,不再需要 CMAKE_CFG_INTDIR,但为了兼容现有项目而将其保留。相反,add_custom_command() 在其 COMMAND 选项中识别可执行目标名称,因此只需使用 mytool 即可替换 ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool

此变量为只读。对其进行设置的行为未定义。在多配置构建系统中,此变量的值将作为预处理器符号 CMAKE_INTDIR 的值传递给所有源文件的编译。