Как указать предпочтение для компиляторов при использовании enable_language [cmake] - PullRequest
1 голос
/ 16 марта 2011

При использовании enable_language в cmake он всегда ищет компиляторы в определенной последовательности по умолчанию.Интересно, как я могу изменить эту последовательность.Например, если в моей системе установлены как ifort (icc), так и gfortran (g ++), и я хочу использовать ifort (icc) вместо gfortran (g ++), как я могу настроить это?

УТОЧНЕНИЕЯ знаю, что мы можем явно переключать компилятор, изменяя переменную CMAKE_Fortran_Compiler, но я хочу скорее изменить последовательность по умолчанию, которую cmake ищет для доступных компиляторов, если пользователь не указывает такое предпочтение.

Из того, что я нашел в настоящее время, существует способ установить CMAKE_Fortran_Compiler перед проектом (xxx), чтобы эта переменная никогда не могла быть переопределена позже, но, очевидно, это не лучший способ, так как мне понадобится gfortran, если он окажетсяИфорт недоступен.

Кстати, где лучше всего искать такую ​​информацию?Документация выглядит не очень полной.

Спасибо!

Ответы [ 2 ]

1 голос
/ 28 мая 2012

Правильное место для поиска - FAQ по CMake, на котором ответит на ваш вопрос .

Будет работать ответ Omegaice, как и CC=/path/to/icc cmake ..., см. Также эту ветку обсуждения .

Установка CMAKE_Fortran_Compiler перед project вызовом категорически не рекомендуется (как вам ответит FAQ).

Обратите внимание, что вызов enable_language вручнуюничем не отличается от указания языков с помощью вызова project (или даже без их указания, в этом случае по умолчанию они C и CXX ), поскольку это вызывает enable_language внутри.

0 голосов
/ 13 августа 2011

Вы, вероятно, можете указать, какой компилятор использовать, выполнив ccmake .. -DCMAKE_Fortran_Compiler=<executable> (где <executable> - это либо имя компилятора, либо полный путь к компилятору) вместо его установки в CMakeLists.txt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...