diff options
| author | ruki <[email protected]> | 2021-01-23 23:35:26 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-01-23 23:35:26 +0800 |
| commit | 57bf2a8ec017fe9f3b3165f3e29b0c19e12d4fd0 (patch) | |
| tree | 7627c993e4a0db7bb99bdb5f66543aa4bd8ed5f8 /xmake/modules/package/tools | |
| parent | 0e11a96c4c81a4d3b61fd8c288af8183d72f72c6 (diff) | |
pass toolchains info for package/tools
Diffstat (limited to 'xmake/modules/package/tools')
| -rw-r--r-- | xmake/modules/package/tools/autoconf.lua | 33 | ||||
| -rw-r--r-- | xmake/modules/package/tools/cmake.lua | 15 | ||||
| -rw-r--r-- | xmake/modules/package/tools/xmake.lua | 2 |
3 files changed, 44 insertions, 6 deletions
diff --git a/xmake/modules/package/tools/autoconf.lua b/xmake/modules/package/tools/autoconf.lua index 0f50bbb6d..19cba3365 100644 --- a/xmake/modules/package/tools/autoconf.lua +++ b/xmake/modules/package/tools/autoconf.lua @@ -21,6 +21,8 @@ -- imports import("core.base.option") import("core.project.config") +import("core.tool.linker") +import("core.tool.compiler") -- translate path function _translate_path(package, p) @@ -122,11 +124,17 @@ function buildenvs(package, opt) envs.ASFLAGS = table.concat(asflags, ' ') envs.LDFLAGS = table.concat(ldflags, ' ') else - local cflags = table.join(table.wrap(package:build_getenv("cxflags")), package:build_getenv("cflags")) - local cxxflags = table.join(table.wrap(package:build_getenv("cxflags")), package:build_getenv("cxxflags")) - local asflags = table.copy(table.wrap(package:build_getenv("asflags"))) - local ldflags = table.copy(table.wrap(package:build_getenv("ldflags"))) - local shflags = table.copy(table.wrap(package:build_getenv("shflags"))) + local cflags = table.join(table.wrap(package:build_getenv("cxflags")), package:build_getenv("cflags")) + local cxxflags = table.join(table.wrap(package:build_getenv("cxflags")), package:build_getenv("cxxflags")) + local asflags = table.copy(table.wrap(package:build_getenv("asflags"))) + local ldflags = table.copy(table.wrap(package:build_getenv("ldflags"))) + local shflags = table.copy(table.wrap(package:build_getenv("shflags"))) + local defines = package:build_getenv("defines") + local includedirs = package:build_getenv("includedirs") + local sysincludedirs = package:build_getenv("sysincludedirs") + local links = package:build_getenv("links") + local syslinks = package:build_getenv("syslinks") + local linkdirs = package:build_getenv("linkdirs") table.join2(cflags, opt.cflags) table.join2(cflags, opt.cxflags) table.join2(cxxflags, opt.cxxflags) @@ -134,6 +142,21 @@ function buildenvs(package, opt) table.join2(asflags, opt.asflags) table.join2(ldflags, opt.ldflags) table.join2(shflags, opt.shflags) + table.join2(cflags, compiler.map_flags("c", "define", defines)) + table.join2(cflags, compiler.map_flags("c", "includedir", includedirs)) + table.join2(cflags, compiler.map_flags("c", "sysincludedir", sysincludedirs)) + table.join2(asflags, compiler.map_flags("as", "define", defines)) + table.join2(asflags, compiler.map_flags("as", "includedir", includedirs)) + table.join2(asflags, compiler.map_flags("as", "sysincludedir", sysincludedirs)) + table.join2(cxxflags, compiler.map_flags("cxx", "define", defines)) + table.join2(cxxflags, compiler.map_flags("cxx", "includedir", includedirs)) + table.join2(cxxflags, compiler.map_flags("cxx", "sysincludedir", sysincludedirs)) + table.join2(ldflags, linker.map_flags("binary", {"cxx"}, "link", links)) + table.join2(ldflags, linker.map_flags("binary", {"cxx"}, "syslink", syslinks)) + table.join2(ldflags, linker.map_flags("binary", {"cxx"}, "linkdir", linkdirs)) + table.join2(shflags, linker.map_flags("shared", {"cxx"}, "link", links)) + table.join2(shflags, linker.map_flags("shared", {"cxx"}, "syslink", syslinks)) + table.join2(shflags, linker.map_flags("shared", {"cxx"}, "linkdir", linkdirs)) envs.CC = package:build_getenv("cc") envs.AS = package:build_getenv("as") envs.AR = package:build_getenv("ar") diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua index e13453303..f705a4f40 100644 --- a/xmake/modules/package/tools/cmake.lua +++ b/xmake/modules/package/tools/cmake.lua @@ -92,6 +92,9 @@ function _get_cflags(package, opt) if opt.cross then table.join2(result, package:build_getenv("cflags")) table.join2(result, package:build_getenv("cxflags")) + table.join2(result, compiler.map_flags("c", "define", package:build_getenv("defines"))) + table.join2(result, compiler.map_flags("c", "includedir", package:build_getenv("includedirs"))) + table.join2(result, compiler.map_flags("c", "sysincludedir", package:build_getenv("sysincludedirs"))) end table.join2(result, package:config("cflags")) table.join2(result, package:config("cxflags")) @@ -114,6 +117,9 @@ function _get_cxxflags(package, opt) if opt.cross then table.join2(result, package:build_getenv("cxxflags")) table.join2(result, package:build_getenv("cxflags")) + table.join2(result, compiler.map_flags("cxx", "define", package:build_getenv("defines"))) + table.join2(result, compiler.map_flags("cxx", "includedir", package:build_getenv("includedirs"))) + table.join2(result, compiler.map_flags("cxx", "sysincludedir", package:build_getenv("sysincludedirs"))) end table.join2(result, package:config("cxxflags")) table.join2(result, package:config("cxflags")) @@ -135,6 +141,9 @@ function _get_asflags(package, opt) local result = {} if opt.cross then table.join2(result, package:build_getenv("asflags")) + table.join2(result, compiler.map_flags("as", "define", package:build_getenv("defines"))) + table.join2(result, compiler.map_flags("as", "includedir", package:build_getenv("includedirs"))) + table.join2(result, compiler.map_flags("as", "sysincludedir", package:build_getenv("sysincludedirs"))) end table.join2(result, package:config("asflags")) if opt.asflags then @@ -151,6 +160,9 @@ function _get_ldflags(package, opt) local result = {} if opt.cross then table.join2(result, package:build_getenv("ldflags")) + table.join2(result, linker.map_flags("binary", {"cxx"}, "link", package:build_getenv("links"))) + table.join2(result, linker.map_flags("binary", {"cxx"}, "syslink", package:build_getenv("syslinks"))) + table.join2(result, linker.map_flags("binary", {"cxx"}, "linkdir", package:build_getenv("linkdirs"))) end table.join2(result, _get_ldflags_from_packagedeps(package, opt)) if opt.ldflags then @@ -167,6 +179,9 @@ function _get_shflags(package, opt) local result = {} if opt.cross then table.join2(result, package:build_getenv("shflags")) + table.join2(result, linker.map_flags("shared", {"cxx"}, "link", package:build_getenv("links"))) + table.join2(result, linker.map_flags("shared", {"cxx"}, "syslink", package:build_getenv("syslinks"))) + table.join2(result, linker.map_flags("shared", {"cxx"}, "linkdir", package:build_getenv("linkdirs"))) end table.join2(result, _get_ldflags_from_packagedeps(package, opt)) if opt.shflags then diff --git a/xmake/modules/package/tools/xmake.lua b/xmake/modules/package/tools/xmake.lua index 115a5fbe8..7c2e86327 100644 --- a/xmake/modules/package/tools/xmake.lua +++ b/xmake/modules/package/tools/xmake.lua @@ -79,7 +79,7 @@ function install(package, configs) -- inherit builtin configs local argv = _init_argv("f", "-y", "-c") - local names = {"plat", "arch", "ndk", "ndk_sdkver", "vs", "mingw", "sdk", "bin", "cross", "ld", "sh", "ar", "cc", "cxx", "mm", "mxx"} + local names = {"plat", "arch", "ndk", "ndk_sdkver", "vs", "mingw", "sdk", "toolchain", "bin", "cross", "ld", "sh", "ar", "cc", "cxx", "mm", "mxx"} for _, name in ipairs(names) do local value = get_config(name) if value ~= nil then |
