| 1234567891011121314151617181920212223242526272829 |
- CMP0204
- -------
- .. versionadded:: 4.2
- A character set is always defined when targeting the MSVC ABI.
- In CMake 4.1 and below, :ref:`Visual Studio Generators` compile sources in with
- ``_MBCS``, ``_UNICODE`` or ``_SBCS`` defined due to behavior of Visual Studio
- itself. The preprocessor definition is not modeled by CMake and is therefore
- not added by other generators, such as :generator:`Ninja`.
- CMake 4.2 and above, when targeting the MSVC ABI, prefer to compile sources
- with ``_MBCS`` defined by all generators unless another charset preprocessor
- definition is found (``_UNICODE`` or ``_SBCS``).
- This policy provides compatibility with projects that have not been updated
- to be aware of the definition. Its setting is recorded by each target as
- it is created, and affects compilation of sources in that target.
- The ``OLD`` behavior for this policy does not model the ``_MBCS``
- preprocessor definition in CMake itself. The ``NEW`` behavior for this
- policy adds the ``_MBCS`` preprocessor definition to sources
- as a default encoding when targeting the MSVC ABI.
- .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.2
- .. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn
- .. include:: include/STANDARD_ADVICE.rst
- .. include:: include/DEPRECATED.rst
|