|
|
@@ -0,0 +1,36 @@
|
|
|
+CMP0119
|
|
|
+-------
|
|
|
+
|
|
|
+.. versionadded:: 3.20
|
|
|
+
|
|
|
+:prop_sf:`LANGUAGE` source file property explicitly compiles as specified
|
|
|
+language.
|
|
|
+
|
|
|
+The :prop_sf:`LANGUAGE` source file property is documented to mean that the
|
|
|
+source file is written in the specified language. In CMake 3.19 and below,
|
|
|
+setting this property causes CMake to compile the source file using the
|
|
|
+compiler for the specified language. However, it only passes an explicit
|
|
|
+flag to tell the compiler to treat the source as the specified language
|
|
|
+for MSVC-like, XL, and Embarcadero compilers for the ``CXX`` language.
|
|
|
+CMake 3.20 and above prefer to also explicitly tell the compiler to use
|
|
|
+the specified language using a flag such as ``-x c`` on all compilers
|
|
|
+for which such flags are known.
|
|
|
+
|
|
|
+This policy provides compatibility for projects that have not been updated
|
|
|
+to expect this behavior. For example, some projects were setting the
|
|
|
+``LANGUAGE`` property to ``C`` on assembly-language ``.S`` source files
|
|
|
+in order to compile them using the C compiler. Such projects should be
|
|
|
+updated to use ``enable_language(ASM)``, for which CMake will often choose
|
|
|
+the C compiler as the assembler on relevant platforms anyway.
|
|
|
+
|
|
|
+The ``OLD`` behavior for this policy is to interpret the ``LANGUAGE <LANG>``
|
|
|
+property using its undocumented meaning to "use the ``<LANG>`` compiler".
|
|
|
+The ``NEW`` behavior for this policy is to interpret the ``LANGUAGE <LANG>``
|
|
|
+property using its documented meaning to "compile as a ``<LANG>`` source".
|
|
|
+
|
|
|
+This policy was introduced in CMake version 3.20. Use the
|
|
|
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
|
|
|
+Unlike many policies, CMake version |release| does *not* warn
|
|
|
+when this policy is not set and simply uses ``OLD`` behavior.
|
|
|
+
|
|
|
+.. include:: DEPRECATED.txt
|