diff options
| author | ruki <[email protected]> | 2021-02-25 18:38:09 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-02-25 18:38:09 +0800 |
| commit | 58e91c2d0d8c7dbfb83376e89a2ddf06e1c3a003 (patch) | |
| tree | 9d05218838cfc30cfab37c85e9f688f064c5999d | |
| parent | 97513c4135f65579dc318de9b629abd8a0e9295c (diff) | |
| parent | 4e751bd2feb3c29fb51fedc4d81c4e7db6e4b9ac (diff) | |
Merge pull request #1255 from xmake-io/packagedeps
improve to export package deps
| -rw-r--r-- | xmake/core/tool/builder.lua | 17 | ||||
| -rw-r--r-- | xmake/languages/asm/xmake.lua | 21 | ||||
| -rw-r--r-- | xmake/languages/c++/xmake.lua | 30 | ||||
| -rw-r--r-- | xmake/languages/cuda/xmake.lua | 19 | ||||
| -rw-r--r-- | xmake/languages/dlang/xmake.lua | 9 | ||||
| -rw-r--r-- | xmake/languages/fortran/xmake.lua | 7 | ||||
| -rw-r--r-- | xmake/languages/golang/xmake.lua | 8 | ||||
| -rw-r--r-- | xmake/languages/msrc/xmake.lua | 4 | ||||
| -rw-r--r-- | xmake/languages/objc++/xmake.lua | 28 | ||||
| -rw-r--r-- | xmake/languages/rust/xmake.lua | 3 | ||||
| -rw-r--r-- | xmake/languages/swift/xmake.lua | 27 | ||||
| -rw-r--r-- | xmake/languages/zig/xmake.lua | 7 | ||||
| -rw-r--r-- | xmake/rules/utils/inherit_links/inherit_links.lua | 14 |
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 |
