|
ds@1952
|
1 |
using System; |
|
ds@1952
|
2 |
|
|
ds@1952
|
3 |
namespace builder |
|
ds@1952
|
4 |
{ |
|
ds@1952
|
5 |
public enum ReleaseMode : int |
|
ds@1952
|
6 |
{ |
|
ds@1952
|
7 |
ReleaseMode_Release, |
|
ds@1952
|
8 |
ReleaseMode_Debug, |
|
ds@1952
|
9 |
}; |
|
ds@1952
|
10 |
|
|
ds@1952
|
11 |
public enum BuildMode : int |
|
ds@1952
|
12 |
{ |
|
ds@1952
|
13 |
BuildMode_Simple, |
|
ds@1952
|
14 |
BuildMode_OldMetamod, |
|
ds@2583
|
15 |
BuildMode_DarkMessiah, |
|
ds@1952
|
16 |
BuildMode_Episode1, |
|
ds@2400
|
17 |
BuildMode_Episode2, |
|
ds@2402
|
18 |
BuildMode_Left4Dead |
|
ds@1952
|
19 |
}; |
|
ds@1952
|
20 |
|
|
ds@1952
|
21 |
public class Library |
|
ds@1952
|
22 |
{ |
|
ds@1952
|
23 |
public Library() |
|
ds@1952
|
24 |
{ |
|
ds@1952
|
25 |
has_platform_ext = false; |
|
ds@1952
|
26 |
is_executable = false; |
|
ds@1952
|
27 |
release_mode = ReleaseMode.ReleaseMode_Release; |
|
ds@1952
|
28 |
build_mode = BuildMode.BuildMode_Simple; |
|
ds@2583
|
29 |
platform = BasePlatform.Platform_Linux | BasePlatform.Platform_Windows; |
|
ds@1952
|
30 |
} |
|
ds@2583
|
31 |
public string binary_name; /* Name of binary */ |
|
ds@2583
|
32 |
public string source_path; /* Local path to library build scripts */ |
|
ds@2583
|
33 |
public ReleaseMode release_mode; /* Release mode */ |
|
ds@2583
|
34 |
public BuildMode build_mode; /* Build mode */ |
|
ds@2583
|
35 |
public string package_path; /* Final relative path */ |
|
ds@2583
|
36 |
public bool has_platform_ext; /* Add extra platform extension? */ |
|
ds@2583
|
37 |
public string vcproj_name; /* Project file, NULL for standard */ |
|
ds@2583
|
38 |
public bool is_executable; /* If this is an EXE instead of a DLL */ |
|
ds@2583
|
39 |
public BasePlatform platform; /* Platforms for which the binary should be built */ |
|
ds@1952
|
40 |
}; |
|
ds@1952
|
41 |
|
|
ds@1952
|
42 |
public class Plugin |
|
ds@1952
|
43 |
{ |
|
ds@1952
|
44 |
public Plugin(string file) |
|
ds@1952
|
45 |
{ |
|
ds@1952
|
46 |
Source = file; |
|
ds@1952
|
47 |
disabled = false; |
|
ds@1952
|
48 |
} |
|
ds@1952
|
49 |
public Plugin (string file, string folder) |
|
ds@1952
|
50 |
{ |
|
ds@1952
|
51 |
Source = file; |
|
ds@1952
|
52 |
Folder = folder; |
|
ds@1952
|
53 |
disabled = false; |
|
ds@1952
|
54 |
} |
|
ds@1952
|
55 |
public Plugin (string file, bool is_disabled) |
|
ds@1952
|
56 |
{ |
|
ds@1952
|
57 |
Source = file; |
|
ds@1952
|
58 |
disabled = is_disabled; |
|
ds@1952
|
59 |
} |
|
ds@1952
|
60 |
public string Folder; /* Source folder relative to scripting (null for default) */ |
|
ds@1952
|
61 |
public string Source; /* Source file name */ |
|
ds@1952
|
62 |
public bool disabled; /* Is the plugin disabled? */ |
|
ds@1952
|
63 |
}; |
|
ds@1952
|
64 |
|
|
ds@1952
|
65 |
public abstract class Package |
|
ds@1952
|
66 |
{ |
|
ds@1952
|
67 |
/** |
|
ds@1952
|
68 |
* Must return the root compression point. |
|
ds@1952
|
69 |
*/ |
|
ds@1952
|
70 |
public abstract void GetCompressBases(ref string path, ref string folder); |
|
ds@1952
|
71 |
|
|
ds@1952
|
72 |
/** |
|
ds@1952
|
73 |
* Must return the base package output folder. |
|
ds@1952
|
74 |
*/ |
|
ds@1952
|
75 |
public abstract string GetBaseFolder(); |
|
ds@1952
|
76 |
|
|
ds@1952
|
77 |
/** |
|
ds@1952
|
78 |
* Must return the list of folders to create. |
|
ds@1952
|
79 |
*/ |
|
ds@1952
|
80 |
public abstract string [] GetFolders(); |
|
ds@1952
|
81 |
|
|
ds@1952
|
82 |
/** |
|
ds@1952
|
83 |
* Called when file to file copies must be performed |
|
ds@1952
|
84 |
*/ |
|
ds@1952
|
85 |
public abstract void OnCopyFiles(ABuilder builder); |
|
ds@1952
|
86 |
|
|
ds@1952
|
87 |
/** |
|
ds@1952
|
88 |
* Called when dir to dir copies must be performed |
|
ds@1952
|
89 |
*/ |
|
ds@1952
|
90 |
public abstract void OnCopyFolders(ABuilder builder); |
|
ds@1952
|
91 |
|
|
ds@1952
|
92 |
/** |
|
ds@1952
|
93 |
* Called to build libraries |
|
ds@1952
|
94 |
*/ |
|
ds@1952
|
95 |
public abstract Library [] GetLibraries(); |
|
ds@1952
|
96 |
|
|
ds@1952
|
97 |
/** |
|
ds@1952
|
98 |
* Called to get package name |
|
ds@1952
|
99 |
*/ |
|
ds@1952
|
100 |
public abstract string GetPackageName(); |
|
ds@1952
|
101 |
|
|
ds@1952
|
102 |
/** |
|
ds@1952
|
103 |
* Called to get a plugin list |
|
ds@1952
|
104 |
*/ |
|
ds@1952
|
105 |
public abstract Plugin [] GetPlugins(); |
|
ds@1952
|
106 |
} |
|
ds@1952
|
107 |
} |