forked from openfl/openfl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.hx
123 lines (107 loc) · 2.23 KB
/
script.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package;
import hxp.*;
class Script extends hxp.Script
{
public function new()
{
super();
if (command == "default") command = "test";
if (command == "unit-test") command = "test";
if (command == "integration-test") command = "test";
if (command == "functional-test") command = "test-functional";
if (StringTools.startsWith(command, "test"))
{
test();
}
else
{
switch (command)
{
case "docs":
docs();
default:
Log.error("Unknown command: \"" + command + "\"");
}
}
}
private function docs():Void
{
System.runCommand("scripts", "haxe", ["docs.hxml"]);
PlatformTools.launchWebServer("docs-api");
}
private function runOpenFLCommand(directory:String, args:Array<String>):Void
{
if (Log.verbose) args.push("-verbose");
System.runCommand(directory, "openfl", args);
}
private function test():Void
{
if (command == "test-functional")
{
var targets = [
"haxelib", "flash", "html5", "neko", "cpp", "hl", "hashlink", "windows", "mac", "linux", "air", "web", "electron", "extern"
];
if (commandArgs.length > 0)
{
var target = commandArgs[0];
if (targets.indexOf(target) == -1)
{
Log.error("Unknown target type \"" + target + "\"");
}
if (target == "haxelib")
{
testHaxelib();
}
else
{
testHaxelib(target);
}
}
else
{
testHaxelib();
}
}
else if (command == "test")
{
System.runCommand("tests", "hxp", Log.verbose ? ["-verbose"] : null);
}
else
{
System.runCommand("tests", "hxp", Log.verbose ? [command, "-verbose"] : [command]);
}
}
private function testHaxelib(target:String = null):Void
{
if (command == "test-functional")
{
var dir = Path.combine(Sys.getCwd(), "tests/functional");
var args = ["test"];
if (target == "extern")
{
args.push("html5");
args.push("-Dopenfl-html5-extern");
}
else
{
args.push(target == null ? "neko" : target);
}
for (flag in flags.keys())
{
args.push("-" + flag);
}
for (define in defines.keys())
{
if (defines.get(define) != "")
{
args.push("-D" + define + "=" + defines.get(define));
}
else
{
args.push("-D" + define);
}
}
runOpenFLCommand(dir, args);
}
}
}