summaryrefslogtreecommitdiff
path: root/xmake/tools/lib.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2017-06-21 18:53:20 +0800
committerruki <[email protected]>2017-06-21 18:53:20 +0800
commite7fd0a5c178956eb4801de3780f2bc3c0e7a3e1e (patch)
treec1691a33309a18cf9b5c54dda592f33a8a7abd66 /xmake/tools/lib.lua
parent45a54659f7449ead7ed073f9c0cbbe1da9fcdc06 (diff)
move tools dir to core.tools and improve tool module
Diffstat (limited to 'xmake/tools/lib.lua')
-rw-r--r--xmake/tools/lib.lua95
1 files changed, 0 insertions, 95 deletions
diff --git a/xmake/tools/lib.lua b/xmake/tools/lib.lua
deleted file mode 100644
index a59f7d713..000000000
--- a/xmake/tools/lib.lua
+++ /dev/null
@@ -1,95 +0,0 @@
---!The Make-like Build Utility based on Lua
---
--- Licensed to the Apache Software Foundation (ASF) under one
--- or more contributor license agreements. See the NOTICE file
--- distributed with this work for additional information
--- regarding copyright ownership. The ASF licenses this file
--- to you 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 - 2017, TBOOX Open Source Group.
---
--- @author ruki
--- @file lib.lua
---
-
--- init it
-function init(program, kind)
-
- -- save the shell name
- _g.program = program or "lib.exe"
-
- -- save the tool kind
- _g.kind = kind
-end
-
--- get the property
-function get(name)
-
- -- get it
- return _g[name]
-end
-
--- extract the static library to object directory
-function extract(libraryfile, objectdir)
-
- -- make the object directory first
- os.mkdir(objectdir)
-
- -- list object files
- local objectfiles = os.iorun("%s -nologo -list %s", _g.program, libraryfile)
-
- -- 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
- os.run("%s -nologo -extract:%s -out:%s %s", _g.program, objectfile, outputfile, libraryfile)
- end
- end
-end
-
--- check the given flags
-function check(flags)
-
- -- make an stub source file
- local libfile = os.tmpfile() .. ".lib"
- local objfile = os.tmpfile() .. ".obj"
- local srcfile = os.tmpfile() .. ".c"
- io.writefile(srcfile, "int test(void)\n{return 0;}")
-
- -- check it
- os.run("cl -c -Fo%s %s", objfile, srcfile)
- os.run("link -lib -out:%s %s", libfile, objfile)
- os.run("%s %s -list %s", _g.program, ifelse(flags, flags, ""), libfile)
-
- -- remove files
- os.rm(objfile)
- os.rm(srcfile)
- os.rm(libfile)
-end
-