summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-01-05 00:43:57 +0800
committerruki <[email protected]>2021-01-05 00:43:57 +0800
commit6bd82372db43eda6435aced5125db15793452897 (patch)
treeb9e8aa004602d81059e6b02396ec88a70ec4ba74
parent252f06e4e77be844729db3bcc704f17c255cca9f (diff)
add rootconfig test
-rwxr-xr-xtests/projects/package/rootconfigs/src/main.c7
-rw-r--r--tests/projects/package/rootconfigs/test.lua6
-rw-r--r--tests/projects/package/rootconfigs/xmake.lua7
-rw-r--r--xmake/actions/require/impl/package.lua5
4 files changed, 25 insertions, 0 deletions
diff --git a/tests/projects/package/rootconfigs/src/main.c b/tests/projects/package/rootconfigs/src/main.c
new file mode 100755
index 000000000..9ae580511
--- /dev/null
+++ b/tests/projects/package/rootconfigs/src/main.c
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int main(int argc, char** argv)
+{
+ printf("hello world!\n");
+ return 0;
+}
diff --git a/tests/projects/package/rootconfigs/test.lua b/tests/projects/package/rootconfigs/test.lua
new file mode 100644
index 000000000..8644a2af9
--- /dev/null
+++ b/tests/projects/package/rootconfigs/test.lua
@@ -0,0 +1,6 @@
+function main(t)
+ -- only for x86/x64, because it will take too long time on ci with arm/mips
+ if os.subarch():startswith("x") or os.subarch() == "i386" then
+ t:build()
+ end
+end
diff --git a/tests/projects/package/rootconfigs/xmake.lua b/tests/projects/package/rootconfigs/xmake.lua
new file mode 100644
index 000000000..66a55cef2
--- /dev/null
+++ b/tests/projects/package/rootconfigs/xmake.lua
@@ -0,0 +1,7 @@
+add_requireconfs("*", {system = false, configs = {debug = false}})
+add_requires("zlib", {system = false, debug = true})
+
+target("test")
+ set_kind("binary")
+ add_files("src/*.c")
+ add_packages("libpng")
diff --git a/xmake/actions/require/impl/package.lua b/xmake/actions/require/impl/package.lua
index fab5e8f7a..38092ccc9 100644
--- a/xmake/actions/require/impl/package.lua
+++ b/xmake/actions/require/impl/package.lua
@@ -391,6 +391,11 @@ function _load_requireinfo(packagename, requireinfo, requirepath)
if #requireconf_result == 1 then
local requireconf_extra = requireconf_result[1].requireconf_extra
if requireconf_extra then
+ if requireconf_extra.debug then
+ requireconf_extra.configs = requireconf_extra.configs or {}
+ requireconf_extra.configs.debug = true
+ requireconf_extra.debug = nil
+ end
for k, v in pairs(requireconf_extra.configs) do
requireinfo.configs = requireinfo.configs or {}
if requireinfo.configs[k] == nil then