author | Philipp Wiesemann <philipp.wiesemann@arcor.de> |
Wed, 27 Jul 2016 20:47:08 +0200 | |
changeset 10211 | 2e4c1b2fce79 |
parent 7925 | f090a47eb7f7 |
permissions | -rwxr-xr-x |
7925
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
1 |
# HG changeset patch |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
2 |
# User Ben Henning |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
3 |
# Date 1376606083 25200 |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
4 |
# Thu Aug 15 15:34:43 2013 -0700 |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
5 |
# Node ID 8c9cd352c70012a64779356bff3c81998c3fb6a0 |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
6 |
# Parent e8558df4fbdb173a2b9ed0d354d6c3e76b376698 |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
7 |
Implemented the option to set custom source trees for Xcode frameworks (links) |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
8 |
using Visual Studio-esque variables, such as "$(SDKROOT)/OpenGLES.framework". |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
9 |
|
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
10 |
diff --git a/src/actions/xcode/xcode_common.lua b/src/actions/xcode/xcode_common.lua |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
11 |
--- a/src/actions/xcode/xcode_common.lua |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
12 |
+++ b/src/actions/xcode/xcode_common.lua |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
13 |
@@ -318,18 +318,36 @@ |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
14 |
local pth, src |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
15 |
if xcode.isframework(node.path) then |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
16 |
--respect user supplied paths |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
17 |
- if string.find(node.path,'/') then |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
18 |
- if string.find(node.path,'^%.')then |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
19 |
+ -- look for special variable-starting paths for different sources |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
20 |
+ local nodePath = node.path |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
21 |
+ local _, matchEnd, variable = string.find(nodePath, "^%$%((.+)%)/") |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
22 |
+ if variable then |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
23 |
+ -- by skipping the last '/' we support the same absolute/relative |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
24 |
+ -- paths as before |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
25 |
+ nodePath = string.sub(nodePath, matchEnd + 1) |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
26 |
+ end |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
27 |
+ if string.find(nodePath,'/') then |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
28 |
+ if string.find(nodePath,'^%.')then |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
29 |
error('relative paths are not currently supported for frameworks') |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
30 |
end |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
31 |
- pth = node.path |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
32 |
+ pth = nodePath |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
33 |
else |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
34 |
- pth = "/System/Library/Frameworks/" .. node.path |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
35 |
+ pth = "/System/Library/Frameworks/" .. nodePath |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
36 |
end |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
37 |
- src = "absolute" |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
38 |
+ -- if it starts with a variable, use that as the src instead |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
39 |
+ if variable then |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
40 |
+ src = variable |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
41 |
+ -- if we are using a different source tree, it has to be relative |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
42 |
+ -- to that source tree, so get rid of any leading '/' |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
43 |
+ if string.find(pth, '^/') then |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
44 |
+ pth = string.sub(pth, 2) |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
45 |
+ end |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
46 |
+ else |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
47 |
+ src = "<absolute>" |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
48 |
+ end |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
49 |
else |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
50 |
-- something else; probably a source code file |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
51 |
- src = "group" |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
52 |
+ src = "<group>" |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
53 |
|
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
54 |
-- if the parent node is virtual, it won't have a local path |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
55 |
-- of its own; need to use full relative path from project |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
56 |
@@ -340,7 +358,7 @@ |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
57 |
end |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
58 |
end |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
59 |
|
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
60 |
- _p(2,'%s /* %s */ = {isa = PBXFileReference; lastKnownFileType = %s; name = "%s"; path = "%s"; sourceTree = "<%s>"; };', |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
61 |
+ _p(2,'%s /* %s */ = {isa = PBXFileReference; lastKnownFileType = %s; name = "%s"; path = "%s"; sourceTree = "%s"; };', |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
62 |
node.id, node.name, xcode.getfiletype(node), node.name, pth, src) |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
63 |
end |
f090a47eb7f7
Added Ben Henning's GSoC2013 work: premake build system.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
64 |
end |