tools/builder/Package.cs
author Scott Ehlert <ds@alliedmods.net>
Tue May 13 08:22:49 2008 +0000 (2008-05-13)
changeset 2051 568678a2e847
parent 1952 b7aa2b626807
child 2400 76b7b4575e21
permissions -rw-r--r--
Trunk build fixes
Fixed up IGameHelpers.h such that it no longer requires HL2SDK headers if a function doesn't need them
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@1952
    15
		BuildMode_Episode1,
ds@1952
    16
		BuildMode_Episode2
ds@1952
    17
	};
ds@1952
    18
ds@1952
    19
	public class Library
ds@1952
    20
	{
ds@1952
    21
		public Library()
ds@1952
    22
		{
ds@1952
    23
			has_platform_ext = false;
ds@1952
    24
			is_executable = false;
ds@1952
    25
			release_mode = ReleaseMode.ReleaseMode_Release;
ds@1952
    26
			build_mode = BuildMode.BuildMode_Simple;
ds@1952
    27
		}
ds@1952
    28
		public string binary_name;		/* Name of binary */
ds@1952
    29
		public string source_path;		/* Local path to library build scripts */
ds@1952
    30
		public ReleaseMode release_mode; /* Release mode */
ds@1952
    31
		public BuildMode build_mode;	/* Build mode */
ds@1952
    32
		public string package_path;		/* Final relative path */
ds@1952
    33
		public bool has_platform_ext;	/* Add extra platform extension? */
ds@1952
    34
		public string vcproj_name;		/* Project file, NULL for standard */
ds@1952
    35
		public bool is_executable;		/* If this is an EXE instead of a DLL */
ds@1952
    36
	};
ds@1952
    37
ds@1952
    38
	public class Plugin
ds@1952
    39
	{
ds@1952
    40
		public Plugin(string file)
ds@1952
    41
		{
ds@1952
    42
			Source = file;
ds@1952
    43
			disabled = false;
ds@1952
    44
		}
ds@1952
    45
		public Plugin (string file, string folder)
ds@1952
    46
		{
ds@1952
    47
			Source = file;
ds@1952
    48
			Folder = folder;
ds@1952
    49
			disabled = false;
ds@1952
    50
		}
ds@1952
    51
		public Plugin (string file, bool is_disabled)
ds@1952
    52
		{
ds@1952
    53
			Source = file;
ds@1952
    54
			disabled = is_disabled;
ds@1952
    55
		}
ds@1952
    56
		public string Folder;		/* Source folder relative to scripting (null for default) */
ds@1952
    57
		public string Source;		/* Source file name */
ds@1952
    58
		public bool disabled;		/* Is the plugin disabled? */
ds@1952
    59
	};
ds@1952
    60
ds@1952
    61
	public abstract class Package
ds@1952
    62
	{
ds@1952
    63
		/**
ds@1952
    64
		 * Must return the root compression point.
ds@1952
    65
		 */
ds@1952
    66
		public abstract void GetCompressBases(ref string path, ref string folder);
ds@1952
    67
ds@1952
    68
		/**
ds@1952
    69
		 * Must return the base package output folder.
ds@1952
    70
		 */
ds@1952
    71
		public abstract string GetBaseFolder();
ds@1952
    72
ds@1952
    73
		/** 
ds@1952
    74
		 * Must return the list of folders to create.
ds@1952
    75
		 */
ds@1952
    76
		public abstract string [] GetFolders();
ds@1952
    77
ds@1952
    78
		/**
ds@1952
    79
		 * Called when file to file copies must be performed
ds@1952
    80
		 */
ds@1952
    81
		public abstract void OnCopyFiles(ABuilder builder);
ds@1952
    82
ds@1952
    83
		/**
ds@1952
    84
		 * Called when dir to dir copies must be performed
ds@1952
    85
		 */
ds@1952
    86
		public abstract void OnCopyFolders(ABuilder builder);
ds@1952
    87
ds@1952
    88
		/**
ds@1952
    89
		 * Called to build libraries
ds@1952
    90
		 */
ds@1952
    91
		public abstract Library [] GetLibraries();
ds@1952
    92
ds@1952
    93
		/**
ds@1952
    94
		 * Called to get package name
ds@1952
    95
		 */
ds@1952
    96
		public abstract string GetPackageName();
ds@1952
    97
ds@1952
    98
		/**
ds@1952
    99
		 * Called to get a plugin list
ds@1952
   100
		 */
ds@1952
   101
		public abstract Plugin [] GetPlugins();
ds@1952
   102
	}
ds@1952
   103
}