Spec-Zone.ru › CMake 3.29

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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.29/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.html

Spec-Zone.ru

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