diff options
| author | ruki <[email protected]> | 2020-12-01 22:41:20 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-12-01 22:41:20 +0800 |
| commit | 2c4176be60a4d114aa6385c667aa30f0e9124af3 (patch) | |
| tree | db1c39f5e412d43016e8376294cf3af8fdf625a7 /xmake/modules/package | |
| parent | 15c4701dd679316802d67d02b2b1c2dd302145bc (diff) | |
improve find_package to rename version args
Diffstat (limited to 'xmake/modules/package')
7 files changed, 21 insertions, 23 deletions
diff --git a/xmake/modules/package/manager/dub/find_package.lua b/xmake/modules/package/manager/dub/find_package.lua index 02be651e7..58eacde95 100644 --- a/xmake/modules/package/manager/dub/find_package.lua +++ b/xmake/modules/package/manager/dub/find_package.lua @@ -57,7 +57,7 @@ function main(name, opt) local pkgname = pkgkey[1]:trim() local pkgversion = pkgkey[2]:trim() if pkgname == name and find_file(libpattern, pkgpath) and - (not opt.version or opt.version == "latest" or opt.version == "master" or semver.satisfies(pkgversion, opt.version)) then + (not opt.require_version or opt.require_version == "latest" or opt.require_version == "master" or semver.satisfies(pkgversion, opt.require_version)) then pkgdir = pkgpath break end @@ -80,7 +80,7 @@ function main(name, opt) end end if #includedirs > 0 and #links > 0 then - result = {version = opt.version, links = links, linkdirs = pkgdir, includedirs = includedirs} + result = {version = opt.require_version, links = links, linkdirs = pkgdir, includedirs = includedirs} end end end diff --git a/xmake/modules/package/manager/dub/install_package.lua b/xmake/modules/package/manager/dub/install_package.lua index 6f46f6055..8c506d3cd 100644 --- a/xmake/modules/package/manager/dub/install_package.lua +++ b/xmake/modules/package/manager/dub/install_package.lua @@ -26,7 +26,7 @@ import("lib.detect.find_tool") -- install package -- -- @param name the package name, e.g. dub::log --- @param opt the options, e.g. { verbose = true, mode = "release", plat = , arch = , version = "x.x.x", buildhash = "xxxxxx"} +-- @param opt the options, e.g. { verbose = true, mode = "release", plat = , arch = , require_version = "x.x.x", buildhash = "xxxxxx"} -- -- @return true or false -- @@ -43,8 +43,8 @@ function main(name, opt) if option.get("verbose") then table.insert(argv, "-v") end - if opt.version and opt.version ~= "latest" and opt.version ~= "master" then - table.insert(argv, "--version=" .. opt.version) + if opt.require_version and opt.require_version ~= "latest" and opt.require_version ~= "master" then + table.insert(argv, "--version=" .. opt.require_version) end os.vrunv(dub.program, argv) diff --git a/xmake/modules/package/manager/find_package.lua b/xmake/modules/package/manager/find_package.lua index 879a9a6e9..f1bee8af7 100644 --- a/xmake/modules/package/manager/find_package.lua +++ b/xmake/modules/package/manager/find_package.lua @@ -145,9 +145,9 @@ end -- @code -- -- local package = find_package("openssl") --- local package = find_package("openssl", {version = "1.0.*"}) +-- local package = find_package("openssl", {require_version = "1.0.*"}) -- local package = find_package("openssl", {plat = "iphoneos"}) --- local package = find_package("openssl", {linkdirs = {"/usr/lib", "/usr/local/lib"}, includedirs = "/usr/local/include", version = "1.0.1"}) +-- local package = find_package("openssl", {linkdirs = {"/usr/lib", "/usr/local/lib"}, includedirs = "/usr/local/include", require_version = "1.0.1"}) -- local package = find_package("openssl", {linkdirs = {"/usr/lib", "/usr/local/lib", links = {"ssl", "crypto"}, includes = {"ssl.h"}}) -- local package, manager_name, package_name = find_package("openssl") -- @@ -174,19 +174,17 @@ function main(name, opt) -- get package name and require version local require_version = nil package_name, require_version = unpack(package_name:trim():split("%s")) - opt.version = require_version or opt.version + opt.require_version = require_version or opt.require_version -- find package local found_manager_name = nil result, found_manager_name = _find_package(manager_name, package_name, opt) -- match version? - if opt.version and opt.version:find('.', 1, true) and result then - if not (result.version and (result.version == opt.version or semver.satisfies(result.version, opt.version))) then + 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 result = nil end end - - -- ok? return result, found_manager_name, package_name end diff --git a/xmake/modules/package/manager/go/find_package.lua b/xmake/modules/package/manager/go/find_package.lua index 1ccfcdba4..0020a2c02 100644 --- a/xmake/modules/package/manager/go/find_package.lua +++ b/xmake/modules/package/manager/go/find_package.lua @@ -27,8 +27,8 @@ import("core.package.package") function _go_get_installdir(name, opt) local name = "go_" .. name:lower() local dir = path.join(package.installdir(), name:sub(1, 1):lower(), name) - if opt.version then - dir = path.join(dir, opt.version) + if opt.require_version then + dir = path.join(dir, opt.require_version) end return path.join(dir, opt.buildhash) end @@ -42,7 +42,7 @@ function main(name, opt) local result local installdir = _go_get_installdir(name, opt) for _, libraryfile in ipairs(os.files(path.join(installdir, "lib", "**.a"))) do - result = {version = opt.version, linkdirs = path.join(installdir, "lib"), includedirs = path.join(installdir, "lib")} + result = {version = opt.require_version, linkdirs = path.join(installdir, "lib"), includedirs = path.join(installdir, "lib")} break end return result diff --git a/xmake/modules/package/manager/go/install_package.lua b/xmake/modules/package/manager/go/install_package.lua index 128dc84c3..e71920ba6 100644 --- a/xmake/modules/package/manager/go/install_package.lua +++ b/xmake/modules/package/manager/go/install_package.lua @@ -28,15 +28,15 @@ import("private.tools.go.goenv") -- get the package cache directory function _go_get_cachedir(name, opt) local name = "go_" .. name:lower() - return path.join(package.cachedir(), name:sub(1, 1), name, opt.version) + return path.join(package.cachedir(), name:sub(1, 1), name, opt.require_version) end -- get the package install directory function _go_get_installdir(name, opt) local name = "go_" .. name:lower() local dir = path.join(package.installdir(), name:sub(1, 1):lower(), name) - if opt.version then - dir = path.join(dir, opt.version) + if opt.require_version then + dir = path.join(dir, opt.require_version) end return path.join(dir, opt.buildhash) end @@ -44,14 +44,14 @@ end -- install package -- -- @param name the package name, e.g. go::github.com/sirupsen/logrus --- @param opt the options, e.g. { verbose = true, mode = "release", plat = , arch = , version = "x.x.x", buildhash = "xxxxxx"} +-- @param opt the options, e.g. { verbose = true, mode = "release", plat = , arch = , require_version = "x.x.x", buildhash = "xxxxxx"} -- -- @return true or false -- function main(name, opt) -- TODO we do not yet support the installation of go packages in specific versions - local version = opt.version + local version = opt.require_version assert(not version or version == "latest" or version == "master", "we can only support to install go packages without version!") -- find go diff --git a/xmake/modules/package/manager/install_package.lua b/xmake/modules/package/manager/install_package.lua index 96d793763..18abdd34c 100644 --- a/xmake/modules/package/manager/install_package.lua +++ b/xmake/modules/package/manager/install_package.lua @@ -103,7 +103,7 @@ function main(name, opt) -- get package name and require version local require_version = nil package_name, require_version = unpack(package_name:trim():split("%s")) - opt.version = require_version or opt.version + opt.require_version = require_version or opt.require_version -- do install package _install_package(manager_name, package_name, opt) diff --git a/xmake/modules/package/manager/xmake/find_package.lua b/xmake/modules/package/manager/xmake/find_package.lua index c10be64ac..f60380be0 100644 --- a/xmake/modules/package/manager/xmake/find_package.lua +++ b/xmake/modules/package/manager/xmake/find_package.lua @@ -32,13 +32,13 @@ import("lib.detect.find_library") function _find_package_from_repo(name, opt) -- check options - if not opt.version or not opt.buildhash then + if not opt.require_version or not opt.buildhash then return end -- find the manifest file of package, e.g. ~/.xmake/packages/z/zlib/1.1.12/ed41d5327fad3fc06fe376b4a94f62ef/manifest.txt local packagedirs = {} - table.insert(packagedirs, path.join(package.installdir(), name:lower():sub(1, 1), name:lower(), opt.version, opt.buildhash)) + table.insert(packagedirs, path.join(package.installdir(), name:lower():sub(1, 1), name:lower(), opt.require_version, opt.buildhash)) local manifest_file = find_file("manifest.txt", packagedirs) if not manifest_file then return |
