Проверка компиляции и компоновки исходного кода C
Проверить, компилируется ли и линкуется ли данный исходный код C в исполняемый файл.
-
check_c_source_compiles -
check_c_source_compiles(code resultVar [FAIL_REGEX regex1 [regex2...]])
Проверить, что исходный код, предоставленный в
code, может быть скомпилирован как файл исходного кода C и скомпонован в исполняемый файл (поэтому он должен содержать как минимум функциюmain()). Результат будет сохранён во внутренней переменной кэша, указанной вresultVar, со значением true для успеха и false для неудачи. ЕслиFAIL_REGEXуказан, то неудача определяется путём проверки, соответствует ли что-либо в выводе одному из указанных регулярных выражений.Основная проверка выполняется командой
try_compile(). Команды компиляции и компоновки могут быть изменены путём установки следующих переменных до вызоваcheck_c_source_compiles():-
CMAKE_REQUIRED_FLAGS - Дополнительные флаги для компилятора. Обратите внимание, что содержимое
CMAKE_C_FLAGSи его соответствующая переменная, специфичная для конфигурации, автоматически добавляются к команде компилятора перед содержимымCMAKE_REQUIRED_FLAGS. -
CMAKE_REQUIRED_DEFINITIONS - Список (с разделителем «-») определений компилятора в формате
-DFOOили-DFOO=bar. Определение для имени, указанного вresultVar, также будет автоматически добавлено. -
CMAKE_REQUIRED_INCLUDES - Список (с разделителем «-») путей поиска заголовков для компилятора. Эти пути будут единственными путями поиска заголовков, используемыми
try_compile(), т.е. содержимое свойства каталогаINCLUDE_DIRECTORIESбудет проигнорировано. -
CMAKE_REQUIRED_LIBRARIES - Список (с разделителем «-») библиотек для добавления к команде компоновки. Это могут быть имена системных библиотек или Импортированные цели (см.
try_compile()для получения дополнительных сведений). -
CMAKE_REQUIRED_QUIET - Если эта переменная имеет значение true, все сообщения статуса, связанные с проверкой, будут подавлены.
Проверка выполняется только один раз, а результат кэшируется в переменной, имя которой указано в
resultVar. Каждый последующий запуск CMake будет повторно использовать это кэшированное значение вместо повторной проверки, даже еслиcodeизменилось. Для принудительной повторной оценки проверки переменная, имя которой указано вresultVar, должна быть вручную удалена из кэша. -
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.12/module/CheckCSourceCompiles.html