CheckCXXSourceRuns
Проверка, что данный исходный код C++ компилируется и линковался в исполняемый файл, который затем может быть запущен.
-
check_cxx_source_runs -
check_cxx_source_runs(code resultVar)
Проверьте, что предоставленный в
codeисходный код может быть скомпилирован как файл исходного кода C++, слинкован как исполняемый файл и затем запущен.codeдолжен содержать как минимум функциюmain(). Если код был успешно скомпилирован и запущен, внутренняя переменная кэша, указанная вresultVar, будет установлена в 1, в противном случае она будет установлена в значение, эквивалентное логическому false (например, пустая строка или сообщение об ошибке).Основная проверка выполняется командой
try_run(). Команды компиляции и линковки могут быть изменены путем установки следующих переменных перед вызовомcheck_cxx_source_runs():-
CMAKE_REQUIRED_FLAGS - Дополнительные флаги для компилятора. Обратите внимание, что содержимое
CMAKE_CXX_FLAGSи его соответствующая переменная, специфичная для конфигурации, автоматически добавляются к команде компилятора перед содержимымCMAKE_REQUIRED_FLAGS. -
CMAKE_REQUIRED_DEFINITIONS - Список компиляторных определений в формате
-DFOOили-DFOO=bar. Определение для имени, указанного вresultVar, также будет автоматически добавлено. -
CMAKE_REQUIRED_INCLUDES - Список путей поиска заголовочных файлов для компилятора. Это будут единственные пути поиска заголовочных файлов, используемые
try_run(), т.е. содержимое свойства каталогаINCLUDE_DIRECTORIESбудет проигнорировано. -
CMAKE_REQUIRED_LIBRARIES - Список библиотек для добавления к команде линковки. Это могут быть имена системных библиотек или Импортированные целевые объекты (подробнее см.
try_run()). -
CMAKE_REQUIRED_QUIET - Если значение этой переменной соответствует логическому истинному значению, все сообщения о статусе, связанные с проверкой, будут подавлены.
Проверка выполняется только один раз, а результат кэшируется в переменной, имя которой указано в
resultVar. Каждый последующий запуск CMake будет повторно использовать это кэшированное значение вместо повторного выполнения проверки, даже еслиcodeизменяется. Чтобы принудительно перевыполнить проверку, переменная, имя которой указано вresultVar, должна быть вручную удалена из кэша. -
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.13/module/CheckCXXSourceRuns.html