Spec-Zone.ru › CMake

CheckSourceRuns

Добавлен в версии 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

Добавлен в версии 3.14.

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

CMAKE_REQUIRED_LIBRARIES

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

CMAKE_REQUIRED_LINK_DIRECTORIES

Добавлен в версии 3.31.

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

CMAKE_REQUIRED_QUIET

Добавлен в версии 3.1.

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

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

Spec-Zone.ru

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