diff options
| author | ruki <[email protected]> | 2021-06-12 00:45:55 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-06-12 00:45:55 +0800 |
| commit | ad1d98b5598966c0e89871d1d4b11166478bdeea (patch) | |
| tree | f830332e006f3685cc865edd4fd2d64cecbe616f | |
| parent | 54dc077b7176e1f602342292b80c29d4cc39b66c (diff) | |
add headeronly for package
| -rw-r--r-- | xmake/core/package/package.lua | 5 | ||||
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 16 |
2 files changed, 15 insertions, 6 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index d68bcff57..3ad23f67f 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -357,6 +357,11 @@ function _instance:is_library() return self:kind() == nil or self:kind() == "library" end +-- is header only? +function _instance:is_headeronly() + return self:is_library() and self:extraconf("kind", "library", "headeronly") +end + -- is top level? user top requires in xmake.lua function _instance:is_toplevel() local requireinfo = self:requireinfo() diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index 598acd251..aa7a75352 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -352,19 +352,23 @@ function _init_requireinfo(requireinfo, package, opt) requireinfo.configs = requireinfo.configs or {} if opt.is_toplevel then requireinfo.is_toplevel = true - 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") + if not package:is_headeronly() 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 - requireinfo.configs.vs_runtime = requireinfo.configs.vs_runtime or project.get("target.runtimes") or get_config("vs_runtime") end end -- set default requireinfo function _set_requireinfo_default(requireinfo, package) requireinfo.configs = requireinfo.configs or {} - if requireinfo.configs.vs_runtime == nil and package:is_plat("windows") then - requireinfo.configs.vs_runtime = "MT" + if not package:is_headeronly() then + if requireinfo.configs.vs_runtime == nil and package:is_plat("windows") then + requireinfo.configs.vs_runtime = "MT" + end end end |
