diff options
| author | ruki <[email protected]> | 2021-04-20 00:40:12 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-04-20 00:40:12 +0800 |
| commit | 16b72e5c2c75eeb9bf374d977860539eaedbc448 (patch) | |
| tree | 07277db5788052c5b7ca55bb900e11dd270e62a8 | |
| parent | d9be771f21281da7ced2546ff5aa1c11e94cecc1 (diff) | |
improve vs_runtime
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index f9b3da490..2915d3e78 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -222,7 +222,6 @@ end -- add some builtin configurations to package function _add_package_configurations(package) - local vs_runtime = project.get("target.runtimes") or get_config("vs_runtime") or "MT" package:add("configs", "debug", {builtin = true, description = "Enable debug symbols.", default = false, type = "boolean"}) package:add("configs", "shared", {builtin = true, description = "Enable shared library.", default = false, type = "boolean"}) package:add("configs", "cflags", {builtin = true, description = "Set the C compiler flags."}) @@ -230,7 +229,7 @@ function _add_package_configurations(package) package:add("configs", "cxxflags", {builtin = true, description = "Set the C++ compiler flags."}) package:add("configs", "asflags", {builtin = true, description = "Set the assembler flags."}) package:add("configs", "pic", {builtin = true, description = "Enable the position independent code.", default = true, type = "boolean"}) - package:add("configs", "vs_runtime", {builtin = true, description = "Set vs compiler runtime.", default = vs_runtime, values = {"MT", "MTd", "MD", "MDd"}}) + package:add("configs", "vs_runtime", {builtin = true, description = "Set vs compiler runtime.", values = {"MT", "MTd", "MD", "MDd"}}) package:add("configs", "toolchains", {builtin = true, description = "Set package toolchains only for cross-compilation."}) end @@ -353,10 +352,16 @@ end -- init requireinfo function _init_requireinfo(requireinfo, package, opt) -- pass root toolchains to top library package - if opt.is_toplevel and package:is_cross() and package:is_library() then - requireinfo.configs = requireinfo.configs or {} - -- TODO get extra configs of toolchain - requireinfo.configs.toolchains = requireinfo.configs.toolchains or project.get("target.toolchains") or get_config("toolchain") + requireinfo.configs = requireinfo.configs or {} + if opt.is_toplevel then + if package:is_cross() and package:is_library() then + -- TODO get extra configs of toolchain + requireinfo.configs.toolchains = requireinfo.configs.toolchains or project.get("target.toolchains") or get_config("toolchain") + end + requireinfo.configs.vs_runtime = requireinfo.configs.vs_runtime or project.get("target.runtimes") or get_config("vs_runtime") + end + if requireinfo.configs.vs_runtime == nil then + requireinfo.configs.vs_runtime = "MT" end end @@ -486,6 +491,7 @@ function _inherit_parent_configs(requireinfo, package, parentinfo) requireinfo.private = parentinfo.private end requireinfo_configs.toolchains = requireinfo_configs.toolchains or parentinfo_configs.toolchains + requireinfo_configs.vs_runtime = requireinfo_configs.vs_runtime or parentinfo_configs.vs_runtime requireinfo.configs = requireinfo_configs end end |
