summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-06-12 00:45:55 +0800
committerruki <[email protected]>2021-06-12 00:45:55 +0800
commitad1d98b5598966c0e89871d1d4b11166478bdeea (patch)
treef830332e006f3685cc865edd4fd2d64cecbe616f
parent54dc077b7176e1f602342292b80c29d4cc39b66c (diff)
add headeronly for package
-rw-r--r--xmake/core/package/package.lua5
-rw-r--r--xmake/modules/private/action/require/impl/package.lua16
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