tools/builder/Package.cs
author David Anderson <dvander@alliedmods.net>
Sat May 30 20:04:55 2009 -0400 (2009-05-30)
changeset 2741 efbe232c5834
parent 2583 d3b2571c378b
child 2768 939a96921719
permissions -rw-r--r--
Fixed build.
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
}