summaryrefslogtreecommitdiff
path: root/xmake/actions/require/install.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-11-08 11:07:41 +0800
committerruki <[email protected]>2020-11-08 11:07:41 +0800
commitea6afc015b3c3f391761ba13a03c966daedd6db4 (patch)
tree5ad9183da6470ba09542bd8b6634d149a9647fb0 /xmake/actions/require/install.lua
parent8b032f72b8f3972fe702b6f3f20d07d2d1696739 (diff)
add check_licenses
Diffstat (limited to 'xmake/actions/require/install.lua')
-rw-r--r--xmake/actions/require/install.lua34
1 files changed, 25 insertions, 9 deletions
diff --git a/xmake/actions/require/install.lua b/xmake/actions/require/install.lua
index 4d250293f..75da17097 100644
--- a/xmake/actions/require/install.lua
+++ b/xmake/actions/require/install.lua
@@ -29,6 +29,7 @@ import("impl.environment")
import("impl.utils.get_requires")
-- register required package environments
+-- envs: bin path for *.dll, program ..
function _register_required_package_envs(instance, envs)
for name, values in pairs(instance:envs()) do
if name == "PATH" or name == "LD_LIBRARY_PATH" then
@@ -47,9 +48,27 @@ function _register_required_package_envs(instance, envs)
end
end
--- register required package info
-function _register_required_package_info(instance, requireinfo)
- requireinfo:add((instance:fetch()))
+-- register required package libraries
+-- libs: includedirs, links, linkdirs ...
+function _register_required_package_libs(instance, requireinfo, is_deps)
+ if instance:kind() ~= "binary" then
+ local fetchinfo = instance:fetch()
+ if fetchinfo then
+ fetchinfo.name = nil
+ if is_deps then
+ -- we need only reserve license for root package
+ --
+ -- @note the license compatibility between the root package and
+ -- its dependent packages is guaranteed by the root package itself
+ --
+ fetchinfo.license = nil
+
+ -- we need only root package version
+ fetchinfo.version = nil
+ end
+ requireinfo:add(fetchinfo)
+ end
+ end
end
-- register the required local package
@@ -62,9 +81,9 @@ function _register_required_package(instance, requireinfo)
-- clear require info first
requireinfo:clear()
- -- add include, links and envs for all dependent packages
+ -- add packages info with all dependencies
local envs = {}
- _register_required_package_info(instance, requireinfo)
+ _register_required_package_libs(instance, requireinfo)
_register_required_package_envs(instance, envs)
local orderdeps = instance:orderdeps()
if orderdeps then
@@ -72,7 +91,7 @@ function _register_required_package(instance, requireinfo)
for idx, _ in ipairs(orderdeps) do
local dep = orderdeps[total + 1 - idx]
if dep then
- _register_required_package_info(dep, requireinfo)
+ _register_required_package_libs(dep, requireinfo, true)
_register_required_package_envs(dep, envs)
end
end
@@ -81,9 +100,6 @@ function _register_required_package(instance, requireinfo)
requireinfo:add({envs = envs})
end
- -- save this package version
- requireinfo:version_set(instance:version_str())
-
-- enable this require info
requireinfo:enable(true)
end