CheckSourceRuns
Добавлен в версии 3.19.
Проверить, компилируется ли заданный исходный код, связывается ли он в исполняемый файл и может ли он быть запущен.
-
check_source_runs -
check_source_runs(<lang> <code> <resultVar> [SRC_EXT <extension>])Проверить один раз, что
<lang>исходный код, предоставленный в<code>, может быть скомпилирован, связан в исполняемый файл и затем запущен.<code>должен содержать по крайней мере функциюmain(), или в Fortranprogram.Результат сохраняется во внутренней переменной кэша, указанной в
<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