CMakeForceCompiler
Не рекомендуется. По возможности избегайте использования этого модуля. Он будет устаревшим в будущих версиях CMake после того, как будут предоставлены альтернативы для всех случаев использования файлов цепочки инструментов.
Макросы, предоставляемые этим модулем, изначально предназначались для использования в файлах цепочки инструментов кросс-компиляции, когда CMake не мог автоматически определить идентификатор компилятора. С момента введения этого модуля возможности идентификации компилятора CMake улучшились, и теперь их можно научить распознавать любой компилятор. Кроме того, набор информации, который CMake обнаруживает у компилятора, теперь слишком обширен, чтобы его можно было предоставить файлами цепочки инструментов с помощью этих макросов.
Единственный известный оставшийся случай использования этих макросов — создание файлов цепочки инструментов для кросс-компиляторов, которые не могут связать двоичные файлы без специальных флагов или пользовательских сценариев компоновщика. Эти макросы заставляют CMake пропустить проверки, которые он обычно выполняет при включении языка и инспектировании цепочки инструментов. Однако пропуск этих проверок может ограничить некоторые функции генерации.
Макрос CMAKE_FORCE_C_COMPILER имеет следующий синтаксис:
CMAKE_FORCE_C_COMPILER(<compiler> <compiler-id>)
Он устанавливает CMAKE_C_COMPILER на указанный компилятор и внутреннюю переменную cmake CMAKE_C_COMPILER_ID на указанный идентификатор компилятора. Он также пропускает проверку работоспособности компилятора и тестов на базовые сведения о компиляторе.
Макрос CMAKE_FORCE_CXX_COMPILER имеет следующий синтаксис:
CMAKE_FORCE_CXX_COMPILER(<compiler> <compiler-id>)
Он устанавливает CMAKE_CXX_COMPILER на указанный компилятор и внутреннюю переменную cmake CMAKE_CXX_COMPILER_ID на указанный идентификатор компилятора. Он также пропускает проверку работоспособности компилятора и тестов на базовые сведения о компиляторе.
Макрос CMAKE_FORCE_Fortran_COMPILER имеет следующий синтаксис:
CMAKE_FORCE_Fortran_COMPILER(<compiler> <compiler-id>)
Он устанавливает CMAKE_Fortran_COMPILER на указанный компилятор и внутреннюю переменную cmake CMAKE_Fortran_COMPILER_ID на указанный идентификатор компилятора. Он также пропускает проверку работоспособности компилятора и тестов на базовые сведения о компиляторе.
Таким образом, простой файл цепочки инструментов может выглядеть так:
include (CMakeForceCompiler) set(CMAKE_SYSTEM_NAME Generic) CMAKE_FORCE_C_COMPILER (chc12 MetrowerksHicross) CMAKE_FORCE_CXX_COMPILER (chc12 MetrowerksHicross)
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.5/module/CMakeForceCompiler.html