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