From 7b28b1dfe2716f19cb3cd59325d5192c4e79d700 Mon Sep 17 00:00:00 2001 From: ruki Date: Sat, 19 Jan 2019 18:26:22 +0800 Subject: support semver for find_package --- .../core/sandbox/modules/import/lib/detect/find_package.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/xmake/core/sandbox/modules/import/lib/detect/find_package.lua b/xmake/core/sandbox/modules/import/lib/detect/find_package.lua index 07660efea..de082c4ee 100644 --- a/xmake/core/sandbox/modules/import/lib/detect/find_package.lua +++ b/xmake/core/sandbox/modules/import/lib/detect/find_package.lua @@ -489,12 +489,20 @@ function sandbox_lib_detect_find_package.main(name, opt) return utils.ifelse(result, result, nil) end + -- get version from the name, e.g. find("zlib ~1.x") + local nameinfo = name:split("%s+") + local require_ver = opt.version + if #nameinfo > 1 then + name = nameinfo[1] + require_ver = require_ver or nameinfo[2] + end + -- find package result = sandbox_lib_detect_find_package._find(name, opt) -- match version? - if opt.version and result then - if not result.version or not semver.satisfies(result.version, opt.version) then + if require_ver and result then + if not result.version or not semver.satisfies(result.version, require_ver) then result = nil end end -- cgit v1.3.1