CMAKE_FIND_PACKAGE_SORT_ORDER¶
版本 3.7 新增。
使用 find_package()
找到的,包含 glob 運算式的搜尋路徑所匹配的目錄,其預設排序方式。它可以採用以下其中一個值
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 之前測試)。