CMAKE_INTERMEDIATE_DIR_STRATEGY
-------------------------------

.. versionadded:: 4.2

``CMAKE_INTERMEDIATE_DIR_STRATEGY`` is a string cache variable specifying the
strategy to use for target intermediate directories and their contents. The
supported values are:

- ``FULL``: Intermediate directories are named based on a
  ``<TARGET_NAME>.dir`` pattern (with some slight deviations and sanitizations
  applied in various places). Object file names are based on the filename of
  the source file being compiled or, if set, its :prop_sf:`OBJECT_NAME`
  property.
- ``SHORT``: Intermediate directories are named from the hash of the target
  name and the build directory location. Object file names are based on hashes
  of the source file name to reduce path lengths. This may help with projects
  that generate long paths in the build directory to support building in
  directories other than those near a root path.

When unset or the named strategy is not supported, the ``FULL`` strategy is
used.

.. note::
  This only works as a cache variable, not a locally-scoped variable.

This is supported by the following generators:

- :ref:`Ninja Generators`
- :ref:`Makefile Generators`
- :ref:`Visual Studio Generators`

.. note::
  Not all generators support all strategies and paths may differ between
  generators.
