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/latest/module/FindOpenMP.html