CMAKE_CFG_INTDIR

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

运行时引用每个配置的输出子目录。

对于支持构建树中多种配置的原生构建系统(例如 Visual Studio GeneratorsXcode),该值是对运行时变量的引用,该变量指定每个配置的输出子目录的名称。在 Makefile Generators 上,这会计算为 .,因为构建树中只有一个配置。示例值

$(Configuration)

Visual Studio

$(CONFIGURATION)

Xcode

.

基于 Make 的工具

.

Ninja

${CONFIGURATION}

Ninja 多配置

由于这些值由原生构建系统评估,因此此变量仅适用于将在构建时评估的命令行。预期用法示例

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 选项中识别可执行目标名称,因此 ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool 可以替换为仅 mytool

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