diff options
| author | ruki <[email protected]> | 2015-06-03 18:34:06 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2015-06-03 18:34:06 +0800 |
| commit | a73db10e9b42c8b18bf5b95d78855481beb67f20 (patch) | |
| tree | b2e13353bc39cfd3f3b0cfb115b07bc15e505a00 /xmake/scripts | |
| parent | 795001d9b03960d9a8fc290e6f6f9710f49c86bc (diff) | |
trim spaces for the makefile command
Diffstat (limited to 'xmake/scripts')
| -rw-r--r-- | xmake/scripts/base/string.lua | 41 | ||||
| -rw-r--r-- | xmake/scripts/compiler/compiler.lua | 26 | ||||
| -rw-r--r-- | xmake/scripts/linker/linker.lua | 10 |
3 files changed, 68 insertions, 9 deletions
diff --git a/xmake/scripts/base/string.lua b/xmake/scripts/base/string.lua index 793abad00..3abe68c05 100644 --- a/xmake/scripts/base/string.lua +++ b/xmake/scripts/base/string.lua @@ -49,5 +49,46 @@ function string.split(self, pattern) return list end +-- trim the spaces +function string.trim(self) + return (self:gsub("^%s*(.-)%s*$", "%1")) +end + +-- trim the left spaces +function string.ltrim(self) + return (self:gsub("^%s*", "")) +end + +-- trim the right spaces +function string.rtrim(self) + local n = #self + while n > 0 and s:find("^%s", n) do n = n - 1 end + return self:sub(1, n) +end + +-- append a substring with a given separator +function string.append(self, substr, separator) + + -- check + assert(self) + + -- not substr? return self + if not substr then + return self + end + + -- append it + local s = self + if #s == 0 then + s = substr + else + s = string.format("%s%s%s", s, separator or "", substr) + end + + -- ok + return s +end + + -- return module: string return string diff --git a/xmake/scripts/compiler/compiler.lua b/xmake/scripts/compiler/compiler.lua index 6bd6561af..a92fc37e0 100644 --- a/xmake/scripts/compiler/compiler.lua +++ b/xmake/scripts/compiler/compiler.lua @@ -83,7 +83,7 @@ function compiler._make(self, target, filetype, srcfile, objfile) -- get the common flags from the current compiler local flags_common = "" for _, flag_name in ipairs(flag_names) do - flags_common = string.format("%s %s", flags_common, configs[flag_name] or "") + flags_common = flags_common:append(configs[flag_name], " ") end -- get the target flags from the current project @@ -93,15 +93,20 @@ function compiler._make(self, target, filetype, srcfile, objfile) -- get flags local flags = table.concat(compiler._mapflags(self, utils.wrap(target[flag_name])), " ") + -- trim the spaces + flags = flags:trim() + -- append flags - flags_target = string.format("%s %s", flags_target, flags or "") + if flags and #flags ~= 0 then + flags_target = flags_target:append(flags, " ") + end end -- get the includedirs flags from the current project if self._make_includedir then local includedirs = utils.wrap(target.includedirs) for _, includedir in ipairs(includedirs) do - flags_target = string.format("%s %s", flags_target, self._make_includedir(configs, includedir)) + flags_target = flags_target:append(self._make_includedir(configs, includedir), " ") end end @@ -109,7 +114,7 @@ function compiler._make(self, target, filetype, srcfile, objfile) if self._make_define then local defines = utils.wrap(target.defines) for _, define in ipairs(defines) do - flags_target = string.format("%s %s", flags_target, self._make_define(configs, define)) + flags_target = flags_target:append(self._make_define(configs, define), " ") end end @@ -120,12 +125,21 @@ function compiler._make(self, target, filetype, srcfile, objfile) -- get flags local flags = table.concat(compiler._mapflags(self, utils.wrap(config.get(flag_name))), " ") + -- trim the spaces + flags = flags:trim() + -- append flags - flags_config = string.format("%s %s", flags_config, flags or "") + if flags and #flags ~= 0 then + flags_config = flags_config:append(flags, " ") + end end -- make the flags string - local flags = string.format("%s %s %s", flags_common, flags_target, flags_config) + local flags = "" + flags = flags:append(flags_common, " ") + flags = flags:append(flags_target, " ") + flags = flags:append(flags_config, " ") + flags = flags:trim() -- get it return self._make(configs, srcfile, objfile, flags) diff --git a/xmake/scripts/linker/linker.lua b/xmake/scripts/linker/linker.lua index d5338271a..c8f651971 100644 --- a/xmake/scripts/linker/linker.lua +++ b/xmake/scripts/linker/linker.lua @@ -92,7 +92,7 @@ function linker._make(self, target, objfiles, targetfile) if self._make_linkdir then local linkdirs = utils.wrap(target.linkdirs) for _, linkdir in ipairs(linkdirs) do - flags_target = string.format("%s %s", flags_target, self._make_linkdir(configs, linkdir)) + flags_target = flags_target:append(self._make_linkdir(configs, linkdir), " ") end end @@ -100,7 +100,7 @@ function linker._make(self, target, objfiles, targetfile) if self._make_link then local links = utils.wrap(target.links) for _, link in ipairs(links) do - flags_target = string.format("%s %s", flags_target, self._make_link(configs, link)) + flags_target = flags_target:append(self._make_link(configs, link), " ") end end @@ -109,7 +109,11 @@ function linker._make(self, target, objfiles, targetfile) assert(flags_config) -- make the flags string - local flags = string.format("%s %s %s", flags_common, flags_target, flags_config) + local flags = "" + flags = flags:append(flags_common, " ") + flags = flags:append(flags_target, " ") + flags = flags:append(flags_config, " ") + flags = flags:trim() -- make it return self._make(configs, table.concat(objfiles, " "), targetfile, flags) |
