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