Back to Cmake

CMP0203

Help/policy/CMP0203.rst

4.3.21.2 KB
Original Source

CMP0203

.. versionadded:: 4.2

_WINDLL is defined for shared libraries targeting the MSVC ABI.

In CMake 4.1 and below, :ref:Visual Studio Generators compile sources in shared libraries with _WINDLL 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 in shared libraries with _WINDLL defined by all generators. 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 _WINDLL preprocessor definition in CMake itself. The NEW behavior for this policy adds the _WINDLL preprocessor definition to sources in shared libraries 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