Spec-Zone.ru › CMake 3.13

CMAKE_FIND_PACKAGE_SORT_ORDER

Порядок сортировки пакетов, найденных с помощью 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–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.13/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.html

Spec-Zone.ru

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