sourcemod/tools/builder/Package.cs
Scott Ehlert bd9fab6cf5 Added support for Dark Messiah engine and game. (no bug, r=me).
The development of this feature would not be possible without the support of the following people from the game's community:
Dylan Riggs, Carl Pettengill, Ed Moreland, and Christian.
2009-02-18 02:19:22 -06:00

108 lines
2.7 KiB
C#

using System;
namespace builder
{
public enum ReleaseMode : int
{
ReleaseMode_Release,
ReleaseMode_Debug,
};
public enum BuildMode : int
{
BuildMode_Simple,
BuildMode_OldMetamod,
BuildMode_DarkMessiah,
BuildMode_Episode1,
BuildMode_Episode2,
BuildMode_Left4Dead
};
public class Library
{
public Library()
{
has_platform_ext = false;
is_executable = false;
release_mode = ReleaseMode.ReleaseMode_Release;
build_mode = BuildMode.BuildMode_Simple;
platform = BasePlatform.Platform_Linux | BasePlatform.Platform_Windows;
}
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 BasePlatform platform; /* Platforms for which the binary should be built */
};
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();
}
}