Spec-Zone.ru › CMake

CMAKE_FIND_PACKAGE_SORT_ORDER

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

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

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

Spec-Zone.ru

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