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 3056381: Xcode project breaks on special chars
* 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)
* Added imagepath to set Xbox360 image file name (Jarod)
* 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/
--
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...")
-- 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
-- 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.
exec("premake4 /platform=universal32 gmake")

View File

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

View File

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