CMAKE_FIND_PACKAGE_SORT_ORDER¶
在 3.7 版本加入.
使用 find_package() 找到的包排序的默认顺序。它可以采用以下值之一:
没有默认。不会尝试对包进行排序。将选择找到的第一个有效包。
名字在选择一个包之前按字典顺序对包进行排序。
自然使用自然顺序对包进行排序(参见
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 之前测试)。