sourcemod/tools/builder/Package.cs
David Anderson 97d1660b34 added real support for alternate building methods and orangebox packaging
refactored a lot of variable names, yuck
removed tons of legacy compressing/SVN code that's since handled by Perl

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401554
2007-10-14 18:55:49 +00:00

104 lines
2.4 KiB
C#

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