Spec-Zone.ru › CMake 3.31

CheckSourceRuns

Added in version 3.19.

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

check_source_runs
check_source_runs(<lang> <code> <resultVar>
                  [SRC_EXT <extension>])

Один раз проверить, можно ли скомпилировать, связать в исполняемый файл и запустить <lang> исходный код, предоставленный в <code>. <code> должен содержать как минимум main() функцию или в Fortran program.

Результат сохраняется во внутренней переменной кэша, указанной в <resultVar>. Успешное выполнение компиляции и запуска обозначается булевым значением true. Ошибка при компиляции или запуске обозначается булевым значением false, таким как пустая строка или сообщение об ошибке.

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

<code> должен содержать корректную главную программу. Например:

check_source_runs(C
"#include <stdlib.h>
#include <stdnoreturn.h>
noreturn void f(){ exit(0); }
int main(void) { f(); return 1; }"
HAVE_NORETURN)

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

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

CMAKE_REQUIRED_FLAGS

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

CMAKE_REQUIRED_DEFINITIONS

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

CMAKE_REQUIRED_INCLUDES

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

CMAKE_REQUIRED_LINK_OPTIONS

Added in version 3.14.

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

CMAKE_REQUIRED_LIBRARIES

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

CMAKE_REQUIRED_LINK_DIRECTORIES

Added in version 3.31.

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

CMAKE_REQUIRED_QUIET

Added in version 3.1.

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

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

Spec-Zone.ru

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