mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
Since commit 6baf65ec46 (ASM: Do not consider MSVC C/CXX compiler for
generic ASM, 2025-04-08) we no longer mistake `cl` for an assembler.
However, some projects unconditionally enable ``ASM``, which worked
on Windows only due to that bug. Restore compatibility with such
projects by guarding the change behind a new policy ``CMP0194``.
Fixes: #26907
Issue: #26617
28 lines
1.0 KiB
ReStructuredText
28 lines
1.0 KiB
ReStructuredText
CMP0194
|
|
-------
|
|
|
|
.. versionadded:: 4.1
|
|
|
|
MSVC is not an assembler for language ASM.
|
|
|
|
When enabling the ``ASM`` language, CMake considers C compiler drivers
|
|
as assembler candidates. CMake 4.0 and below accidentally selected
|
|
MSVC's ``cl`` compiler as the ``CMAKE_ASM_COMPILER``, allowing the ``ASM``
|
|
language to be enabled on Windows even though ``cl`` does not support
|
|
assembler sources. CMake 4.1 and above prefer to reject ``cl`` as an
|
|
assembler candidate, but some existing projects unconditionally enable
|
|
``ASM`` on Windows even though they add no assembler sources. This
|
|
policy provides compatibility for such projects to allow them to
|
|
configure as before.
|
|
|
|
The ``OLD`` behavior for this policy is to successfully enable ``ASM``
|
|
even if ``cl`` is the only available candidate. The ``NEW`` behavior
|
|
for this policy is to not consider ``cl`` as a candidate assembler
|
|
for the ``ASM`` language.
|
|
|
|
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.1
|
|
.. |WARNS_OR_DOES_NOT_WARN| replace:: warns
|
|
.. include:: include/STANDARD_ADVICE.rst
|
|
|
|
.. include:: include/DEPRECATED.rst
|