CMP0204ΒΆ
Added in version 4.2.
A character set is always defined when targeting the MSVC ABI.
In CMake 4.1 and below, 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 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.
This policy was introduced in CMake version 4.2.
It may be set by cmake_policy()
or cmake_minimum_required()
.
If it is not set, CMake does not warn, and uses OLD
behavior.
Note
The OLD
behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.