Spec-Zone.ru › CMake 3.27

CheckFortranSourceRuns

New in version 3.14.

Проверить, компилируется ли данный Fortran-исходник, линксируется ли он в исполняемый файл и может ли он быть затем запущен.

check_fortran_source_runs
check_fortran_source_runs(<code> <resultVar>
    [SRC_EXT <extension>])

Проверить, может ли исходный код, предоставленный в <code>, быть скомпилирован как Fortran-исходный файл, слинкован как исполняемый файл и затем запущен. <code> должен быть Fortran-program.

check_fortran_source_runs("program test
real :: x[*]
call co_sum(x)
end program"
HAVE_COARRAY)

Эта команда может помочь избежать дорогостоящих процессов сборки, когда компилятор не поддерживает необходимую функцию или конкретная библиотека поставщика несовместима с используемой версией Fortran-компилятора. Некоторые из этих сбоев происходят только во время выполнения, а не при линковке, и тривиальный пример выполнения может выявить проблему до начала основного процесса сборки.

Если <code> успешно построены и запущены, внутренняя переменная кэша, указанная в <resultVar>, будет установлена в 1, в противном случае она будет установлена в значение, эквивалентное логическому false (например, пустая строка или сообщение об ошибке).

По умолчанию тестовый исходный файл будет иметь расширение файла .F90. Опция SRC_EXT может быть использована для переопределения этого на .<extension> вместо этого.

Проверка выполняется только один раз, и результат кэшируется в переменной, имя которой указано в <resultVar>. Каждый последующий запуск CMake будет повторно использовать это кэшированное значение, а не выполнять проверку заново, даже если <code> изменится. Чтобы принудительно переоценить проверку, переменная, имя которой указано в <resultVar>, должна быть вручную удалена из кэша.

Команды компиляции и линковки могут быть изменены путем установки любой из следующих переменных до вызова check_fortran_source_runs():

CMAKE_REQUIRED_FLAGS

Строка дополнительных флагов для передачи компилятору. Строка должна быть разделена пробелами — ;-list не сработает. Содержимое CMAKE_<LANG>_FLAGS и его соответствующей конфигурационно-зависимой переменной автоматически добавляются к команде компилятора перед содержимым CMAKE_REQUIRED_FLAGS.

CMAKE_REQUIRED_DEFINITIONS

;-list определений компилятора в формате -DFOO или -DFOO=bar. Определение для имени, указанного в <resultVar>, также будет автоматически добавлено.

CMAKE_REQUIRED_INCLUDES

;-list путей поиска заголовков для передачи компилятору. Это будут единственные используемые пути поиска заголовков — содержимое свойства каталога INCLUDE_DIRECTORIES будет проигнорировано.

CMAKE_REQUIRED_LINK_OPTIONS

New in version 3.14.

;-list опций для добавления к команде линковки (см. try_compile() для получения дополнительных сведений).

CMAKE_REQUIRED_LIBRARIES

;-list библиотек для добавления к команде линковки. Это могут быть имена системных библиотек, или они могут быть Импортированные цели (см. try_compile() для получения дополнительных сведений).

CMAKE_REQUIRED_QUIET

New in version 3.1.

Если эта переменная имеет значение логической истины, все сообщения об ошибках, связанные с проверкой, будут подавлены.

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.27/module/CheckFortranSourceRuns.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API