summaryrefslogtreecommitdiff
path: root/xmake
diff options
context:
space:
mode:
authorruki <[email protected]>2025-12-11 23:35:23 +0800
committerruki <[email protected]>2025-12-12 09:00:44 +0800
commit4ccb8514f37fdf7108b41dbcd8ca77143841e1cd (patch)
treeff1b1ae7433fa16acb2bfccffcf4bebc4e9b8b98 /xmake
parent409b21826872503ef479848321003d7ca4c1aad8 (diff)
set plain as default
Diffstat (limited to 'xmake')
-rw-r--r--xmake/core/base/binutils.lua6
-rw-r--r--xmake/core/sandbox/modules/import/core/base/binutils.lua4
-rw-r--r--xmake/modules/utils/binary/extractlib.lua11
3 files changed, 15 insertions, 6 deletions
diff --git a/xmake/core/base/binutils.lua b/xmake/core/base/binutils.lua
index ea5d04ba8..9ddcfcf0c 100644
--- a/xmake/core/base/binutils.lua
+++ b/xmake/core/base/binutils.lua
@@ -105,10 +105,12 @@ end
-- Supports AR format (.a) and MSVC lib format (.lib)
-- @param libraryfile the static library file path (.a or .lib)
-- @param outputdir the output directory to extract object files
+-- @param opt the options (optional)
+-- - plain: extract all object files to the same directory (default: true)
-- @return true on success, false and error message on failure
-function binutils.extractlib(libraryfile, outputdir)
+function binutils.extractlib(libraryfile, outputdir, opt)
if binutils._extractlib then
- local ok, errors = binutils._extractlib(libraryfile, outputdir)
+ local ok, errors = binutils._extractlib(libraryfile, outputdir, opt and opt.plain)
if ok then
return true
else
diff --git a/xmake/core/sandbox/modules/import/core/base/binutils.lua b/xmake/core/sandbox/modules/import/core/base/binutils.lua
index e2306a2da..5bc0e4f72 100644
--- a/xmake/core/sandbox/modules/import/core/base/binutils.lua
+++ b/xmake/core/sandbox/modules/import/core/base/binutils.lua
@@ -53,8 +53,8 @@ function sandbox_core_base_binutils.readsyms(binaryfile)
end
-- extract static library to directory
-function sandbox_core_base_binutils.extractlib(libraryfile, outputdir)
- local ok, errors = binutils.extractlib(libraryfile, outputdir)
+function sandbox_core_base_binutils.extractlib(libraryfile, outputdir, opt)
+ local ok, errors = binutils.extractlib(libraryfile, outputdir, opt)
if not ok then
raise("extractlib: %s", errors or "unknown errors")
end
diff --git a/xmake/modules/utils/binary/extractlib.lua b/xmake/modules/utils/binary/extractlib.lua
index 9097db73a..818d343bc 100644
--- a/xmake/modules/utils/binary/extractlib.lua
+++ b/xmake/modules/utils/binary/extractlib.lua
@@ -21,7 +21,14 @@
-- imports
import("core.base.binutils")
-function main(libraryfile, outputdir)
+-- extract static library to directory
+--
+-- @param libraryfile the static library file path (.a or .lib)
+-- @param outputdir the output directory to extract object files
+-- @param opt the options (optional)
+-- - plain: extract all object files to the same directory (default: true)
+--
+function main(libraryfile, outputdir, opt)
-- init paths
libraryfile = path.absolute(libraryfile)
outputdir = path.absolute(outputdir)
@@ -36,7 +43,7 @@ function main(libraryfile, outputdir)
print("extracting static library %s to %s ..", libraryfile, outputdir)
-- do extraction
- binutils.extractlib(libraryfile, outputdir)
+ binutils.extractlib(libraryfile, outputdir, opt)
-- trace
cprint("${bright}extraction completed!")