Bug 2971841: Gmake escaping of shell variable $(...) is broken

This commit is contained in:
Jason Perkins 2010-10-04 06:43:19 -04:00
parent 6c5022bf39
commit a83249ec49
4 changed files with 16 additions and 16 deletions

View File

@ -15,6 +15,7 @@
* Bug 2997728: Project dependencies should be case-sensitive * Bug 2997728: Project dependencies should be case-sensitive
* Bug 3056381: Xcode project breaks on special chars * Bug 3056381: Xcode project breaks on special chars
* Bug 3007101: Generating PDB in Release builds is not supported * Bug 3007101: Generating PDB in Release builds is not supported
* Bug 2971841: Gmake escaping of shell variable $(...) is broken
* Fixed handling of icons in Xcode (bitshifter) * Fixed handling of icons in Xcode (bitshifter)
* Added imagepath to set Xbox360 image file name (Jarod) * Added imagepath to set Xbox360 image file name (Jarod)
* Patch 3063804: Set CompileAs flag for VS200x C projects (rjmyst3) * Patch 3063804: Set CompileAs flag for VS200x C projects (rjmyst3)

View File

@ -98,22 +98,15 @@ function dorelease()
-- --
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
--
-- Create a directory to hold the release
--
local workdir = "premake-" .. version
os.mkdir("release/" .. workdir)
os.chdir("release/" .. workdir)
-- --
-- Check out the release tagged sources to releases/ -- Check out the release tagged sources to releases/
-- --
print("Downloading release tag...") print("Downloading release tag...")
-- hg clone -r {tag} https://bitbucket.org/premake/premake-stable . os.chdir("release")
-- hg clone -r {tag} https://bitbucket.org/premake/premake-stable premake-{version}
os.chdir("premake-" .. version)
-- --
@ -200,11 +193,11 @@ function dorelease()
print("Building platform binary release...") print("Building platform binary release...")
-- IMPORTANT: Mac binary needs to be build in Xcode to ensure 10.5 -- IMPORTANT: Mac binary needs to be built in Xcode to ensure 10.5
-- compatibility right now. I haven't been able to figure out the -- compatibility right now. I haven't been able to figure out the
-- right flags to make it work from a makefile yet. -- right flags to make it work from a makefile yet.
-- --
-- In Xcode, open the inspector for the target. Set the architecture -- In Xcode, open the inspector for the TARGET Set the architecture
-- to 32-bit universal, and the base SDK to 10.5. -- to 32-bit universal, and the base SDK to 10.5.
exec("premake4 /platform=universal32 gmake") exec("premake4 /platform=universal32 gmake")

View File

@ -12,19 +12,22 @@
-- --
function _MAKE.esc(value) function _MAKE.esc(value)
local result
if (type(value) == "table") then if (type(value) == "table") then
local result = { } result = { }
for _,v in ipairs(value) do for _,v in ipairs(value) do
table.insert(result, _MAKE.esc(v)) table.insert(result, _MAKE.esc(v))
end end
return result return result
else else
if not value then print(debug.traceback()) end -- handle simple replacements
local result
result = value:gsub("\\", "\\\\") result = value:gsub("\\", "\\\\")
result = result:gsub(" ", "\\ ") result = result:gsub(" ", "\\ ")
result = result:gsub("%(", "\\%(") result = result:gsub("%(", "\\%(")
result = result:gsub("%)", "\\%)") result = result:gsub("%)", "\\%)")
-- leave $(...) shell replacement sequences alone
result = result:gsub("$\\%((.-)\\%)", "$%(%1%)")
return result return result
end end
end end

View File

@ -73,6 +73,9 @@
dofile("actions/vstudio/test_vs2010_filters.lua") dofile("actions/vstudio/test_vs2010_filters.lua")
dofile("actions/vstudio/test_vs2010_project_kinds.lua") dofile("actions/vstudio/test_vs2010_project_kinds.lua")
-- Makefile tests
dofile("actions/make/test_make_escaping.lua")
-- Xcode tests -- Xcode tests
dofile("actions/xcode/test_xcode_common.lua") dofile("actions/xcode/test_xcode_common.lua")
dofile("actions/xcode/test_xcode_project.lua") dofile("actions/xcode/test_xcode_project.lua")