summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-02-25 18:38:09 +0800
committerGitHub <[email protected]>2021-02-25 18:38:09 +0800
commit58e91c2d0d8c7dbfb83376e89a2ddf06e1c3a003 (patch)
tree9d05218838cfc30cfab37c85e9f688f064c5999d
parent97513c4135f65579dc318de9b629abd8a0e9295c (diff)
parent4e751bd2feb3c29fb51fedc4d81c4e7db6e4b9ac (diff)
Merge pull request #1255 from xmake-io/packagedeps
improve to export package deps
-rw-r--r--xmake/core/tool/builder.lua17
-rw-r--r--xmake/languages/asm/xmake.lua21
-rw-r--r--xmake/languages/c++/xmake.lua30
-rw-r--r--xmake/languages/cuda/xmake.lua19
-rw-r--r--xmake/languages/dlang/xmake.lua9
-rw-r--r--xmake/languages/fortran/xmake.lua7
-rw-r--r--xmake/languages/golang/xmake.lua8
-rw-r--r--xmake/languages/msrc/xmake.lua4
-rw-r--r--xmake/languages/objc++/xmake.lua28
-rw-r--r--xmake/languages/rust/xmake.lua3
-rw-r--r--xmake/languages/swift/xmake.lua27
-rw-r--r--xmake/languages/zig/xmake.lua7
-rw-r--r--xmake/rules/utils/inherit_links/inherit_links.lua14
13 files changed, 14 insertions, 180 deletions
diff --git a/xmake/core/tool/builder.lua b/xmake/core/tool/builder.lua
index 04349dbf2..2e503022e 100644
--- a/xmake/core/tool/builder.lua
+++ b/xmake/core/tool/builder.lua
@@ -275,28 +275,19 @@ function builder:_add_flags_from_language(flags, target, getters)
end
end
, target = function (name)
-
- -- only for target
local results = {}
if target:type() == "target" then
- -- get flagvalues (public or interface) of all dependent targets (contain packages/options)
- table.join2(results, target:get_from_deps(name, {interface = true}))
-
-- get flagvalues of target with given flagname
table.join2(results, target:get(name))
- end
- return results
- end
- , option = function (name)
- -- is target? get flagvalues of the attached options and packages
- local results = {}
- if target:type() == "target" then
+ -- get flagvalues of the attached options and packages
table.join2(results, target:get_from_opts(name))
table.join2(results, target:get_from_pkgs(name))
- -- is option? get flagvalues of option with given flagname
+ -- get flagvalues (public or interface) of all dependent targets (contain packages/options)
+ table.join2(results, target:get_from_deps(name, {interface = true}))
+
elseif target:type() == "option" then
table.join2(results, target:get(name))
end
diff --git a/xmake/languages/asm/xmake.lua b/xmake/languages/asm/xmake.lua
index d184ac4d7..a57790027 100644
--- a/xmake/languages/asm/xmake.lua
+++ b/xmake/languages/asm/xmake.lua
@@ -59,21 +59,10 @@ language("asm")
, "target.includedirs"
, "target.defines"
, "target.undefines"
- , "option.symbols"
- , "option.warnings"
- , "option.optimize:check"
- , "option.vectorexts:check"
- , "option.languages"
- , "option.includedirs"
- , "option.defines"
- , "option.undefines"
- , "option.defines_if_ok"
- , "option.undefines_if_ok"
, "toolchain.includedirs"
, "toolchain.defines"
, "toolchain.undefines"
, "target.sysincludedirs"
- , "option.sysincludedirs"
, "toolchain.sysincludedirs"
}
, binary =
@@ -83,15 +72,10 @@ language("asm")
, "target.rpathdirs"
, "target.strip"
, "target.symbols"
- , "option.strip"
- , "option.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
}
, shared =
@@ -100,17 +84,12 @@ language("asm")
, "target.linkdirs"
, "target.strip"
, "target.symbols"
- , "option.strip"
- , "option.symbols"
- , "option.linkdirs"
, "toolchain.linkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, static =
diff --git a/xmake/languages/c++/xmake.lua b/xmake/languages/c++/xmake.lua
index f21db9e5b..4a18dc5df 100644
--- a/xmake/languages/c++/xmake.lua
+++ b/xmake/languages/c++/xmake.lua
@@ -70,26 +70,12 @@ language("c++")
, "target.frameworks"
, "target.pcheader"
, "target.pcxxheader"
- , "option.symbols"
- , "option.warnings"
- , "option.fpmodels"
- , "option.optimize:check"
- , "option.vectorexts:check"
- , "option.languages"
- , "option.includedirs"
- , "option.defines"
- , "option.undefines"
- , "option.defines_if_ok"
- , "option.undefines_if_ok"
- , "option.frameworkdirs"
- , "option.frameworks"
, "toolchain.includedirs"
, "toolchain.defines"
, "toolchain.undefines"
, "toolchain.frameworkdirs"
, "toolchain.frameworks"
, "target.sysincludedirs"
- , "option.sysincludedirs"
, "toolchain.sysincludedirs"
}
, binary =
@@ -102,25 +88,17 @@ language("c++")
, "target.strip"
, "target.symbols"
, "target.runtimes"
- , "option.strip"
- , "option.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
- , "option.frameworkdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
, "toolchain.frameworkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.frameworks"
, "target.frameworks"
- , "option.frameworks"
, "toolchain.frameworks"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, shared =
@@ -133,25 +111,17 @@ language("c++")
, "target.strip"
, "target.symbols"
, "target.runtimes"
- , "option.strip"
- , "option.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
- , "option.frameworkdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
, "toolchain.frameworkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.frameworks"
, "target.frameworks"
- , "option.frameworks"
, "toolchain.frameworks"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, static =
diff --git a/xmake/languages/cuda/xmake.lua b/xmake/languages/cuda/xmake.lua
index d58f44a96..1915730d0 100644
--- a/xmake/languages/cuda/xmake.lua
+++ b/xmake/languages/cuda/xmake.lua
@@ -62,19 +62,10 @@ language("cuda")
, "target.languages"
, "target.defines"
, "target.undefines"
- , "option.symbols"
- , "option.warnings"
- , "option.optimize:check"
- , "option.vectorexts:check"
- , "option.includedirs"
- , "option.languages"
- , "option.defines"
- , "option.undefines"
, "toolchain.includedirs"
, "toolchain.defines"
, "toolchain.undefines"
, "target.sysincludedirs"
- , "option.sysincludedirs"
, "toolchain.sysincludedirs"
}
, binary =
@@ -84,17 +75,13 @@ language("cuda")
, "target.rpathdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, shared =
@@ -103,15 +90,12 @@ language("cuda")
, "target.linkdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
, "toolchain.linkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, static =
@@ -123,15 +107,12 @@ language("cuda")
{
"config.linkdirs"
, "target.linkdirs"
- , "option.linkdirs"
, "toolchain.linkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
}
diff --git a/xmake/languages/dlang/xmake.lua b/xmake/languages/dlang/xmake.lua
index 4dbbcc494..c9df5657b 100644
--- a/xmake/languages/dlang/xmake.lua
+++ b/xmake/languages/dlang/xmake.lua
@@ -59,10 +59,8 @@ language("dlang")
, "target.optimize:check"
, "target.vectorexts:check"
, "target.includedirs"
- , "option.includedirs"
, "toolchain.includedirs"
, "target.sysincludedirs"
- , "option.sysincludedirs"
, "toolchain.sysincludedirs"
}
, binary =
@@ -72,17 +70,13 @@ language("dlang")
, "target.rpathdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, shared =
@@ -91,15 +85,12 @@ language("dlang")
, "target.linkdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
, "toolchain.linkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, static =
diff --git a/xmake/languages/fortran/xmake.lua b/xmake/languages/fortran/xmake.lua
index 3307b9cc6..435b55ca2 100644
--- a/xmake/languages/fortran/xmake.lua
+++ b/xmake/languages/fortran/xmake.lua
@@ -70,17 +70,13 @@ language("fortran")
, "target.rpathdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, shared =
@@ -89,15 +85,12 @@ language("fortran")
, "target.linkdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
, "toolchain.linkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, static =
diff --git a/xmake/languages/golang/xmake.lua b/xmake/languages/golang/xmake.lua
index e6e9007c8..cae73ca26 100644
--- a/xmake/languages/golang/xmake.lua
+++ b/xmake/languages/golang/xmake.lua
@@ -61,12 +61,10 @@ language("golang")
, "target.defines"
, "target.undefines"
, "target.includedirs"
- , "option.includedirs"
, "toolchain.includedirs"
, "toolchain.defines"
, "toolchain.undefines"
, "target.sysincludedirs"
- , "option.sysincludedirs"
, "toolchain.sysincludedirs"
}
, binary =
@@ -75,15 +73,12 @@ language("golang")
, "target.linkdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
, "toolchain.linkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, shared =
@@ -92,15 +87,12 @@ language("golang")
, "target.linkdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
, "toolchain.linkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
}
diff --git a/xmake/languages/msrc/xmake.lua b/xmake/languages/msrc/xmake.lua
index e890b8879..e5becdba7 100644
--- a/xmake/languages/msrc/xmake.lua
+++ b/xmake/languages/msrc/xmake.lua
@@ -48,10 +48,6 @@ language("msrc")
, "target.defines"
, "target.undefines"
, "target.includedirs"
- , "option.defines"
- , "option.undefines"
- , "option.defines_if_ok"
- , "option.undefines_if_ok"
, "toolchain.includedirs"
, "toolchain.defines"
, "toolchain.undefines"
diff --git a/xmake/languages/objc++/xmake.lua b/xmake/languages/objc++/xmake.lua
index aafece100..e503ba264 100644
--- a/xmake/languages/objc++/xmake.lua
+++ b/xmake/languages/objc++/xmake.lua
@@ -68,25 +68,12 @@ language("objc++")
, "target.frameworks"
, "target.pcheader"
, "target.pcxxheader"
- , "option.symbols"
- , "option.warnings"
- , "option.optimize:check"
- , "option.vectorexts:check"
- , "option.languages"
- , "option.includedirs"
- , "option.defines"
- , "option.undefines"
- , "option.defines_if_ok"
- , "option.undefines_if_ok"
- , "option.frameworkdirs"
- , "option.frameworks"
, "toolchain.includedirs"
, "toolchain.defines"
, "toolchain.undefines"
, "toolchain.frameworkdirs"
, "toolchain.frameworks"
, "target.sysincludedirs"
- , "option.sysincludedirs"
, "toolchain.sysincludedirs"
}
, binary =
@@ -98,25 +85,17 @@ language("objc++")
, "target.frameworkdirs"
, "target.strip"
, "target.symbols"
- , "option.strip"
- , "option.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
- , "option.frameworkdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
, "toolchain.frameworkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.frameworks"
, "target.frameworks"
- , "option.frameworks"
, "toolchain.frameworks"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, shared =
@@ -127,23 +106,16 @@ language("objc++")
, "target.frameworkdirs"
, "target.strip"
, "target.symbols"
- , "option.strip"
- , "option.symbols"
- , "option.linkdirs"
- , "option.frameworkdirs"
, "toolchain.linkdirs"
, "toolchain.frameworkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.frameworks"
, "target.frameworks"
- , "option.frameworks"
, "toolchain.frameworks"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, static =
diff --git a/xmake/languages/rust/xmake.lua b/xmake/languages/rust/xmake.lua
index 7802b8e7f..9c7e94edc 100644
--- a/xmake/languages/rust/xmake.lua
+++ b/xmake/languages/rust/xmake.lua
@@ -65,8 +65,6 @@ language("rust")
, "target.rpathdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
}
@@ -76,7 +74,6 @@ language("rust")
, "target.linkdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
, "toolchain.linkdirs"
}
, static =
diff --git a/xmake/languages/swift/xmake.lua b/xmake/languages/swift/xmake.lua
index bae455844..b0de2d067 100644
--- a/xmake/languages/swift/xmake.lua
+++ b/xmake/languages/swift/xmake.lua
@@ -63,18 +63,6 @@ language("swift")
, "target.undefines"
, "target.frameworkdirs"
, "target.frameworks"
- , "option.symbols"
- , "option.warnings"
- , "option.optimize:check"
- , "option.vectorexts:check"
- , "option.languages"
- , "option.includedirs"
- , "option.defines"
- , "option.undefines"
- , "option.defines_if_ok"
- , "option.undefines_if_ok"
- , "option.frameworkdirs"
- , "option.frameworks"
, "toolchain.includedirs"
, "toolchain.defines"
, "toolchain.undefines"
@@ -90,25 +78,17 @@ language("swift")
, "target.frameworkdirs"
, "target.strip"
, "target.symbols"
- , "option.strip"
- , "option.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
- , "option.frameworkdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
, "toolchain.frameworkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.frameworks"
, "target.frameworks"
- , "option.frameworks"
, "toolchain.frameworks"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, shared =
@@ -119,23 +99,16 @@ language("swift")
, "target.frameworkdirs"
, "target.strip"
, "target.symbols"
- , "option.strip"
- , "option.symbols"
- , "option.linkdirs"
- , "option.frameworkdirs"
, "toolchain.linkdirs"
, "toolchain.frameworkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.frameworks"
, "target.frameworks"
- , "option.frameworks"
, "toolchain.frameworks"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, static =
diff --git a/xmake/languages/zig/xmake.lua b/xmake/languages/zig/xmake.lua
index 3aeba0524..117890613 100644
--- a/xmake/languages/zig/xmake.lua
+++ b/xmake/languages/zig/xmake.lua
@@ -65,17 +65,13 @@ language("zig")
, "target.rpathdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
- , "option.rpathdirs"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, shared =
@@ -84,15 +80,12 @@ language("zig")
, "target.linkdirs"
, "target.strip"
, "target.symbols"
- , "option.linkdirs"
, "toolchain.linkdirs"
, "config.links"
, "target.links"
- , "option.links"
, "toolchain.links"
, "config.syslinks"
, "target.syslinks"
- , "option.syslinks"
, "toolchain.syslinks"
}
, static =
diff --git a/xmake/rules/utils/inherit_links/inherit_links.lua b/xmake/rules/utils/inherit_links/inherit_links.lua
index 65e8bdce1..2a130aac0 100644
--- a/xmake/rules/utils/inherit_links/inherit_links.lua
+++ b/xmake/rules/utils/inherit_links/inherit_links.lua
@@ -53,10 +53,16 @@ function main(target)
end
-- we export all links and linkdirs in self/packages/options to the parent target by default
- for _, name in ipairs({"frameworkdirs", "frameworks", "linkdirs", "links", "syslinks"}) do
- local values = _get_values_from_target(target, name)
- if values and #values > 0 then
- target:add(name, values, {public = true})
+ --
+ -- @note we only export links for static target,
+ -- and we need pass `{public = true}` to add_packages/add_links/... to export it if want to export links for shared target
+ --
+ if targetkind == "static" then
+ for _, name in ipairs({"frameworkdirs", "frameworks", "linkdirs", "links", "syslinks"}) do
+ local values = _get_values_from_target(target, name)
+ if values and #values > 0 then
+ target:add(name, values, {public = true})
+ end
end
end
end