diff options
| author | ruki <[email protected]> | 2024-04-07 10:30:17 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-04-07 10:30:17 +0800 |
| commit | 992f040c70d14be2f941ad55df179cb02525f84b (patch) | |
| tree | 6d0232e16636db7fc547a956b3baf214da15a7e0 | |
| parent | 665f568fa3c27aec640037d2e0ceaa72ad4920c3 (diff) | |
improve to match version #4940
| -rw-r--r-- | xmake/modules/package/manager/find_package.lua | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/xmake/modules/package/manager/find_package.lua b/xmake/modules/package/manager/find_package.lua index 430614064..5247baf04 100644 --- a/xmake/modules/package/manager/find_package.lua +++ b/xmake/modules/package/manager/find_package.lua @@ -24,6 +24,17 @@ import("core.base.option") import("core.project.config") import("lib.detect.find_tool") +-- Is the current version matched? +function _is_match_version(current_version, require_version) + if current_version then + if current_version == require_version then + return true + if semver.is_valid(current_version) and semver.satisfies(current_version, require_version) then + return true + end + end +end + -- find package with the builtin rule -- -- opt.system: @@ -196,7 +207,7 @@ function main(name, opt) -- match version? if opt.require_version and opt.require_version:find('.', 1, true) and result then - if not (result.version and (result.version == opt.require_version or semver.satisfies(result.version, opt.require_version))) then + if not _is_match_version(result.version, opt.require_version) then result = nil end end |
