zerg_xcode 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +2 -0
- data/Manifest +22 -14
- data/Rakefile +6 -0
- data/lib/zerg_xcode.rb +8 -3
- data/lib/zerg_xcode/builder/runner.rb +51 -0
- data/lib/zerg_xcode/builder/sdks.rb +34 -0
- data/lib/zerg_xcode/file_format/archiver.rb +15 -2
- data/lib/zerg_xcode/file_format/encoder.rb +15 -2
- data/lib/zerg_xcode/file_format/lexer.rb +15 -2
- data/lib/zerg_xcode/file_format/parser.rb +15 -2
- data/lib/zerg_xcode/file_format/paths.rb +15 -2
- data/lib/zerg_xcode/objects/pbx_build_file.rb +16 -3
- data/lib/zerg_xcode/objects/pbx_build_phase.rb +14 -2
- data/lib/zerg_xcode/objects/pbx_container_item_proxy.rb +14 -2
- data/lib/zerg_xcode/objects/pbx_group.rb +43 -3
- data/lib/zerg_xcode/objects/pbx_native_target.rb +15 -3
- data/lib/zerg_xcode/objects/pbx_project.rb +20 -4
- data/lib/zerg_xcode/objects/pbx_target_dependency.rb +15 -3
- data/lib/zerg_xcode/objects/xc_configuration_list.rb +14 -2
- data/lib/zerg_xcode/objects/xcode_object.rb +14 -3
- data/lib/zerg_xcode/plugins/addlibrary.rb +15 -2
- data/lib/zerg_xcode/plugins/core/core.rb +15 -6
- data/lib/zerg_xcode/plugins/help.rb +15 -2
- data/lib/zerg_xcode/plugins/import.rb +15 -2
- data/lib/zerg_xcode/plugins/irb.rb +16 -2
- data/lib/zerg_xcode/plugins/ls.rb +15 -2
- data/lib/zerg_xcode/plugins/lstargets.rb +16 -2
- data/lib/zerg_xcode/plugins/retarget.rb +15 -2
- data/lib/zerg_xcode/shortcuts.rb +10 -2
- data/test/builder/runner_test.rb +35 -0
- data/test/builder/sdk_test.rb +17 -0
- data/test/file_format/archiver_test.rb +6 -2
- data/test/file_format/encoder_test.rb +7 -3
- data/test/file_format/lexer_test.rb +7 -3
- data/test/file_format/parser_test.rb +6 -2
- data/test/file_format/path_test.rb +30 -24
- data/test/fixtures/ClosedLib/ClosedLib.xcodeproj/project.pbxproj +225 -0
- data/test/fixtures/ClosedLib/ClosedLib_Prefix.pch +7 -0
- data/test/fixtures/ClosedLib/ClosedNative.c +20 -0
- data/test/fixtures/ClosedLib/ClosedNative.h +12 -0
- data/{testdata → test/fixtures}/FlatTestApp/FlatTestApp.xcodeproj/project.pbxproj +0 -0
- data/{testdata → test/fixtures}/TestApp/TestApp.xcodeproj/project.pbxproj +0 -0
- data/{testdata → test/fixtures}/TestApp30.xcodeproj/project.pbxproj +0 -0
- data/{testdata → test/fixtures}/TestLib30.xcodeproj/project.pbxproj +0 -0
- data/{testdata → test/fixtures}/ZergSupport.xcodeproj/project.pbxproj +0 -0
- data/{testdata → test/fixtures}/project.pbxproj +0 -0
- data/{testdata → test/fixtures}/project.pbxproj.compat +0 -0
- data/test/objects/pbx_build_file_test.rb +7 -4
- data/test/objects/pbx_build_phase_test.rb +5 -2
- data/test/objects/pbx_container_item_proxy_test.rb +6 -2
- data/test/objects/pbx_group_test.rb +35 -3
- data/test/objects/pbx_native_target_test.rb +5 -2
- data/test/objects/pbx_project_test.rb +21 -9
- data/test/objects/pbx_target_dependency_test.rb +6 -2
- data/test/objects/xc_configuration_list_test.rb +5 -2
- data/test/objects/xcode_object_test.rb +5 -2
- data/test/plugins/addlibrary_test.rb +6 -3
- data/test/plugins/core/core_test.rb +5 -2
- data/test/plugins/helper.rb +4 -0
- data/test/plugins/import_test.rb +76 -72
- data/test/plugins/irb_test.rb +9 -4
- data/test/plugins/ls_test.rb +7 -4
- data/test/plugins/lstargets_test.rb +7 -4
- data/test/plugins/retarget_test.rb +7 -4
- data/test/shortcuts_test.rb +7 -3
- data/zerg_xcode.gemspec +6 -6
- metadata +32 -20
@@ -1,9 +1,13 @@
|
|
1
|
-
|
1
|
+
# Author:: Victor Costan
|
2
|
+
# Copyright:: Copyright (C) 2009 Zergling.Net
|
3
|
+
# License:: MIT
|
4
|
+
|
2
5
|
require 'zerg_xcode'
|
6
|
+
require 'test/unit'
|
3
7
|
|
4
8
|
class LexerTest < Test::Unit::TestCase
|
5
9
|
def test_lexer
|
6
|
-
pbxdata = File.read '
|
10
|
+
pbxdata = File.read 'test/fixtures/project.pbxproj'
|
7
11
|
golden_starts = [[:encoding, "UTF8"],
|
8
12
|
:begin_hash,
|
9
13
|
[:symbol, "archiveVersion"], :assign, [:symbol, "1"],
|
@@ -48,7 +52,7 @@ class LexerTest < Test::Unit::TestCase
|
|
48
52
|
end
|
49
53
|
|
50
54
|
def test_escaped_string
|
51
|
-
pbxdata = File.read '
|
55
|
+
pbxdata = File.read 'test/fixtures/ZergSupport.xcodeproj/project.pbxproj'
|
52
56
|
tokens = ZergXcode::Lexer.tokenize pbxdata
|
53
57
|
assert tokens.include?([:string,
|
54
58
|
"\"$(SRCROOT)/build/Debug-iphonesimulator\""])
|
@@ -1,9 +1,13 @@
|
|
1
|
-
|
1
|
+
# Author:: Victor Costan
|
2
|
+
# Copyright:: Copyright (C) 2009 Zergling.Net
|
3
|
+
# License:: MIT
|
4
|
+
|
2
5
|
require 'zerg_xcode'
|
6
|
+
require 'test/unit'
|
3
7
|
|
4
8
|
class ParserTest < Test::Unit::TestCase
|
5
9
|
def test_parser
|
6
|
-
pbxdata = File.read '
|
10
|
+
pbxdata = File.read 'test/fixtures/project.pbxproj'
|
7
11
|
proj = ZergXcode::Parser.parse pbxdata
|
8
12
|
|
9
13
|
assert proj.kind_of?(Hash), 'Project structure should be a hash'
|
@@ -1,41 +1,47 @@
|
|
1
|
-
|
1
|
+
# Author:: Victor Costan
|
2
|
+
# Copyright:: Copyright (C) 2009 Zergling.Net
|
3
|
+
# License:: MIT
|
4
|
+
|
2
5
|
require 'zerg_xcode'
|
6
|
+
require 'test/unit'
|
3
7
|
|
4
8
|
class PathTest < Test::Unit::TestCase
|
5
9
|
Paths = ZergXcode::Paths
|
6
10
|
|
7
11
|
def test_project_file_at
|
8
|
-
assert_equal '
|
9
|
-
Paths.project_file_at('
|
10
|
-
assert_equal '
|
11
|
-
Paths.project_file_at('
|
12
|
+
assert_equal 'test/fixtures/ZergSupport.xcodeproj/project.pbxproj',
|
13
|
+
Paths.project_file_at('test/fixtures/ZergSupport'), 'short'
|
14
|
+
assert_equal 'test/fixtures/ZergSupport.xcodeproj/project.pbxproj',
|
15
|
+
Paths.project_file_at('test/fixtures/ZergSupport.xcodeproj'),
|
12
16
|
'full project name'
|
13
|
-
assert_equal '
|
14
|
-
Paths.project_file_at('
|
17
|
+
assert_equal 'test/fixtures/project.pbxproj',
|
18
|
+
Paths.project_file_at('test/fixtures'),
|
15
19
|
'enclosing dir with weird name'
|
16
|
-
assert_equal '
|
17
|
-
Paths.project_file_at('
|
20
|
+
assert_equal 'test/fixtures/project.pbxproj',
|
21
|
+
Paths.project_file_at('test'),
|
18
22
|
'subdir with weird name'
|
19
|
-
assert_equal '
|
20
|
-
Paths.project_file_at('
|
21
|
-
|
22
|
-
|
23
|
-
|
23
|
+
assert_equal 'test/fixtures/TestApp/TestApp.xcodeproj/project.pbxproj',
|
24
|
+
Paths.project_file_at('test/fixtures/TestApp'),
|
25
|
+
'project in subdir'
|
26
|
+
assert_equal 'test/fixtures/TestApp/TestApp.xcodeproj/project.pbxproj',
|
27
|
+
Paths.project_file_at('test/fixtures/TestApp/TestApp.xcodeproj'),
|
28
|
+
'full project name in subdir'
|
24
29
|
end
|
25
30
|
|
26
31
|
def test_project_root_at
|
27
|
-
assert_equal '
|
32
|
+
assert_equal 'test/fixtures',
|
33
|
+
Paths.project_root_at('test/fixtures/ZergSupport'),
|
28
34
|
'short project name'
|
29
|
-
assert_equal '
|
30
|
-
Paths.project_root_at('
|
35
|
+
assert_equal 'test/fixtures',
|
36
|
+
Paths.project_root_at('test/fixtures/ZergSupport.xcodeproj'),
|
31
37
|
'full project name'
|
32
|
-
assert_equal '
|
38
|
+
assert_equal 'test', Paths.project_root_at('test/fixtures'),
|
33
39
|
'enclosing dir with weird name'
|
34
|
-
assert_equal '
|
35
|
-
assert_equal '
|
36
|
-
Paths.project_root_at('
|
37
|
-
assert_equal '
|
38
|
-
|
39
|
-
|
40
|
+
assert_equal 'test', Paths.project_root_at('test'), 'subdir with weird name'
|
41
|
+
assert_equal 'test/fixtures/TestApp',
|
42
|
+
Paths.project_root_at('test/fixtures/TestApp'), 'project dir'
|
43
|
+
assert_equal 'test/fixtures/TestApp',
|
44
|
+
Paths.project_root_at('test/fixtures/TestApp/TestApp.xcodeproj'),
|
45
|
+
'full project name in subdir'
|
40
46
|
end
|
41
47
|
end
|
@@ -0,0 +1,225 @@
|
|
1
|
+
// !$*UTF8*$!
|
2
|
+
{
|
3
|
+
archiveVersion = 1;
|
4
|
+
classes = {
|
5
|
+
};
|
6
|
+
objectVersion = 45;
|
7
|
+
objects = {
|
8
|
+
|
9
|
+
/* Begin PBXBuildFile section */
|
10
|
+
5729343110CB6BA000FB901C /* ClosedNative.h in Headers */ = {isa = PBXBuildFile; fileRef = 5729342F10CB6BA000FB901C /* ClosedNative.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
11
|
+
5729343210CB6BA000FB901C /* ClosedNative.c in Sources */ = {isa = PBXBuildFile; fileRef = 5729343010CB6BA000FB901C /* ClosedNative.c */; };
|
12
|
+
AA747D9F0F9514B9006C5449 /* ClosedLib_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* ClosedLib_Prefix.pch */; };
|
13
|
+
AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
|
14
|
+
/* End PBXBuildFile section */
|
15
|
+
|
16
|
+
/* Begin PBXFileReference section */
|
17
|
+
5729342F10CB6BA000FB901C /* ClosedNative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClosedNative.h; sourceTree = "<group>"; };
|
18
|
+
5729343010CB6BA000FB901C /* ClosedNative.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ClosedNative.c; sourceTree = "<group>"; };
|
19
|
+
AA747D9E0F9514B9006C5449 /* ClosedLib_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClosedLib_Prefix.pch; sourceTree = SOURCE_ROOT; };
|
20
|
+
AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
21
|
+
D2AAC07E0554694100DB518D /* libClosedLib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libClosedLib.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
22
|
+
/* End PBXFileReference section */
|
23
|
+
|
24
|
+
/* Begin PBXFrameworksBuildPhase section */
|
25
|
+
D2AAC07C0554694100DB518D /* Frameworks */ = {
|
26
|
+
isa = PBXFrameworksBuildPhase;
|
27
|
+
buildActionMask = 2147483647;
|
28
|
+
files = (
|
29
|
+
AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
|
30
|
+
);
|
31
|
+
runOnlyForDeploymentPostprocessing = 0;
|
32
|
+
};
|
33
|
+
/* End PBXFrameworksBuildPhase section */
|
34
|
+
|
35
|
+
/* Begin PBXGroup section */
|
36
|
+
034768DFFF38A50411DB9C8B /* Products */ = {
|
37
|
+
isa = PBXGroup;
|
38
|
+
children = (
|
39
|
+
D2AAC07E0554694100DB518D /* libClosedLib.a */,
|
40
|
+
);
|
41
|
+
name = Products;
|
42
|
+
sourceTree = "<group>";
|
43
|
+
};
|
44
|
+
0867D691FE84028FC02AAC07 /* ClosedLib */ = {
|
45
|
+
isa = PBXGroup;
|
46
|
+
children = (
|
47
|
+
08FB77AEFE84172EC02AAC07 /* Classes */,
|
48
|
+
32C88DFF0371C24200C91783 /* Other Sources */,
|
49
|
+
0867D69AFE84028FC02AAC07 /* Frameworks */,
|
50
|
+
034768DFFF38A50411DB9C8B /* Products */,
|
51
|
+
);
|
52
|
+
name = ClosedLib;
|
53
|
+
sourceTree = "<group>";
|
54
|
+
};
|
55
|
+
0867D69AFE84028FC02AAC07 /* Frameworks */ = {
|
56
|
+
isa = PBXGroup;
|
57
|
+
children = (
|
58
|
+
AACBBE490F95108600F1A2B1 /* Foundation.framework */,
|
59
|
+
);
|
60
|
+
name = Frameworks;
|
61
|
+
sourceTree = "<group>";
|
62
|
+
};
|
63
|
+
08FB77AEFE84172EC02AAC07 /* Classes */ = {
|
64
|
+
isa = PBXGroup;
|
65
|
+
children = (
|
66
|
+
5729342F10CB6BA000FB901C /* ClosedNative.h */,
|
67
|
+
5729343010CB6BA000FB901C /* ClosedNative.c */,
|
68
|
+
);
|
69
|
+
name = Classes;
|
70
|
+
sourceTree = "<group>";
|
71
|
+
};
|
72
|
+
32C88DFF0371C24200C91783 /* Other Sources */ = {
|
73
|
+
isa = PBXGroup;
|
74
|
+
children = (
|
75
|
+
AA747D9E0F9514B9006C5449 /* ClosedLib_Prefix.pch */,
|
76
|
+
);
|
77
|
+
name = "Other Sources";
|
78
|
+
sourceTree = "<group>";
|
79
|
+
};
|
80
|
+
/* End PBXGroup section */
|
81
|
+
|
82
|
+
/* Begin PBXHeadersBuildPhase section */
|
83
|
+
D2AAC07A0554694100DB518D /* Headers */ = {
|
84
|
+
isa = PBXHeadersBuildPhase;
|
85
|
+
buildActionMask = 2147483647;
|
86
|
+
files = (
|
87
|
+
AA747D9F0F9514B9006C5449 /* ClosedLib_Prefix.pch in Headers */,
|
88
|
+
5729343110CB6BA000FB901C /* ClosedNative.h in Headers */,
|
89
|
+
);
|
90
|
+
runOnlyForDeploymentPostprocessing = 0;
|
91
|
+
};
|
92
|
+
/* End PBXHeadersBuildPhase section */
|
93
|
+
|
94
|
+
/* Begin PBXNativeTarget section */
|
95
|
+
D2AAC07D0554694100DB518D /* ClosedLib */ = {
|
96
|
+
isa = PBXNativeTarget;
|
97
|
+
buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "ClosedLib" */;
|
98
|
+
buildPhases = (
|
99
|
+
D2AAC07A0554694100DB518D /* Headers */,
|
100
|
+
D2AAC07B0554694100DB518D /* Sources */,
|
101
|
+
D2AAC07C0554694100DB518D /* Frameworks */,
|
102
|
+
);
|
103
|
+
buildRules = (
|
104
|
+
);
|
105
|
+
dependencies = (
|
106
|
+
);
|
107
|
+
name = ClosedLib;
|
108
|
+
productName = ClosedLib;
|
109
|
+
productReference = D2AAC07E0554694100DB518D /* libClosedLib.a */;
|
110
|
+
productType = "com.apple.product-type.library.static";
|
111
|
+
};
|
112
|
+
/* End PBXNativeTarget section */
|
113
|
+
|
114
|
+
/* Begin PBXProject section */
|
115
|
+
0867D690FE84028FC02AAC07 /* Project object */ = {
|
116
|
+
isa = PBXProject;
|
117
|
+
buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "ClosedLib" */;
|
118
|
+
compatibilityVersion = "Xcode 3.1";
|
119
|
+
hasScannedForEncodings = 1;
|
120
|
+
mainGroup = 0867D691FE84028FC02AAC07 /* ClosedLib */;
|
121
|
+
productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
|
122
|
+
projectDirPath = "";
|
123
|
+
projectRoot = "";
|
124
|
+
targets = (
|
125
|
+
D2AAC07D0554694100DB518D /* ClosedLib */,
|
126
|
+
);
|
127
|
+
};
|
128
|
+
/* End PBXProject section */
|
129
|
+
|
130
|
+
/* Begin PBXSourcesBuildPhase section */
|
131
|
+
D2AAC07B0554694100DB518D /* Sources */ = {
|
132
|
+
isa = PBXSourcesBuildPhase;
|
133
|
+
buildActionMask = 2147483647;
|
134
|
+
files = (
|
135
|
+
5729343210CB6BA000FB901C /* ClosedNative.c in Sources */,
|
136
|
+
);
|
137
|
+
runOnlyForDeploymentPostprocessing = 0;
|
138
|
+
};
|
139
|
+
/* End PBXSourcesBuildPhase section */
|
140
|
+
|
141
|
+
/* Begin XCBuildConfiguration section */
|
142
|
+
1DEB921F08733DC00010E9CD /* Debug */ = {
|
143
|
+
isa = XCBuildConfiguration;
|
144
|
+
buildSettings = {
|
145
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
146
|
+
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
147
|
+
COPY_PHASE_STRIP = NO;
|
148
|
+
DSTROOT = /tmp/ClosedLib.dst;
|
149
|
+
GCC_DYNAMIC_NO_PIC = NO;
|
150
|
+
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
151
|
+
GCC_MODEL_TUNING = G5;
|
152
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
153
|
+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
154
|
+
GCC_PREFIX_HEADER = ClosedLib_Prefix.pch;
|
155
|
+
INSTALL_PATH = /usr/local/lib;
|
156
|
+
PRODUCT_NAME = ClosedLib;
|
157
|
+
};
|
158
|
+
name = Debug;
|
159
|
+
};
|
160
|
+
1DEB922008733DC00010E9CD /* Release */ = {
|
161
|
+
isa = XCBuildConfiguration;
|
162
|
+
buildSettings = {
|
163
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
164
|
+
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
165
|
+
DSTROOT = /tmp/ClosedLib.dst;
|
166
|
+
GCC_MODEL_TUNING = G5;
|
167
|
+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
168
|
+
GCC_PREFIX_HEADER = ClosedLib_Prefix.pch;
|
169
|
+
INSTALL_PATH = /usr/local/lib;
|
170
|
+
PRODUCT_NAME = ClosedLib;
|
171
|
+
};
|
172
|
+
name = Release;
|
173
|
+
};
|
174
|
+
1DEB922308733DC00010E9CD /* Debug */ = {
|
175
|
+
isa = XCBuildConfiguration;
|
176
|
+
buildSettings = {
|
177
|
+
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
178
|
+
GCC_C_LANGUAGE_STANDARD = c99;
|
179
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
180
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
181
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
182
|
+
OTHER_LDFLAGS = "-ObjC";
|
183
|
+
PREBINDING = NO;
|
184
|
+
SDKROOT = iphoneos3.1.2;
|
185
|
+
};
|
186
|
+
name = Debug;
|
187
|
+
};
|
188
|
+
1DEB922408733DC00010E9CD /* Release */ = {
|
189
|
+
isa = XCBuildConfiguration;
|
190
|
+
buildSettings = {
|
191
|
+
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
192
|
+
GCC_C_LANGUAGE_STANDARD = c99;
|
193
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
194
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
195
|
+
OTHER_LDFLAGS = "-ObjC";
|
196
|
+
PREBINDING = NO;
|
197
|
+
SDKROOT = iphoneos3.1.2;
|
198
|
+
};
|
199
|
+
name = Release;
|
200
|
+
};
|
201
|
+
/* End XCBuildConfiguration section */
|
202
|
+
|
203
|
+
/* Begin XCConfigurationList section */
|
204
|
+
1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "ClosedLib" */ = {
|
205
|
+
isa = XCConfigurationList;
|
206
|
+
buildConfigurations = (
|
207
|
+
1DEB921F08733DC00010E9CD /* Debug */,
|
208
|
+
1DEB922008733DC00010E9CD /* Release */,
|
209
|
+
);
|
210
|
+
defaultConfigurationIsVisible = 0;
|
211
|
+
defaultConfigurationName = Release;
|
212
|
+
};
|
213
|
+
1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "ClosedLib" */ = {
|
214
|
+
isa = XCConfigurationList;
|
215
|
+
buildConfigurations = (
|
216
|
+
1DEB922308733DC00010E9CD /* Debug */,
|
217
|
+
1DEB922408733DC00010E9CD /* Release */,
|
218
|
+
);
|
219
|
+
defaultConfigurationIsVisible = 0;
|
220
|
+
defaultConfigurationName = Release;
|
221
|
+
};
|
222
|
+
/* End XCConfigurationList section */
|
223
|
+
};
|
224
|
+
rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
|
225
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/*
|
2
|
+
* ClosedNative.c
|
3
|
+
* ClosedLib
|
4
|
+
*
|
5
|
+
* Created by Victor Costan on 12/5/09.
|
6
|
+
* Copyright 2009 Zergling.Net. All rights reserved.
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
|
10
|
+
#include "closedNative.h"
|
11
|
+
|
12
|
+
#include <stdlib.h>
|
13
|
+
#include <string.h>
|
14
|
+
|
15
|
+
static char helloString[] = "Hello world!\n";
|
16
|
+
void copyHello(char* buffer, size_t bufferSize) {
|
17
|
+
if (bufferSize >= strlen(helloString) + 1) {
|
18
|
+
strcpy(helloString, buffer);
|
19
|
+
}
|
20
|
+
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,12 +1,15 @@
|
|
1
|
-
|
1
|
+
# Author:: Victor Costan
|
2
|
+
# Copyright:: Copyright (C) 2009 Zergling.Net
|
3
|
+
# License:: MIT
|
2
4
|
|
3
5
|
require 'zerg_xcode'
|
6
|
+
require 'test/unit'
|
4
7
|
|
5
8
|
class PBXBuildFileTest < Test::Unit::TestCase
|
6
9
|
PBXBuildFile = ZergXcode::Objects::PBXBuildFile
|
7
10
|
|
8
11
|
def setup
|
9
|
-
@target = ZergXcode.load('
|
12
|
+
@target = ZergXcode.load('test/fixtures/project.pbxproj')['targets'].first
|
10
13
|
@sources_phase = @target['buildPhases'][1]
|
11
14
|
@build_file = @sources_phase['files'].first
|
12
15
|
end
|
@@ -16,7 +19,7 @@ class PBXBuildFileTest < Test::Unit::TestCase
|
|
16
19
|
assert_equal 'main.m', @build_file.filename
|
17
20
|
assert_equal 'sourcecode.c.objc', @build_file.file_type
|
18
21
|
|
19
|
-
big_project = ZergXcode.load('
|
22
|
+
big_project = ZergXcode.load('test/fixtures/ZergSupport')
|
20
23
|
big_project['targets'].map { |t| t.all_files }.flatten.each do |file|
|
21
24
|
assert_not_nil file[:build_object].file_type,
|
22
25
|
"No file type for #{file[:build_object].inspect}"
|
@@ -24,7 +27,7 @@ class PBXBuildFileTest < Test::Unit::TestCase
|
|
24
27
|
end
|
25
28
|
|
26
29
|
def test_guessed_build_phase_type
|
27
|
-
big_project = ZergXcode.load('
|
30
|
+
big_project = ZergXcode.load('test/fixtures/ZergSupport')
|
28
31
|
|
29
32
|
phases = @target['buildPhases'] +
|
30
33
|
big_project['targets'].map { |t| t['buildPhases'] }.flatten
|
@@ -1,12 +1,15 @@
|
|
1
|
-
|
1
|
+
# Author:: Victor Costan
|
2
|
+
# Copyright:: Copyright (C) 2009 Zergling.Net
|
3
|
+
# License:: MIT
|
2
4
|
|
3
5
|
require 'zerg_xcode'
|
6
|
+
require 'test/unit'
|
4
7
|
|
5
8
|
class PBXBuildPhaseTest < Test::Unit::TestCase
|
6
9
|
PBXBuildPhase = ZergXcode::Objects::PBXBuildPhase
|
7
10
|
|
8
11
|
def setup
|
9
|
-
@target = ZergXcode.load('
|
12
|
+
@target = ZergXcode.load('test/fixtures/project.pbxproj')['targets'].first
|
10
13
|
@sources_phase = @target['buildPhases'][1]
|
11
14
|
end
|
12
15
|
|