summaryrefslogtreecommitdiff
path: root/xmake/scripts/base/rule.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2015-12-04 11:49:37 +0800
committerruki <[email protected]>2015-12-04 11:49:37 +0800
commit6ece8be70e5141a69720f28e4f18b20664142ae3 (patch)
tree9ae6301f68ecec013c6023a2b6d74bd702685f7a /xmake/scripts/base/rule.lua
parent7624723775b58c1811287465e6d7c27cede81b31 (diff)
support add_files *.a using ar
Diffstat (limited to 'xmake/scripts/base/rule.lua')
-rw-r--r--xmake/scripts/base/rule.lua7
1 files changed, 5 insertions, 2 deletions
diff --git a/xmake/scripts/base/rule.lua b/xmake/scripts/base/rule.lua
index 97baf2b24..d4f15a456 100644
--- a/xmake/scripts/base/rule.lua
+++ b/xmake/scripts/base/rule.lua
@@ -145,6 +145,9 @@ function rule.objectfiles(target_name, target, sourcefiles, buildir)
local objectfiles = {}
for _, sourcefile in ipairs(sourcefiles) do
+ -- translate: [lib]xxx*.[a|lib] => xxx/*.[o|obj] object file
+ sourcefile = sourcefile:gsub(rule.filename("(%w+)", "static"):gsub("%.", "%%.") .. "$", "%1/*")
+
-- make object file
local objectfile = string.format("%s/%s/%s/%s", objectdir, target_name, path.directory(sourcefile), rule.filename(path.basename(sourcefile), "object"))
@@ -191,13 +194,13 @@ function rule.sourcefiles(target)
local sourcefiles = {}
for _, targetfile in ipairs(targetfiles) do
- -- normalize *.o/obj filename
+ -- normalize *.[o|obj] filename
targetfile = targetfile:gsub("([%w%*]+)%.obj|", rule.filename("%1|", "object"))
targetfile = targetfile:gsub("([%w%*]+)%.obj$", rule.filename("%1", "object"))
targetfile = targetfile:gsub("([%w%*]+)%.o|", rule.filename("%1|", "object"))
targetfile = targetfile:gsub("([%w%*]+)%.o$", rule.filename("%1", "object"))
- -- normalize lib*.a/*.lib filename
+ -- normalize [lib]*.[a|lib] filename
targetfile = targetfile:gsub("([%w%*]+)%.lib|", rule.filename("%1|", "static"))
targetfile = targetfile:gsub("([%w%*]+)%.lib$", rule.filename("%1", "static"))
targetfile = targetfile:gsub("lib([%w%*]+)%.a|", rule.filename("%1|", "static"))