diff options
| author | ruki <[email protected]> | 2024-09-13 21:02:12 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-09-13 21:02:12 +0800 |
| commit | 252dbbe8a9c57e096f44c964d2b4dae2ea822c26 (patch) | |
| tree | 4c896d44761df896c3b1ed5e01e3ae35d5eda736 | |
| parent | decc680dfd4f703b072664433e177673c027c903 (diff) | |
add install.strip_packagelibs
| -rw-r--r-- | xmake/core/project/policy.lua | 2 | ||||
| -rw-r--r-- | xmake/modules/target/action/install/main.lua | 11 | ||||
| -rw-r--r-- | xmake/modules/target/action/uninstall/main.lua | 11 |
3 files changed, 16 insertions, 8 deletions
diff --git a/xmake/core/project/policy.lua b/xmake/core/project/policy.lua index 3e02d210d..7327918a2 100644 --- a/xmake/core/project/policy.lua +++ b/xmake/core/project/policy.lua @@ -100,6 +100,8 @@ function policy.policies() ["run.autobuild"] = {description = "Automatically build before running.", type = "boolean"}, -- Enable install rpath ["install.rpath"] = {description = "Enable install rpath.", default = true, type = "boolean"}, + -- Strip package libraries for installation + ["install.strip_packagelibs"] = {description = "Strip package libraries for installation.", default = true, type = "boolean"}, -- Preprocessor configuration for ccache/distcc, we can disable linemarkers to speed up preprocess ["preprocessor.linemarkers"] = {description = "Enable linemarkers for preprocessor.", default = true, type = "boolean"}, -- Preprocessor configuration for ccache/distcc, we can disable it to avoid cache object file with __DATE__, __TIME__ diff --git a/xmake/modules/target/action/install/main.lua b/xmake/modules/target/action/install/main.lua index 257bdcedc..45f43a7cb 100644 --- a/xmake/modules/target/action/install/main.lua +++ b/xmake/modules/target/action/install/main.lua @@ -21,6 +21,7 @@ -- imports import("core.base.option") import("core.base.hashset") +import("core.project.project") import("utils.binary.deplibs", {alias = "get_depend_libraries"}) import("utils.binary.rpath", {alias = "rpath_utils"}) @@ -60,10 +61,12 @@ function _get_target_package_libfiles(target, opt) end end -- we can only reserve used libraries - if target:is_binary() or target:is_shared() then - local depends = hashset.new() - _get_target_package_deplibs(target, depends, libfiles, target:targetfile()) - table.remove_if(libfiles, function (_, libfile) return not depends:has(path.filename(libfile)) end) + if project.policy("install.strip_packagelibs") then + if target:is_binary() or target:is_shared() then + local depends = hashset.new() + _get_target_package_deplibs(target, depends, libfiles, target:targetfile()) + table.remove_if(libfiles, function (_, libfile) return not depends:has(path.filename(libfile)) end) + end end return libfiles end diff --git a/xmake/modules/target/action/uninstall/main.lua b/xmake/modules/target/action/uninstall/main.lua index ab2333207..912e5140f 100644 --- a/xmake/modules/target/action/uninstall/main.lua +++ b/xmake/modules/target/action/uninstall/main.lua @@ -21,6 +21,7 @@ -- imports import("core.base.option") import("core.base.hashset") +import("core.project.project") import("utils.binary.deplibs", {alias = "get_depend_libraries"}) import("private.action.clean.remove_files") @@ -61,10 +62,12 @@ function _get_target_package_libfiles(target, opt) end end -- we can only reserve used libraries - if target:is_binary() or target:is_shared() then - local depends = hashset.new() - _get_target_package_deplibs(target, depends, libfiles, target:targetfile()) - table.remove_if(libfiles, function (_, libfile) return not depends:has(path.filename(libfile)) end) + if project.policy("install.strip_packagelibs") then + if target:is_binary() or target:is_shared() then + local depends = hashset.new() + _get_target_package_deplibs(target, depends, libfiles, target:targetfile()) + table.remove_if(libfiles, function (_, libfile) return not depends:has(path.filename(libfile)) end) + end end return libfiles end |
