tools/builder/Package.cs
author David Anderson <dvander@alliedmods.net>
Thu Jun 07 18:50:52 2007 +0000 (2007-06-07)
changeset 916 39ae94ad60ce
parent 852 9a7a93363979
child 1329 8a8789881ec3
permissions -rw-r--r--
Fixed bugs amb352 and amb274
dvander@388
     1
using System;
dvander@388
     2
dvander@388
     3
namespace builder
dvander@388
     4
{
dvander@388
     5
	public class Library
dvander@388
     6
	{
dvander@388
     7
		public Library()
dvander@388
     8
		{
dvander@388
     9
			PlatformExt = false;
dvander@388
    10
			IsExecutable = false;
dvander@388
    11
			ReleaseBuild = "Release";
dvander@388
    12
		}
dvander@388
    13
		public string Name;			/* Name of binary */
dvander@388
    14
		public string LocalPath;	/* Local path to library build scripts */
dvander@388
    15
		public string ReleaseBuild;	/* Release build name */
dvander@388
    16
		public string Destination;	/* Final relative path */
dvander@388
    17
		public bool PlatformExt;	/* Extra platform extension */
dvander@388
    18
		public string ProjectFile;	/* Project file, NULL for standard */
dvander@388
    19
		public bool IsExecutable;	/* If this is an EXE instead of a DLL */
dvander@388
    20
		//string DebugBuild;		/* Debug build name */
dvander@388
    21
	};
dvander@388
    22
dvander@852
    23
	public class Plugin
dvander@852
    24
	{
dvander@852
    25
		public Plugin(string file)
dvander@852
    26
		{
dvander@852
    27
			Source = file;
dvander@852
    28
		}
dvander@852
    29
		public Plugin (string file, string folder)
dvander@852
    30
		{
dvander@852
    31
			Source = file;
dvander@852
    32
			Folder = folder;
dvander@852
    33
		}
dvander@852
    34
		public string Folder;		/* Source folder relative to scripting (null for default) */
dvander@852
    35
		public string Source;		/* Source file name */
dvander@852
    36
	};
dvander@852
    37
dvander@388
    38
	public abstract class Package
dvander@388
    39
	{
dvander@388
    40
		/**
dvander@403
    41
		 * Must return the root compression point.
dvander@403
    42
		 */
dvander@403
    43
		public abstract void GetCompressBases(ref string path, ref string folder);
dvander@403
    44
dvander@403
    45
		/**
dvander@403
    46
		 * Must return the base package output folder.
dvander@388
    47
		 */
dvander@388
    48
		public abstract string GetBaseFolder();
dvander@388
    49
dvander@388
    50
		/** 
dvander@388
    51
		 * Must return the list of folders to create.
dvander@388
    52
		 */
dvander@388
    53
		public abstract string [] GetFolders();
dvander@388
    54
dvander@388
    55
		/**
dvander@388
    56
		 * Called when file to file copies must be performed
dvander@388
    57
		 */
dvander@403
    58
		public abstract void OnCopyFiles(ABuilder builder);
dvander@388
    59
dvander@388
    60
		/**
dvander@388
    61
		 * Called when dir to dir copies must be performed
dvander@388
    62
		 */
dvander@388
    63
		public abstract void OnCopyFolders(ABuilder builder);
dvander@388
    64
dvander@388
    65
		/**
dvander@388
    66
		 * Called to build libraries
dvander@388
    67
		 */
dvander@388
    68
		public abstract Library [] GetLibraries();
dvander@403
    69
dvander@403
    70
		/**
dvander@403
    71
		 * Called to get package name
dvander@403
    72
		 */
dvander@403
    73
		public abstract string GetPackageName();
dvander@852
    74
dvander@852
    75
		/**
dvander@852
    76
		 * Called to get a plugin list
dvander@852
    77
		 */
dvander@852
    78
		public abstract Plugin [] GetPlugins();
dvander@388
    79
	}
dvander@388
    80
}