37 lines
1.1 KiB
ReStructuredText
37 lines
1.1 KiB
ReStructuredText
CMAKE_FIND_PACKAGE_SORT_ORDER
|
|
-----------------------------
|
|
|
|
The default order for sorting packages found using :command:`find_package`.
|
|
It can assume one of the following values:
|
|
|
|
``NONE``
|
|
Default. No attempt is done to sort packages.
|
|
The first valid package found will be selected.
|
|
|
|
``NAME``
|
|
Sort packages lexicographically before selecting one.
|
|
|
|
``NATURAL``
|
|
Sort packages using natural order (see ``strverscmp(3)`` manual),
|
|
i.e. such that contiguous digits are compared as whole numbers.
|
|
|
|
Natural sorting can be employed to return the highest version when multiple
|
|
versions of the same library are found by :command:`find_package`. For
|
|
example suppose that the following libraries have been found:
|
|
|
|
* libX-1.1.0
|
|
* libX-1.2.9
|
|
* libX-1.2.10
|
|
|
|
By setting ``NATURAL`` order we can select the one with the highest
|
|
version number ``libX-1.2.10``.
|
|
|
|
.. code-block:: cmake
|
|
|
|
set(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
|
|
find_package(libX CONFIG)
|
|
|
|
The sort direction can be controlled using the
|
|
:variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION` variable
|
|
(by default decrescent, e.g. lib-B will be tested before lib-A).
|