forked from HaxeFoundation/haxe
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrelease.neko
98 lines (75 loc) · 2.09 KB
/
release.neko
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
version = $loader.args[0];
if( version == null )
$throw("<version> argument required");
sys = $loader.loadprim("std@sys_string",0)();
binext = "";
curdir = "./";
ext = switch( sys ) {
"Windows" => {
curdir = ".\\";
binext = ".exe";
"-win"
}
"Mac" => "-osx"
"Linux" => "-linux"
"BSD" => "-bsd"
default => $throw("Unknown system")
}
rights = 493; // octal 755
_mkdir = $loader.loadprim("std@sys_create_dir",2);
mkdir = function(d) {
_mkdir(d,rights);
}
chdir = $loader.loadprim("std@set_cwd",1);
_cmd = $loader.loadprim("std@sys_command",1);
cmd = function(c) {
if( _cmd(c) != 0 ) $throw("Command '"+c+"' failed");
}
dir = "haxe-"+version+ext;
cmd("rm -rf "+dir);
mkdir(dir);
mkdir(dir+"/doc");
if( sys == "Windows" ) {
cmd("cp ../haxe.exe ../haxesetup.exe haxeserver.bat "+dir);
// copy if available (means we build on recent OCaml/MSVC)
try cmd("cp C:/Windows/System32/msvcr100.dll "+dir) catch e {};
} else
cmd("cp ../haxe "+dir);
cmd("cp -pR CHANGES.txt LICENSE.txt ../std "+dir);
if( sys == "Windows" ) cmd("chmod -R 777 "+dir);
cmd("haxe all.hxml");
chdir(dir+"/std/tools");
// BUILD TOOLS
chdir("haxedoc");
cmd("haxe haxedoc.hxml");
cmd(curdir+"haxedoc -v \"../../../../neko.xml;neko\" \"../../../../js.xml;js\" \"../../../../flash9.xml;flash\" \"../../../../php.xml;php\" \"../../../../cpp.xml;cpp\"");
cmd("mv index.html content ../../../doc");
cmd("mv haxedoc"+binext+" ../../..");
chdir("..");
chdir("haxelib");
cmd("haxe haxelib.hxml");
cmd("mv haxelib"+binext+" ../../..");
chdir("..");
// CLEANUP
chdir("..");
cmd("rm -rf .svn */.svn */*/.svn */*/*/.svn */*/*/*/.svn");
cmd("rm -rf all.n all.js *.swf *.xml");
chdir("tools");
chdir("haxedoc");
cmd("rm -rf haxedoc.n index.html content haxedoc"+binext);
chdir("..");
chdir("haxelib");
cmd("rm -rf *.bat *.zip *.db *.n tmp files");
chdir("..");
chdir("hxinst");
cmd("rm -rf *.n *.zip *.dmg *.app hxinst-win.exe hxinst-linux hxinst-osx");
chdir("..");
chdir("..");
cmd("rm -rf mt mtwin");
chdir("../..");
// PACKAGE
if( sys == "Windows" )
cmd("7z a -tzip "+dir+".zip "+dir);
else
cmd("tar -czf "+dir+".tar.gz "+dir);
cmd("rm -rf "+dir);