dvander@388: using System; dvander@388: dvander@388: namespace builder dvander@388: { dvander@1548: public enum ReleaseMode : int dvander@1548: { dvander@1548: ReleaseMode_Release, dvander@1548: ReleaseMode_Debug, dvander@1548: }; dvander@1548: dvander@1548: public enum BuildMode : int dvander@1548: { dvander@1548: BuildMode_Simple, dvander@1548: BuildMode_OldMetamod, dvander@1548: BuildMode_Episode1, dvander@1548: BuildMode_Episode2 dvander@1548: }; dvander@1548: dvander@388: public class Library dvander@388: { dvander@388: public Library() dvander@388: { dvander@1548: has_platform_ext = false; dvander@1548: is_executable = false; dvander@1548: release_mode = ReleaseMode.ReleaseMode_Release; dvander@1548: build_mode = BuildMode.BuildMode_Simple; dvander@388: } dvander@1548: public string binary_name; /* Name of binary */ dvander@1548: public string source_path; /* Local path to library build scripts */ dvander@1548: public ReleaseMode release_mode; /* Release mode */ dvander@1548: public BuildMode build_mode; /* Build mode */ dvander@1548: public string package_path; /* Final relative path */ dvander@1548: public bool has_platform_ext; /* Add extra platform extension? */ dvander@1548: public string vcproj_name; /* Project file, NULL for standard */ dvander@1548: public bool is_executable; /* If this is an EXE instead of a DLL */ dvander@388: }; dvander@388: dvander@852: public class Plugin dvander@852: { dvander@852: public Plugin(string file) dvander@852: { dvander@852: Source = file; dvander@1329: disabled = false; dvander@852: } dvander@852: public Plugin (string file, string folder) dvander@852: { dvander@852: Source = file; dvander@852: Folder = folder; dvander@1329: disabled = false; dvander@1329: } dvander@1329: public Plugin (string file, bool is_disabled) dvander@1329: { dvander@1329: Source = file; dvander@1329: disabled = is_disabled; dvander@852: } dvander@852: public string Folder; /* Source folder relative to scripting (null for default) */ dvander@852: public string Source; /* Source file name */ dvander@1329: public bool disabled; /* Is the plugin disabled? */ dvander@852: }; dvander@852: dvander@388: public abstract class Package dvander@388: { dvander@388: /** dvander@403: * Must return the root compression point. dvander@403: */ dvander@403: public abstract void GetCompressBases(ref string path, ref string folder); dvander@403: dvander@403: /** dvander@403: * Must return the base package output folder. dvander@388: */ dvander@388: public abstract string GetBaseFolder(); dvander@388: dvander@388: /** dvander@388: * Must return the list of folders to create. dvander@388: */ dvander@388: public abstract string [] GetFolders(); dvander@388: dvander@388: /** dvander@388: * Called when file to file copies must be performed dvander@388: */ dvander@403: public abstract void OnCopyFiles(ABuilder builder); dvander@388: dvander@388: /** dvander@388: * Called when dir to dir copies must be performed dvander@388: */ dvander@388: public abstract void OnCopyFolders(ABuilder builder); dvander@388: dvander@388: /** dvander@388: * Called to build libraries dvander@388: */ dvander@388: public abstract Library [] GetLibraries(); dvander@403: dvander@403: /** dvander@403: * Called to get package name dvander@403: */ dvander@403: public abstract string GetPackageName(); dvander@852: dvander@852: /** dvander@852: * Called to get a plugin list dvander@852: */ dvander@852: public abstract Plugin [] GetPlugins(); dvander@388: } dvander@388: }