summaryrefslogtreecommitdiff
path: root/xmake/modules
diff options
context:
space:
mode:
authorruki <[email protected]>2020-12-25 22:50:47 +0800
committerruki <[email protected]>2020-12-25 22:50:47 +0800
commit89376b4e876467909a809d622fea762885cc6040 (patch)
treee2682fc01e6e6ab02da9577185e7d92ab0c013ae /xmake/modules
parentf0b408a9ae6a72ad4ee8ced642cbdd77dbc1f588 (diff)
rewrite extractor
Diffstat (limited to 'xmake/modules')
-rw-r--r--xmake/modules/core/tools/ar.lua22
-rw-r--r--xmake/modules/core/tools/lib.lua58
-rw-r--r--xmake/modules/core/tools/llvm_ar.lua29
-rw-r--r--xmake/modules/core/tools/sdar.lua29
4 files changed, 0 insertions, 138 deletions
diff --git a/xmake/modules/core/tools/ar.lua b/xmake/modules/core/tools/ar.lua
index 31d498a57..868b4eae1 100644
--- a/xmake/modules/core/tools/ar.lua
+++ b/xmake/modules/core/tools/ar.lua
@@ -76,26 +76,4 @@ function link(self, objectfiles, targetkind, targetfile, flags)
os.runv(program, argv, {envs = self:runenvs()})
end
--- extract the static library to object directory
-function extract(self, libraryfile, objectdir)
-
- -- make the object directory first
- os.mkdir(objectdir)
-
- -- get the absolute path of this library
- libraryfile = path.absolute(libraryfile)
-
- -- extract it
- os.runv(self:program(), {"-x", libraryfile}, {curdir = objectdir})
-
- -- check repeat object name
- local repeats = {}
- local objectfiles = os.iorunv(self:program(), {"-t", libraryfile})
- for _, objectfile in ipairs(objectfiles:split('\n')) do
- if repeats[objectfile] then
- raise("object name(%s) conflicts in library: %s", objectfile, libraryfile)
- end
- repeats[objectfile] = true
- end
-end
diff --git a/xmake/modules/core/tools/lib.lua b/xmake/modules/core/tools/lib.lua
deleted file mode 100644
index d64714ba7..000000000
--- a/xmake/modules/core/tools/lib.lua
+++ /dev/null
@@ -1,58 +0,0 @@
---!A cross-platform build utility based on Lua
---
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
---
--- http://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
---
--- Copyright (C) 2015-present, TBOOX Open Source Group.
---
--- @author ruki
--- @file lib.lua
---
-
--- imports
-import("private.tools.vstool")
-
--- extract the static library to object directory
-function extract(self, libraryfile, objectdir)
-
- -- make the object directory first
- os.mkdir(objectdir)
-
- -- list object files
- local objectfiles = vstool.iorunv(self:program(), {"-nologo", "-list", libraryfile}, {envs = self:runenvs()})
-
- -- extrace all object files
- for _, objectfile in ipairs(objectfiles:split('\n')) do
-
- -- is object file?
- if objectfile:find("%.obj") then
-
- -- make the outputfile
- local outputfile = path.translate(format("%s\\%s", objectdir, path.filename(objectfile)))
-
- -- repeat? rename it
- if os.isfile(outputfile) then
- for i = 0, 10 do
- outputfile = path.translate(format("%s\\%d_%s", objectdir, i, path.filename(objectfile)))
- if not os.isfile(outputfile) then
- break
- end
- end
- end
-
- -- extract it
- vstool.runv(self:program(), {"-nologo", "-extract:" .. objectfile, "-out:" .. outputfile, libraryfile}, {envs = self:runenvs()})
- end
- end
-end
-
-
diff --git a/xmake/modules/core/tools/llvm_ar.lua b/xmake/modules/core/tools/llvm_ar.lua
index de128d3a5..fb20c2320 100644
--- a/xmake/modules/core/tools/llvm_ar.lua
+++ b/xmake/modules/core/tools/llvm_ar.lua
@@ -73,32 +73,3 @@ function link(self, objectfiles, targetkind, targetfile, flags)
os.runv(linkargv(self, objectfiles, targetkind, targetfile, flags))
end
--- extract the static library to object directory
-function extract(self, libraryfile, objectdir)
-
- -- make the object directory first
- os.mkdir(objectdir)
-
- -- get the absolute path of this library
- libraryfile = path.absolute(libraryfile)
-
- -- enter the object directory
- local oldir = os.cd(objectdir)
-
- -- extract it
- os.runv(self:program(), {"x", libraryfile})
-
- -- check repeat object name
- local repeats = {}
- local objectfiles = os.iorunv(self:program(), {"t", libraryfile})
- for _, objectfile in ipairs(objectfiles:split('\n')) do
- if repeats[objectfile] then
- raise("object name(%s) conflicts in library: %s", objectfile, libraryfile)
- end
- repeats[objectfile] = true
- end
-
- -- leave the object directory
- os.cd(oldir)
-end
-
diff --git a/xmake/modules/core/tools/sdar.lua b/xmake/modules/core/tools/sdar.lua
index c975b3608..056ca32d3 100644
--- a/xmake/modules/core/tools/sdar.lua
+++ b/xmake/modules/core/tools/sdar.lua
@@ -75,32 +75,3 @@ function link(self, objectfiles, targetkind, targetfile, flags)
os.runv(linkargv(self, objectfiles, targetkind, targetfile, flags))
end
--- extract the static library to object directory
-function extract(self, libraryfile, objectdir)
-
- -- make the object directory first
- os.mkdir(objectdir)
-
- -- get the absolute path of this library
- libraryfile = path.absolute(libraryfile)
-
- -- enter the object directory
- local oldir = os.cd(objectdir)
-
- -- extract it
- os.runv(self:program(), {"-x", libraryfile})
-
- -- check repeat object name
- local repeats = {}
- local objectfiles = os.iorunv(self:program(), {"-t", libraryfile})
- for _, objectfile in ipairs(objectfiles:split('\n')) do
- if repeats[objectfile] then
- raise("object name(%s) conflicts in library: %s", objectfile, libraryfile)
- end
- repeats[objectfile] = true
- end
-
- -- leave the object directory
- os.cd(oldir)
-end
-