summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-04-07 10:30:17 +0800
committerruki <[email protected]>2024-04-07 10:30:17 +0800
commit992f040c70d14be2f941ad55df179cb02525f84b (patch)
tree6d0232e16636db7fc547a956b3baf214da15a7e0
parent665f568fa3c27aec640037d2e0ceaa72ad4920c3 (diff)
improve to match version #4940
-rw-r--r--xmake/modules/package/manager/find_package.lua13
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