Spec-Zone.ru › CMake

CMAKE_FIND_PACKAGE_SORT_ORDER

Добавлено в версии 3.7.

Изменено в версии 4.2: Порядок сортировки по умолчанию изменён с NONE на NATURAL.

Порядок сортировки каталогов, соответствующих пути поиска, содержащему выражение glob, найденному с помощью 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.

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

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

Spec-Zone.ru

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