-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathPlatformConfig.hx
85 lines (45 loc) · 1.57 KB
/
PlatformConfig.hx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package project;
import helpers.ObjectHelper;
class PlatformConfig {
public var android:AndroidConfig;
public var ios:IOSConfig;
private static var defaultAndroid:AndroidConfig = { installLocation: "preferExternal", minimumSDKVersion: 8, targetSDKVersion: 8 };
private static var defaultIOS:IOSConfig = { compiler: "clang", deployment: /*3.2*/ 5, device: IOSConfigDevice.UNIVERSAL, linkerFlags: "", prerenderedIcon: false };
public function new () {
android = { };
ios = { };
ObjectHelper.copyFields (defaultAndroid, android);
ObjectHelper.copyFields (defaultIOS, ios);
}
public function clone ():PlatformConfig {
var copy = new PlatformConfig ();
ObjectHelper.copyFields (android, copy.android);
ObjectHelper.copyFields (ios, copy.ios);
return copy;
}
public function merge (config:PlatformConfig):Void {
ObjectHelper.copyUniqueFields (config.android, android, defaultAndroid);
ObjectHelper.copyUniqueFields (config.ios, ios, defaultIOS);
}
public function populate ():Void {
ObjectHelper.copyMissingFields (android, defaultAndroid);
ObjectHelper.copyMissingFields (ios, defaultIOS);
}
}
typedef AndroidConfig = {
@:optional var installLocation:String;
@:optional var minimumSDKVersion:Int;
@:optional var targetSDKVersion:Int;
}
typedef IOSConfig = {
@:optional var compiler:String;
@:optional var deployment:Float;
@:optional var device:IOSConfigDevice;
@:optional var linkerFlags:String;
@:optional var prerenderedIcon:Bool;
}
enum IOSConfigDevice {
UNIVERSAL;
IPHONE;
IPAD;
}