CMAKE_FIND_PACKAGE_SORT_ORDER¶
3.7 版本中新增。
版本 4.2 中更改:默认排序顺序已从 NONE 更改为 NATURAL。
使用 find_package() 找到包含 glob 表达式的搜索路径时,目录排序的默认顺序。它可以取以下值之一
NONE不尝试对目录进行排序。将选择找到的第一个有效包。
名称在搜索之前按字典顺序对目录进行排序。
NATURAL默认值。使用自然顺序对目录进行排序(请参阅
strverscmp(3)手册),即连续的数字作为整数进行比较。
默认使用自然排序来返回最高版本,当 find_package() 可以找到同一库的多个版本时。例如,假设以下库在磁盘上具有包配置文件,位于同名的目录中,所有这些目录都位于同一父目录中
libX-1.1.0libX-1.2.9libX-1.2.10
默认顺序 NATURAL 将选择具有最高版本号的库,即 libX-1.2.10。
可以使用变量 CMAKE_FIND_PACKAGE_SORT_DIRECTION 来控制排序方向(默认情况下为降序,即 libX-1.2 将在 libX-1.0 之前进行测试,并且 lib-B 将在 lib-A 之前进行测试)。