Проверка выполнения исходного кода C++
Проверяет, компилируется ли предоставленный исходный код C++, создаётся ли исполняемый файл и может ли он выполняться.
-
check_cxx_source_runs -
check_cxx_source_runs(<code> <resultVar>)
Проверяет, что предоставленный в
<code>исходный код может быть скомпилирован как файл C++, скомпонован в исполняемый файл и затем выполнен. В<code>должен содержаться по крайней мере одинmain()-функция. Если<code>успешно скомпилирован и запущен, внутренняя переменная кэша, указанная в<resultVar>, будет установлена в 1, в противном случае она будет установлена в значение, которое оценивается как логическое ложь (например, пустая строка или сообщение об ошибке).Проверка выполняется только один раз, а результат кэшируется в переменной, указанной
<resultVar>. Каждый последующий запуск CMake будет использовать этот кэшированный результат, а не выполнять проверку заново, даже если<code>изменится. Чтобы принудительно переоценить проверку, необходимо вручную удалить переменную, указанную<resultVar>, из кэша.Команды компиляции и компоновки можно настроить, задав любые из следующих переменных до вызова
check_cxx_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_QUIET -
Добавлено в версии 3.1.
Если эта переменная имеет логическое значение «истина», все сообщения состояния, связанные с проверкой, будут подавлены.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.27/module/CheckCXXSourceRuns.html