mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-01-26 19:09:06 +00:00
Visual Studio defines this automatically for `.dll` targets. For consistency, define it when compiling for the MSVC ABI with other generators. Add policy CMP0203 for compatibility. Fixes: #27253
29 lines
1.2 KiB
ReStructuredText
29 lines
1.2 KiB
ReStructuredText
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
|