Spec-Zone.ru › CMake 3.20

CMAKE_FIND_PACKAGE_SORT_ORDER

Новое в версии 3.7.

Указывается порядок сортировки пакетов, найденных с помощью find_package(). Может принимать одно из следующих значений:

NONE

По умолчанию. Пакеты не сортируются. Выбирается первый найденный пакет.

NAME

Сортирует пакеты лексикографически перед выбором одного.

NATURAL

Сортирует пакеты по естественному порядку (см. strverscmp(3) руководство), т.е. таким образом, что смежные цифры сравниваются как целые числа.

Естественная сортировка может быть использована для возвращения самой высокой версии, когда find_package() находит несколько версий одной и той же библиотеки. Например, предположим, что были найдены следующие библиотеки:

  • libX-1.1.0
  • libX-1.2.9
  • libX-1.2.10

Установив NATURAL порядок, можно выбрать библиотеку с наивысшим номером версии libX-1.2.10.

set(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
find_package(libX CONFIG)

Направление сортировки можно контролировать с помощью переменной CMAKE_FIND_PACKAGE_SORT_DIRECTION (по умолчанию убывающая, например, lib-B будет проверена перед lib-A).

© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.20/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API