12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # HG changeset patch
- # User Ben Henning
- # Date 1376606083 25200
- # Thu Aug 15 15:34:43 2013 -0700
- # Node ID 8c9cd352c70012a64779356bff3c81998c3fb6a0
- # Parent e8558df4fbdb173a2b9ed0d354d6c3e76b376698
- Implemented the option to set custom source trees for Xcode frameworks (links)
- using Visual Studio-esque variables, such as "$(SDKROOT)/OpenGLES.framework".
- 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
- @@ -318,18 +318,36 @@
- local pth, src
- if xcode.isframework(node.path) then
- --respect user supplied paths
- - if string.find(node.path,'/') then
- - if string.find(node.path,'^%.')then
- + -- look for special variable-starting paths for different sources
- + local nodePath = node.path
- + local _, matchEnd, variable = string.find(nodePath, "^%$%((.+)%)/")
- + if variable then
- + -- by skipping the last '/' we support the same absolute/relative
- + -- paths as before
- + nodePath = string.sub(nodePath, matchEnd + 1)
- + end
- + if string.find(nodePath,'/') then
- + if string.find(nodePath,'^%.')then
- error('relative paths are not currently supported for frameworks')
- end
- - pth = node.path
- + pth = nodePath
- else
- - pth = "/System/Library/Frameworks/" .. node.path
- + pth = "/System/Library/Frameworks/" .. nodePath
- end
- - src = "absolute"
- + -- if it starts with a variable, use that as the src instead
- + if variable then
- + src = variable
- + -- if we are using a different source tree, it has to be relative
- + -- to that source tree, so get rid of any leading '/'
- + if string.find(pth, '^/') then
- + pth = string.sub(pth, 2)
- + end
- + else
- + src = "<absolute>"
- + end
- else
- -- something else; probably a source code file
- - src = "group"
- + src = "<group>"
-
- -- if the parent node is virtual, it won't have a local path
- -- of its own; need to use full relative path from project
- @@ -340,7 +358,7 @@
- end
- end
-
- - _p(2,'%s /* %s */ = {isa = PBXFileReference; lastKnownFileType = %s; name = "%s"; path = "%s"; sourceTree = "<%s>"; };',
- + _p(2,'%s /* %s */ = {isa = PBXFileReference; lastKnownFileType = %s; name = "%s"; path = "%s"; sourceTree = "%s"; };',
- node.id, node.name, xcode.getfiletype(node), node.name, pth, src)
- end
- end
|