summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2017-09-22 22:37:56 +0800
committerruki <[email protected]>2017-09-22 09:47:39 +0800
commit672d5ae9a9fef8a0dc5de4ed0643e8594e1cb85c (patch)
tree4007b54189cfbb4ac366cca21735793e68aa69e7
parentfe319cb58be817295c0ad610cfe411be0eff57e0 (diff)
add require alias
-rw-r--r--tests/projects/requires/xmake.lua4
-rw-r--r--xmake/actions/require/install.lua2
-rw-r--r--xmake/actions/require/list.lua2
-rw-r--r--xmake/actions/require/package.lua3
-rw-r--r--xmake/core/package/package.lua8
-rw-r--r--xmake/core/project/project.lua6
6 files changed, 19 insertions, 6 deletions
diff --git a/tests/projects/requires/xmake.lua b/tests/projects/requires/xmake.lua
index 9f03b9e13..8857c4b4f 100644
--- a/tests/projects/requires/xmake.lua
+++ b/tests/projects/requires/xmake.lua
@@ -12,7 +12,7 @@ package_end()
-- requires
add_requires("zlib-mbedtls")
-add_requires("[email protected] ~1.6.0")
+add_requires("[email protected] ~1.6.0", {alias = "tbox"})
add_requires("unknown", {optional = true})
-- the debug mode
@@ -48,5 +48,5 @@ target("console_c")
add_files("src/*.c")
-- add packages
- add_packages("tboox.tbox", "zlib-mbedtls")
+ add_packages("tbox", "zlib-mbedtls")
diff --git a/xmake/actions/require/install.lua b/xmake/actions/require/install.lua
index 48fc37b25..19f90257f 100644
--- a/xmake/actions/require/install.lua
+++ b/xmake/actions/require/install.lua
@@ -65,7 +65,7 @@ function _attach_to_targets(packages)
for _, instance in ipairs(packages) do
if instance:kind() ~= "binary" then
- local opt = project.option(instance:fullname())
+ local opt = project.option(instance:alias() or instance:fullname())
if opt and opt:enabled() then
_attach_to_option(instance, opt)
end
diff --git a/xmake/actions/require/list.lua b/xmake/actions/require/list.lua
index d809b9694..4246dc03e 100644
--- a/xmake/actions/require/list.lua
+++ b/xmake/actions/require/list.lua
@@ -65,7 +65,7 @@ function main()
-- list all packages
for _, instance in ipairs(package.load_packages(requires, requires_extra)) do
local requireinfo = instance:requireinfo() or {}
- local packageopt = project.option(instance:fullname())
+ local packageopt = project.option(instance:alias() or instance:fullname())
if packageopt then
cprint(" ${magenta}require${clear}(%s): %s%s%s", requireinfo.originstr, ifelse(instance:version_str(), instance:version_str(), "no version"), _from(instance), ifelse(requireinfo.optional, ", ${yellow}optional${clear}", ""))
for _, dep in ipairs(instance:orderdeps()) do
diff --git a/xmake/actions/require/package.lua b/xmake/actions/require/package.lua
index e311ae300..26b5954c6 100644
--- a/xmake/actions/require/package.lua
+++ b/xmake/actions/require/package.lua
@@ -40,7 +40,7 @@ import("repository")
-- add_requires("zlib master")
-- add_requires("[email protected] >=1.5.1")
-- add_requires("https://github.com/tboox/[email protected] >=1.5.1")
--- add_requires("tboox.tbox >=1.5.1 <1.6.0", {optional = true})
+-- add_requires("tboox.tbox >=1.5.1 <1.6.0", {optional = true, alias = "tbox"})
--
function _parse_require(require_str, requires_extra)
@@ -114,6 +114,7 @@ function _parse_require(require_str, requires_extra)
reponame = reponame,
packageurl = packageurl,
version = version,
+ alias = require_extra.alias,
system = require_extra.system,
option = require_extra.option,
default = require_extra.default,
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 52a3eba13..8a0b1b83b 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -99,6 +99,14 @@ function _instance:name()
return self._NAME
end
+-- get the package alias
+function _instance:alias()
+ local requireinfo = self:requireinfo()
+ if requireinfo then
+ return requireinfo.alias
+ end
+end
+
-- get the package vendor
function _instance:vendor()
return self._VENDOR
diff --git a/xmake/core/project/project.lua b/xmake/core/project/project.lua
index 2323151d7..dc628feb1 100644
--- a/xmake/core/project/project.lua
+++ b/xmake/core/project/project.lua
@@ -528,6 +528,7 @@ function project._load_options(disable_filter)
local packageopt = {category = "requires", default = true, showmenu = true, description = "The " .. packagename .. " package"}
-- inherit extra option settings and override the default values
+ local alias = nil
local require_extra = requires_extra[require_str]
if require_extra then
@@ -543,10 +544,13 @@ function project._load_options(disable_filter)
packageopt[name] = value
end
end
+
+ -- get alias
+ alias = require_extra.alias
end
-- add option
- results[packagename] = packageopt
+ results[alias or packagename] = packageopt
end
-- check options