tools/builder/Package.cs
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--
small clarification to param2 in MenuAction_End
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
}