diff options
| author | ruki <[email protected]> | 2022-08-19 08:11:14 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-08-19 08:11:14 +0800 |
| commit | 3c54402ff5d8c8cb2e085a09cd1fc4c10297817e (patch) | |
| tree | efa6ebeabac0c435b3cea77191dcea15034dcfad /xmake | |
| parent | efa7402d57ba0e2df823a180bfeb2b05732d12c7 (diff) | |
| parent | cbdb0c221f9ae5cc09ec5f2dfe4b8d86974dd454 (diff) | |
Merge pull request #2690 from xmake-io/requires
improve requires
Diffstat (limited to 'xmake')
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index aa7fc9b96..e90922171 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -466,19 +466,21 @@ function _init_requireinfo(requireinfo, package, opt) requireinfo.configs = requireinfo.configs or {} if opt.is_toplevel then requireinfo.is_toplevel = true - if not package:is_headeronly() then - if package:is_library() then - requireinfo.configs.toolchains = requireinfo.configs.toolchains or project.get("target.toolchains") - if project.policy("package.inherit_external_configs") then - requireinfo.configs.toolchains = requireinfo.configs.toolchains or get_config("toolchain") - end - end - requireinfo.configs.vs_runtime = requireinfo.configs.vs_runtime or project.get("target.runtimes") + + -- we always pass some configurations from toplevel even it's headeronly, because it's library deps need inherit them + -- but we will reset it for headeronly package after finishing requireinfo + -- @see https://github.com/xmake-io/xmake/issues/2688 + if package:is_library() then + requireinfo.configs.toolchains = requireinfo.configs.toolchains or project.get("target.toolchains") if project.policy("package.inherit_external_configs") then - requireinfo.configs.vs_runtime = requireinfo.configs.vs_runtime or get_config("vs_runtime") + requireinfo.configs.toolchains = requireinfo.configs.toolchains or get_config("toolchain") end - requireinfo.configs.lto = requireinfo.configs.lto or project.policy("build.optimization.lto") end + requireinfo.configs.vs_runtime = requireinfo.configs.vs_runtime or project.get("target.runtimes") + if project.policy("package.inherit_external_configs") then + requireinfo.configs.vs_runtime = requireinfo.configs.vs_runtime or get_config("vs_runtime") + end + requireinfo.configs.lto = requireinfo.configs.lto or project.policy("build.optimization.lto") end end @@ -487,6 +489,8 @@ function _finish_requireinfo(requireinfo, package) requireinfo.configs = requireinfo.configs or {} if package:is_headeronly() then requireinfo.configs.vs_runtime = nil + requireinfo.configs.toolchains = nil + requireinfo.configs.lto = nil else if requireinfo.configs.vs_runtime == nil and package:is_plat("windows") then requireinfo.configs.vs_runtime = "MT" |
