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 之前測試)。