1CMAKE_CFG_INTDIR 2---------------- 3 4.. deprecated:: 3.21 5 6 This variable has poor support on :generator:`Ninja Multi-Config`, and 7 predates the existence of the :genex:`$<CONFIG>` generator expression. Use 8 ``$<CONFIG>`` instead. 9 10Build-time reference to per-configuration output subdirectory. 11 12For native build systems supporting multiple configurations in the 13build tree (such as :ref:`Visual Studio Generators` and :generator:`Xcode`), 14the value is a reference to a build-time variable specifying the name 15of the per-configuration output subdirectory. On :ref:`Makefile Generators` 16this evaluates to `.` because there is only one configuration in a build tree. 17Example values: 18 19:: 20 21 $(ConfigurationName) = Visual Studio 9 22 $(Configuration) = Visual Studio 10 23 $(CONFIGURATION) = Xcode 24 . = Make-based tools 25 . = Ninja 26 ${CONFIGURATION} = Ninja Multi-Config 27 28Since these values are evaluated by the native build system, this 29variable is suitable only for use in command lines that will be 30evaluated at build time. Example of intended usage: 31 32:: 33 34 add_executable(mytool mytool.c) 35 add_custom_command( 36 OUTPUT out.txt 37 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool 38 ${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt 39 DEPENDS mytool in.txt 40 ) 41 add_custom_target(drive ALL DEPENDS out.txt) 42 43Note that ``CMAKE_CFG_INTDIR`` is no longer necessary for this purpose but 44has been left for compatibility with existing projects. Instead 45:command:`add_custom_command` recognizes executable target names in its 46``COMMAND`` option, so 47``${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool`` can be replaced 48by just ``mytool``. 49 50This variable is read-only. Setting it is undefined behavior. In 51multi-configuration build systems the value of this variable is passed 52as the value of preprocessor symbol ``CMAKE_INTDIR`` to the compilation 53of all source files. 54