diff options
| author | ruki <[email protected]> | 2019-01-19 18:26:22 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-01-19 18:26:22 +0800 |
| commit | 7b28b1dfe2716f19cb3cd59325d5192c4e79d700 (patch) | |
| tree | 17246377903e0e53575c32f385dc9db1be9b5224 | |
| parent | e3d5b1f0d7c8670ce88cee55b240309262798ac8 (diff) | |
support semver for find_package
| -rw-r--r-- | xmake/core/sandbox/modules/import/lib/detect/find_package.lua | 12 |
1 files 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 |
