Spec-Zone.ru › CMake 3.12

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.10/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.html

Spec-Zone.ru

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