12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # HG changeset patch
- # User Ben Henning
- # Date 1376509869 25200
- # Wed Aug 14 12:51:09 2013 -0700
- # Node ID e8558df4fbdb173a2b9ed0d354d6c3e76b376698
- # Parent a5f8b4f709722222e02fa481873d76ad25255e09
- Fixed a bug in Xcode project generation wherein pre/prelink/post-build commands
- would not be properly executed if the premake script only had the commands
- in configuration blocks, rather than in the project block. According to the
- website, these commands can exist in both blocks and the Xcode script does
- properly generate the commands, it just doesn't add a single line which allows
- Xcode to execute the commands at the correct stage. This patch fixes those
- issues.
- diff --git a/src/actions/xcode/xcode_common.lua b/src/actions/xcode/xcode_common.lua
- --- a/src/actions/xcode/xcode_common.lua
- +++ b/src/actions/xcode/xcode_common.lua
- @@ -432,20 +432,37 @@
- for _, node in ipairs(tr.products.children) do
- local name = tr.project.name
-
- + -- This function checks whether there are build commands of a specific
- + -- type to be executed; they will be generated correctly, but the project
- + -- commands will not contain any per-configuration commands, so the logic
- + -- has to be extended a bit to account for that.
- + local function hasBuildCommands(which)
- + -- standard check...this is what existed before
- + if #tr.project[which] > 0 then
- + return true
- + end
- + -- what if there are no project-level commands? check configs...
- + for _, cfg in ipairs(tr.configs) do
- + if #cfg[which] > 0 then
- + return true
- + end
- + end
- + end
- +
- _p(2,'%s /* %s */ = {', node.targetid, name)
- _p(3,'isa = PBXNativeTarget;')
- _p(3,'buildConfigurationList = %s /* Build configuration list for PBXNativeTarget "%s" */;', node.cfgsection, name)
- _p(3,'buildPhases = (')
- - if #tr.project.prebuildcommands > 0 then
- + if hasBuildCommands('prebuildcommands') then
- _p(4,'9607AE1010C857E500CD1376 /* Prebuild */,')
- end
- _p(4,'%s /* Resources */,', node.resstageid)
- _p(4,'%s /* Sources */,', node.sourcesid)
- - if #tr.project.prelinkcommands > 0 then
- + if hasBuildCommands('prelinkcommands') then
- _p(4,'9607AE3510C85E7E00CD1376 /* Prelink */,')
- end
- _p(4,'%s /* Frameworks */,', node.fxstageid)
- - if #tr.project.postbuildcommands > 0 then
- + if hasBuildCommands('postbuildcommands') then
- _p(4,'9607AE3710C85E8F00CD1376 /* Postbuild */,')
- end
- _p(3,');')
|