ObjFW  Diff

Differences From Artifact [47058a7cb6]:

To Artifact [4d246f30a8]:


30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
30
31
32
33
34
35
36







37
38
39
40
41
42
43







-
-
-
-
-
-
-








@interface LibraryGenerator: OFObject <OFApplicationDelegate>
@end

OF_APPLICATION_DELEGATE(LibraryGenerator)

@implementation LibraryGenerator
- (void)applicationDidFinishLaunching
{
	[self generateLinkLibInDirectory: @"../../src/runtime"];

	[OFApplication terminate];
}

- (void)generateLinkLibInDirectory: (OFString *)directory
{
	OFXMLElement *library = [OFXMLElement elementWithFile:
	    [directory stringByAppendingPathComponent: @"library.xml"]];
	OFString *linklibPath = [[directory
	    stringByAppendingPathComponent: @"linklib"]
	    stringByAppendingPathComponent: @"linklib.m"];
173
174
175
176
177
178
179
180

181
182
183
184
185
186
187
166
167
168
169
170
171
172

173
174
175
176
177
178
179
180







-
+







		    @"\n"
		    @"\t",
		    libBase, libBase];

		if (![returnType isEqual: @"void"])
			[linklib writeString: @"return "];

		[linklib writeString: @"(("];
		[linklib writeString: @"__extension__ (("];
		[linklib writeString: returnType];
		if (![returnType hasSuffix: @"*"])
			[linklib writeString: @" "];
		[linklib writeString: @"(*)("];

		argumentIndex = 0;
		for (OFXMLElement *argument in arguments) {
217
218
219
220
221
222
223







224
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224







+
+
+
+
+
+
+


		[linklib writeString: @"}\n"];

		if (++funcIndex < functions.count)
			[linklib writeString: @"\n"];
	}
}

- (void)applicationDidFinishLaunching
{
	[self generateLinkLibInDirectory: @"../../src/runtime"];

	[OFApplication terminate];
}
@end