CMP0119
Добавлено в версии 3.20.
Свойство исходного файла LANGUAGE явно компилирует его как указанный язык.
В документации указано, что свойство исходного файла LANGUAGE означает, что исходный файл написан на указанном языке. В CMake 3.19 и более ранних версиях установка этого свойства заставляет CMake компилировать исходный файл с помощью компилятора для указанного языка. Однако явный флаг, указывающий компилятору трактовать исходный файл как написанный на указанном языке, передаётся только компиляторам MSVC-подобного типа, XL и Embarcadero для языка CXX. В CMake 3.20 и более поздних версиях предпочтительно также явно указывать компилятору использовать заданный язык с помощью флага, например -x c, во всех компиляторах, для которых известны такие флаги.
Эта политика обеспечивает совместимость с проектами, которые не были обновлены для учёта такого поведения. Например, в некоторых проектах свойству LANGUAGE присваивалось значение C для исходных файлов на языке ассемблера .S, чтобы компилировать их с помощью компилятора C. Такие проекты следует обновить и использовать enable_language(ASM), для которого CMake часто и так выбирает компилятор C в качестве ассемблера на соответствующих платформах.
Поведение OLD для этой политики заключается в интерпретации свойства LANGUAGE <LANG> в соответствии с его недокументированным значением: «использовать компилятор <LANG>». Поведение NEW для этой политики заключается в интерпретации свойства LANGUAGE <LANG> в соответствии с его документированным значением: «компилировать как исходный файл <LANG>».
Эта политика была введена в CMake версии 3.20. Её можно задать с помощью cmake_policy() или cmake_minimum_required(). Если она не задана, CMake не выдаёт предупреждение и использует поведение OLD.
Примечание
Поведение OLD политики по определению считается устаревшим и может быть удалено в будущей версии CMake.
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/policy/CMP0119.html