FindOpenMP
Определяет поддержку Open Multi-Processing (OpenMP).
Этот модуль может использоваться для определения поддержки OpenMP в компиляторе. Если компилятор поддерживает OpenMP, флаги, необходимые для компиляции с поддержкой OpenMP, возвращаются в переменные для различных языков. Переменные могут быть пустыми, если компилятору не нужен специальный флаг для поддержки OpenMP.
Добавлен в версии 3.5: Поддержка Clang.
Переменные ввода
Следующие переменные могут быть установлены для управления поведением этого модуля:
-
OpenMP_RUNTIME_MSVC -
Добавлен в версии 3.30.
Укажите OpenMP Runtime при компиляции с MSVC. Если установлено ненулевое значение, например
experimentalилиllvm, оно будет передано в качестве значения флага-openmp:.
Переменные результатов
Добавлен в версии 3.10: Модуль экспонирует компоненты C, CXX, и Fortran. Каждый из них контролирует различные языки для поиска поддержки OpenMP.
Добавлен в версии 3.31: Компонент языка CUDA поддерживается при использовании компилятора CUDA, поддерживающего OpenMP на хосте.
В зависимости от включенных компонентов будут установлены следующие переменные:
-
OpenMP_FOUND -
Переменная, указывающая, что найдены флаги OpenMP для всех запрошенных языков. Если не указаны компоненты, это истинно, если были обнаружены настройки OpenMP для всех включенных языков.
-
OpenMP_VERSION -
Минимальная версия стандарта OpenMP, обнаруженная среди запрошенных языков, или всех включенных языков, если компоненты не были указаны.
Этот модуль установит следующие переменные для каждого языка в вашем проекте, где <lang> — это C, CXX, CUDA или Fortran:
-
OpenMP_<lang>_FOUND -
Переменная, указывающая, была ли обнаружена поддержка OpenMP для
<lang>. -
OpenMP_<lang>_FLAGS -
Флаги компилятора OpenMP для
<lang>, разделенные пробелами. -
OpenMP_<lang>_INCLUDE_DIRS -
Директории, которые необходимо добавить в путь поиска заголовков для
<lang>при использовании OpenMP.
Для компоновки с кодом OpenMP, написанным на <lang>, предоставляются следующие переменные:
-
OpenMP_<lang>_LIB_NAMES -
;-list библиотек для программ OpenMP для
<lang>. -
OpenMP_<libname>_LIBRARY -
Расположение отдельных библиотек, необходимых для поддержки OpenMP в
<lang>. -
OpenMP_<lang>_LIBRARIES -
Список библиотек, необходимых для компоновки с кодом OpenMP, написанным на
<lang>.
Кроме того, модуль предоставляет IMPORTED целевые элементы:
-
OpenMP::OpenMP_<lang> -
Целевой элемент для использования OpenMP из
<lang>.
Конкретно для Fortran модуль устанавливает следующие переменные:
-
OpenMP_Fortran_HAVE_OMPLIB_HEADER -
Булево значение, указывающее, доступен ли OpenMP через
omp_lib.h. -
OpenMP_Fortran_HAVE_OMPLIB_MODULE -
Булево значение, указывающее, доступен ли OpenMP через модуль Fortran
omp_lib.
Модуль также попытается предоставить переменные версии OpenMP:
-
OpenMP_<lang>_SPEC_DATE -
Добавлен в версии 3.7.
Дата спецификации OpenMP, реализованной компилятором
<lang>. -
OpenMP_<lang>_VERSION_MAJOR -
Главная версия OpenMP, реализованная компилятором
<lang>. -
OpenMP_<lang>_VERSION_MINOR -
Дополнительная версия OpenMP, реализованная компилятором
<lang>. -
OpenMP_<lang>_VERSION -
Версия OpenMP, реализованная компилятором
<lang>.
Дата спецификации отформатирована в соответствии со стандартом OpenMP: yyyymm, где yyyy и mm представляют год и месяц спецификации OpenMP, реализованной компилятором <lang>.
Для некоторых компиляторов может потребоваться добавить путь поиска заголовков для поиска соответствующих заголовков OpenMP. Это местоположение может быть специфичным для языка. Если это необходимо, модуль может попытаться найти местоположение, но его можно указать непосредственно, установив переменную кеша OpenMP_<lang>_INCLUDE_DIR. Обратите внимание, что эта переменная является _входным_ параметром для модуля. Код проекта должен использовать переменную OpenMP_<lang>_INCLUDE_DIRS _выходного_ типа, если ему необходимо знать необходимые каталоги включаемых файлов.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/module/FindOpenMP.html