summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-09-18 22:35:28 +0800
committerruki <[email protected]>2018-09-18 09:32:50 +0800
commit5beacb69348c80688db553c0b671c76237866a49 (patch)
tree095a0e3e754bab81d5ae1dcb2b1b6dc390ab8d06
parentb39865ce22ec806099bd022f47fcb90a4ac42034 (diff)
modify debug package path
-rw-r--r--tests/projects/package/basic/xmake.lua2
-rw-r--r--xmake/actions/require/action/install.lua8
-rw-r--r--xmake/actions/require/package.lua5
-rw-r--r--xmake/core/package/package.lua12
-rw-r--r--xmake/modules/package/builder/xmake.lua2
5 files changed, 18 insertions, 11 deletions
diff --git a/tests/projects/package/basic/xmake.lua b/tests/projects/package/basic/xmake.lua
index f0c0834e6..d84c9b8f8 100644
--- a/tests/projects/package/basic/xmake.lua
+++ b/tests/projects/package/basic/xmake.lua
@@ -1,6 +1,6 @@
-- requires
-add_requires("tbox master")
+add_requires("tbox master", {debug = true})
add_requires("zlib >=1.2.11", {optional = true})
add_requires("pcre2", "luajit", {system = false})
diff --git a/xmake/actions/require/action/install.lua b/xmake/actions/require/action/install.lua
index 9d6386a15..fcfcbb1b7 100644
--- a/xmake/actions/require/action/install.lua
+++ b/xmake/actions/require/action/install.lua
@@ -39,10 +39,10 @@ function _make_package(package)
local packagedir = path.join(package:directory(), name .. ".pkg")
-- the linkdir
- local linkdir = path.join(packagedir, "lib/$(mode)/$(plat)/$(arch)")
+ local linkdir = path.join(packagedir, "lib", get_config("plat"), get_config("arch"))
-- the includedir
- local includedir = path.join(packagedir, "include/$(mode)/$(plat)/$(arch)")
+ local includedir = path.join(packagedir, "include", get_config("plat"), get_config("arch"))
-- install the library files and ignore hidden files (.xxx)
os.tryrm(linkdir)
@@ -94,10 +94,10 @@ option("%s")
add_links("%s")
-- add link directories
- add_linkdirs("lib/$(mode)/$(plat)/$(arch)")
+ add_linkdirs("lib/$(plat)/$(arch)")
-- add include directories
- add_includedirs("include/$(mode)/$(plat)/$(arch)")
+ add_includedirs("include/$(plat)/$(arch)")
]]
-- save file
diff --git a/xmake/actions/require/package.lua b/xmake/actions/require/package.lua
index 7cdb0d3fd..768fae002 100644
--- a/xmake/actions/require/package.lua
+++ b/xmake/actions/require/package.lua
@@ -41,8 +41,8 @@ import("repository")
-- add_requires("tbox >=1.5.1", "zlib >=1.2.11")
-- add_requires("zlib master")
-- add_requires("xmake-repo@tbox >=1.5.1")
--- add_requires("aaa_bbb_ccc >=1.5.1 <1.6.0", {optional = true, alias = "mypkg"})
--- add_requires("tbox", {config = {coroutine = true, mode = "debug"}})
+-- add_requires("aaa_bbb_ccc >=1.5.1 <1.6.0", {optional = true, alias = "mypkg", debug = true})
+-- add_requires("tbox", {config = {coroutine = true, abc = "xxx"}})
--
function _parse_require(require_str, requires_extra, parentinfo)
@@ -110,6 +110,7 @@ function _parse_require(require_str, requires_extra, parentinfo)
reponame = reponame,
version = version,
alias = require_extra.alias, -- set package alias name
+ debug = require_extra.debug, -- uses the debug package, default: false
system = require_extra.system, -- default: true, we can set it to disable system package manually
option = require_extra.option, -- set and attach option
config = require_extra.config, -- the build configuration of package
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index b96671fe8..51fd8ab01 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -203,7 +203,7 @@ end
-- get the directory of this package
function _instance:directory()
- return path.join(package.installdir(self:from("global")), self:name():sub(1, 1):lower(), self:name(), self:version_str())
+ return path.join(package.installdir(self:from("global")), self:name():sub(1, 1):lower(), self:name(), self:version_str(), self:debug() and "debug" or "release")
end
-- get versions
@@ -273,8 +273,8 @@ end
-- set the require info
function _instance:requireinfo_set(requireinfo)
self._REQUIREINFO = requireinfo
- -- switch to local package if exists package configuration
- if requireinfo and requireinfo.config then
+ -- switch to local package if exists package configuration or debug package
+ if requireinfo and (requireinfo.config or requireinfo.debug) then
self._FROMKIND = "local"
end
end
@@ -299,6 +299,12 @@ function _instance:optional()
return requireinfo and requireinfo.optional or false
end
+-- is debug package?
+function _instance:debug()
+ local requireinfo = self:requireinfo()
+ return requireinfo and requireinfo.debug or false
+end
+
-- is supported package?
function _instance:supported()
-- attempt to get the build script with the current plat/arch
diff --git a/xmake/modules/package/builder/xmake.lua b/xmake/modules/package/builder/xmake.lua
index 1120d8f00..cc97cac91 100644
--- a/xmake/modules/package/builder/xmake.lua
+++ b/xmake/modules/package/builder/xmake.lua
@@ -40,7 +40,7 @@ function build(package, configs)
table.insert(argv, "--" .. name .. "=" .. value)
end
end
- table.insert(argv, "--mode=" .. (is_mode("debug") and "debug" or "release"))
+ table.insert(argv, "--mode=" .. (package:debug() and "debug" or "release"))
-- inherit require and option configs
for name, value in pairs(table.join(package:configs() or {}, configs or {})) do