tools/builder/PkgCore.cs
author David Anderson <dvander@alliedmods.net>
Fri Jul 11 09:28:04 2008 +0000 (2008-07-11)
changeset 2197 311ae44b8784
parent 2149 8dddeaf9a189
child 2289 44045ead61cd
permissions -rw-r--r--
fixed build (I hope)
ds@1952
     1
using System;
ds@1952
     2
using System.Collections;
ds@1952
     3
ds@1952
     4
namespace builder
ds@1952
     5
{
ds@1952
     6
	public class PkgCore : Package
ds@1952
     7
	{
ds@1952
     8
		private ArrayList libraries;
ds@1952
     9
		private ArrayList plugins;
ds@1952
    10
		private ArrayList folders;
ds@1952
    11
ds@1952
    12
		public PkgCore()
ds@1952
    13
		{
ds@1952
    14
		}
ds@1952
    15
ds@1952
    16
		public override string GetBaseFolder()
ds@1952
    17
		{
ds@1952
    18
			return "base";
ds@1952
    19
		}
ds@1952
    20
ds@1952
    21
		public override void GetCompressBases(ref string path, ref string folder)
ds@1952
    22
		{
ds@1952
    23
			path = "base";
ds@1952
    24
			folder = "addons";
ds@1952
    25
		}
ds@1952
    26
ds@1952
    27
		public override string GetPackageName()
ds@1952
    28
		{
ds@1952
    29
			return "sourcemod-core";
ds@1952
    30
		}
ds@1952
    31
ds@1952
    32
		/** 
ds@1952
    33
		 * Must return the list of folders to create.
ds@1952
    34
		 */
ds@1952
    35
		public override string [] GetFolders()
ds@1952
    36
		{
ds@1952
    37
			if (folders != null)
ds@1952
    38
			{
ds@1952
    39
				return (string [])folders.ToArray(typeof(string));
ds@1952
    40
			}
ds@1952
    41
ds@1952
    42
			folders = new ArrayList();
ds@1952
    43
ds@1952
    44
			folders.Add("addons/sourcemod/bin");
ds@1952
    45
			folders.Add("addons/sourcemod/plugins/disabled");
ds@1952
    46
			folders.Add("addons/sourcemod/gamedata");
ds@1952
    47
			folders.Add("addons/sourcemod/configs/geoip");
ds@1952
    48
			folders.Add("addons/sourcemod/translations");
ds@1952
    49
			folders.Add("addons/sourcemod/logs");
ds@1952
    50
			folders.Add("addons/sourcemod/extensions");
ds@1952
    51
			folders.Add("addons/sourcemod/data");
ds@1952
    52
			folders.Add("addons/sourcemod/scripting/include");
ds@1952
    53
			folders.Add("addons/sourcemod/scripting/admin-flatfile");
ds@1952
    54
			folders.Add("addons/sourcemod/scripting/adminmenu");
ds@1952
    55
			folders.Add("addons/sourcemod/scripting/testsuite");
ds@1952
    56
			folders.Add("cfg/sourcemod");
ds@1952
    57
			folders.Add("addons/sourcemod/configs/sql-init-scripts");
ds@1952
    58
			folders.Add("addons/sourcemod/configs/sql-init-scripts/mysql");
ds@1952
    59
			folders.Add("addons/sourcemod/configs/sql-init-scripts/sqlite");
ds@1952
    60
			//folders.Add("addons/sourcemod/extensions/games");
ds@1952
    61
			folders.Add("addons/sourcemod/scripting/basecommands");
ds@1952
    62
			folders.Add("addons/sourcemod/scripting/basecomm");
ds@1952
    63
			folders.Add("addons/sourcemod/scripting/funvotes");
ds@1952
    64
			folders.Add("addons/sourcemod/scripting/basevotes");
ds@1952
    65
			folders.Add("addons/sourcemod/scripting/basebans");
ds@1952
    66
			folders.Add("addons/sourcemod/scripting/funcommands");
ds@1952
    67
			folders.Add("addons/sourcemod/extensions/auto.1.ep1");
ds@1952
    68
			//folders.Add("addons/sourcemod/extensions/auto.2.ep1");
ds@1952
    69
			folders.Add("addons/sourcemod/extensions/auto.2.ep2");
ds@1952
    70
			folders.Add("addons/sourcemod/scripting/playercommands");
ds@1952
    71
			folders.Add("addons/metamod");
ds@1952
    72
			
ds@1952
    73
			return (string [])folders.ToArray(typeof(string));
ds@1952
    74
		}
ds@1952
    75
ds@1952
    76
		/**
ds@1952
    77
		 * Called when file to file copies must be performed
ds@1952
    78
		 */
ds@1952
    79
		public override void OnCopyFiles(ABuilder builder)
ds@1952
    80
		{
ds@1952
    81
			builder.CopyFile(this, "sourcepawn/batchtool/compile.exe", "addons/sourcemod/scripting/compile.exe");
ds@1952
    82
		}
ds@1952
    83
ds@1952
    84
		/**
ds@1952
    85
		 * Called when dir to dir copies must be performed
ds@1952
    86
		 */
ds@1952
    87
		public override void OnCopyFolders(ABuilder builder)
ds@1952
    88
		{
ds@1952
    89
			builder.CopyFolder(this, "configs", "addons/sourcemod/configs", null);
ds@1952
    90
			builder.CopyFolder(this, "configs/geoip", "addons/sourcemod/configs/geoip", null);
ds@1952
    91
			builder.CopyFolder(this, "configs/cfg", "cfg/sourcemod", null);
ds@1952
    92
			builder.CopyFolder(this, "configs/metamod", "addons/metamod", null);
ds@1952
    93
			builder.CopyFolder(this,
ds@1952
    94
				"configs/sql-init-scripts", 
ds@1952
    95
				"addons/sourcemod/configs/sql-init-scripts", 
ds@1952
    96
				null);
ds@1952
    97
			builder.CopyFolder(this,
ds@1952
    98
				"configs/sql-init-scripts/mysql",
ds@1952
    99
				"addons/sourcemod/configs/sql-init-scripts/mysql",
ds@1952
   100
				null);
ds@1952
   101
			builder.CopyFolder(this,
ds@1952
   102
				"configs/sql-init-scripts/sqlite",
ds@1952
   103
				"addons/sourcemod/configs/sql-init-scripts/sqlite",
ds@1952
   104
				null);
ds@1952
   105
			
ds@1952
   106
			string [] plugin_omits = new string[1];
ds@1952
   107
			plugin_omits[0] = "spcomp.exe";
ds@1952
   108
ds@1952
   109
			string [] include_omits = new string[1];
ds@1952
   110
			include_omits[0] = "version.tpl";
ds@1952
   111
ds@1952
   112
			builder.CopyFolder(this, "gamedata", "addons/sourcemod/gamedata", null);
ds@1952
   113
			builder.CopyFolder(this, "plugins", "addons/sourcemod/scripting", plugin_omits);
ds@1952
   114
			builder.CopyFolder(this, "plugins/include", "addons/sourcemod/scripting/include", include_omits);
ds@1952
   115
			builder.CopyFolder(this, "translations", "addons/sourcemod/translations", null);
ds@1952
   116
			builder.CopyFolder(this, "public/licenses", "addons/sourcemod", null);
ds@1952
   117
			builder.CopyFolder(this, "plugins/admin-flatfile", "addons/sourcemod/scripting/admin-flatfile", null);
ds@1952
   118
			builder.CopyFolder(this, "plugins/adminmenu", "addons/sourcemod/scripting/adminmenu", null);
ds@1952
   119
			builder.CopyFolder(this, "plugins/testsuite", "addons/sourcemod/scripting/testsuite", null);
ds@1952
   120
			builder.CopyFolder(this, "plugins/basecommands", "addons/sourcemod/scripting/basecommands", null);
ds@1952
   121
			builder.CopyFolder(this, "plugins/basecomm", "addons/sourcemod/scripting/basecomm", null);
ds@1952
   122
			builder.CopyFolder(this, "plugins/funvotes", "addons/sourcemod/scripting/funvotes", null);
ds@1952
   123
			builder.CopyFolder(this, "plugins/basevotes", "addons/sourcemod/scripting/basevotes", null);
ds@1952
   124
			builder.CopyFolder(this, "plugins/basebans", "addons/sourcemod/scripting/basebans", null);
ds@1952
   125
			builder.CopyFolder(this, "plugins/funcommands", "addons/sourcemod/scripting/funcommands", null);
ds@1952
   126
			builder.CopyFolder(this, "plugins/playercommands", "addons/sourcemod/scripting/playercommands", null);
ds@1952
   127
		}
ds@1952
   128
ds@1952
   129
		/**
ds@1952
   130
		 * Called to build libraries
ds@1952
   131
		 */
ds@1952
   132
		public override Library [] GetLibraries()
ds@1952
   133
		{
ds@1952
   134
			if (libraries != null)
ds@1952
   135
			{
ds@1952
   136
				return (Library [])libraries.ToArray(typeof(Library));
ds@1952
   137
			}
ds@1952
   138
ds@1952
   139
			libraries = new ArrayList();
ds@1952
   140
ds@1952
   141
			Library lib = new Library();
ds@1952
   142
			lib.package_path = "addons/sourcemod/bin";
ds@1952
   143
			lib.source_path = "loader";
ds@1952
   144
			lib.binary_name = "sourcemod_mm";
ds@1952
   145
			lib.vcproj_name = "loader";
ds@1952
   146
			lib.build_mode = BuildMode.BuildMode_Simple;
ds@1952
   147
			lib.has_platform_ext = true;
ds@1952
   148
			libraries.Add(lib);
ds@1952
   149
ds@1952
   150
			lib = new Library();
ds@1952
   151
			lib.package_path = "addons/sourcemod/bin";
ds@1952
   152
			lib.source_path = "core";
ds@1952
   153
			lib.binary_name = "sourcemod.1.ep1";
ds@1952
   154
			lib.vcproj_name = "sourcemod_mm";
ds@1952
   155
			lib.build_mode = BuildMode.BuildMode_OldMetamod;
ds@1952
   156
			libraries.Add(lib);
ds@1952
   157
ds@1952
   158
			lib = new Library();
ds@1952
   159
			lib.package_path = "addons/sourcemod/bin";
ds@1952
   160
			lib.source_path = "core";
ds@1952
   161
			lib.binary_name = "sourcemod.2.ep1";
ds@1952
   162
			lib.vcproj_name = "sourcemod_mm";
ds@1952
   163
			lib.build_mode = BuildMode.BuildMode_Episode1;
ds@1952
   164
			libraries.Add(lib);
ds@1952
   165
ds@1952
   166
			lib = new Library();
ds@1952
   167
			lib.package_path = "addons/sourcemod/bin";
ds@1952
   168
			lib.source_path = "core";
ds@1952
   169
			lib.binary_name = "sourcemod.2.ep2";
ds@1952
   170
			lib.vcproj_name = "sourcemod_mm";
ds@1952
   171
			lib.build_mode = BuildMode.BuildMode_Episode2;
ds@1952
   172
			libraries.Add(lib);
ds@1952
   173
ds@1952
   174
			lib = new Library();
ds@1952
   175
			lib.package_path = "addons/sourcemod/bin";
dvander@2197
   176
			lib.source_path = "sourcepawn/jit";
ds@1952
   177
			lib.binary_name = "sourcepawn.jit.x86";
ds@1952
   178
			lib.vcproj_name = "jit-x86";
ds@1952
   179
			libraries.Add(lib);
ds@1952
   180
ds@1952
   181
			lib = new Library();
ds@1952
   182
			lib.package_path = "addons/sourcemod/scripting";
ds@1952
   183
			lib.source_path = "sourcepawn/compiler";
ds@1952
   184
			lib.binary_name = "spcomp";
ds@1952
   185
			lib.is_executable = true;
ds@1952
   186
			libraries.Add(lib);
ds@1952
   187
ds@1952
   188
			lib = new Library();
ds@1952
   189
			lib.package_path = "addons/sourcemod/extensions";
ds@1952
   190
			lib.source_path = "extensions/geoip";
ds@1952
   191
			lib.binary_name = "geoip.ext";
ds@1952
   192
			lib.vcproj_name = "geoip";
ds@1952
   193
			libraries.Add(lib);
ds@1952
   194
ds@1952
   195
			lib = new Library();
ds@1952
   196
			lib.package_path = "addons/sourcemod/extensions";
ds@1952
   197
			lib.source_path = "extensions/bintools";
ds@1952
   198
			lib.binary_name = "bintools.ext";
ds@1952
   199
			lib.vcproj_name = "bintools";
ds@1952
   200
			libraries.Add(lib);
ds@1952
   201
ds@1952
   202
			lib = new Library();
ds@1952
   203
			lib.package_path = "addons/sourcemod/extensions";
ds@1952
   204
			lib.source_path = "extensions/mysql";
ds@1952
   205
			lib.binary_name = "dbi.mysql.ext";
ds@1952
   206
			lib.vcproj_name = "sm_mysql";
ds@1952
   207
			libraries.Add(lib);
ds@1952
   208
ds@1952
   209
			lib = new Library();
ds@1952
   210
			lib.package_path = "addons/sourcemod/extensions/auto.1.ep1";
ds@1952
   211
			lib.source_path = "extensions/sdktools";
ds@1952
   212
			lib.binary_name = "sdktools.ext";
ds@1952
   213
			lib.vcproj_name = "sdktools";
ds@1952
   214
			lib.build_mode = BuildMode.BuildMode_OldMetamod;
ds@1952
   215
			libraries.Add(lib);
ds@1952
   216
ds@1952
   217
			lib = new Library();
ds@1952
   218
			lib.package_path = "addons/sourcemod/extensions/auto.2.ep1";
ds@1952
   219
			lib.source_path = "extensions/sdktools";
ds@1952
   220
			lib.binary_name = "sdktools.ext";
ds@1952
   221
			lib.vcproj_name = "sdktools";
ds@1952
   222
			lib.build_mode = BuildMode.BuildMode_Episode1;
ds@1952
   223
			libraries.Add(lib);
ds@1952
   224
ds@1952
   225
			lib = new Library();
ds@1952
   226
			lib.package_path = "addons/sourcemod/extensions/auto.2.ep2";
ds@1952
   227
			lib.source_path = "extensions/sdktools";
ds@1952
   228
			lib.binary_name = "sdktools.ext";
ds@1952
   229
			lib.vcproj_name = "sdktools";
ds@1952
   230
			lib.build_mode = BuildMode.BuildMode_Episode2;
ds@1952
   231
			libraries.Add(lib);
ds@1952
   232
ds@1952
   233
			lib = new Library();
ds@1952
   234
			lib.package_path = "addons/sourcemod/extensions";
ds@1952
   235
			lib.source_path = "extensions/sqlite";
ds@1952
   236
			lib.binary_name = "dbi.sqlite.ext";
ds@1952
   237
			lib.vcproj_name = "sm_sqlite";
ds@1952
   238
			libraries.Add(lib);
ds@1952
   239
ds@1952
   240
			lib = new Library();
ds@1952
   241
			lib.package_path = "addons/sourcemod/extensions/auto.1.ep1";
ds@1952
   242
			lib.source_path = "extensions/cstrike";
ds@1952
   243
			lib.binary_name = "game.cstrike.ext";
ds@1952
   244
			lib.vcproj_name = "cstrike";
ds@1952
   245
			lib.build_mode = BuildMode.BuildMode_OldMetamod;
ds@1952
   246
			libraries.Add(lib);
ds@1952
   247
ds@1952
   248
			lib = new Library();
ds@1952
   249
			lib.package_path = "addons/sourcemod/extensions/auto.2.ep1";
ds@1952
   250
			lib.source_path = "extensions/cstrike";
ds@1952
   251
			lib.binary_name = "game.cstrike.ext";
ds@1952
   252
			lib.vcproj_name = "cstrike";
ds@1952
   253
			lib.build_mode = BuildMode.BuildMode_Episode1;
ds@1952
   254
			libraries.Add(lib);
ds@1952
   255
ds@1952
   256
			lib = new Library();
ds@1952
   257
			lib.package_path = "addons/sourcemod/extensions";
ds@1952
   258
			lib.source_path = "extensions/topmenus";
ds@1952
   259
			lib.binary_name = "topmenus.ext";
ds@1952
   260
			lib.vcproj_name = "topmenus";
ds@1952
   261
			libraries.Add(lib);
ds@1952
   262
dvander@1968
   263
			lib = new Library();
dvander@1968
   264
			lib.package_path = "addons/sourcemod/extensions/auto.2.ep2";
dvander@1968
   265
			lib.source_path = "extensions/tf2";
dvander@1968
   266
			lib.binary_name = "game.tf2.ext";
dvander@1968
   267
			lib.vcproj_name = "tf2";
dvander@1968
   268
			lib.build_mode = BuildMode.BuildMode_Episode2;
dvander@1968
   269
			libraries.Add(lib);
dvander@1968
   270
dvander@1968
   271
			lib = new Library();
dvander@1968
   272
			lib.package_path = "addons/sourcemod/extensions";
dvander@1968
   273
			lib.source_path = "extensions/regex";
dvander@1968
   274
			lib.binary_name = "regex.ext";
dvander@1968
   275
			lib.vcproj_name = "regex";
dvander@1968
   276
			libraries.Add(lib);
dvander@1968
   277
pred@2009
   278
			lib = new Library();
pred@2009
   279
			lib.package_path = "addons/sourcemod/extensions";
pred@2009
   280
			lib.source_path = "extensions/clientprefs";
pred@2009
   281
			lib.binary_name = "clientprefs.ext";
pred@2009
   282
			lib.vcproj_name = "clientprefs";
pred@2009
   283
			libraries.Add(lib);
pred@2009
   284
ds@1952
   285
			return (Library [])libraries.ToArray(typeof(Library));
ds@1952
   286
		}
ds@1952
   287
ds@1952
   288
		/**
ds@1952
   289
		 * Called to build plugins
ds@1952
   290
		 */
ds@1952
   291
		public override Plugin [] GetPlugins()
ds@1952
   292
		{
ds@1952
   293
			if (plugins != null)
ds@1952
   294
			{
ds@1952
   295
				return (Plugin [])plugins.ToArray(typeof(Plugin));
ds@1952
   296
			}
ds@1952
   297
ds@1952
   298
			plugins = new ArrayList();
ds@1952
   299
ds@1952
   300
			plugins.Add(new Plugin("admin-flatfile", "admin-flatfile"));
ds@1952
   301
			plugins.Add(new Plugin("adminhelp"));
ds@1952
   302
			plugins.Add(new Plugin("antiflood"));
ds@1952
   303
			plugins.Add(new Plugin("basecommands"));
ds@1952
   304
			plugins.Add(new Plugin("reservedslots"));
ds@1952
   305
			plugins.Add(new Plugin("basetriggers"));
ds@1952
   306
			plugins.Add(new Plugin("nextmap"));
ds@1952
   307
			plugins.Add(new Plugin("basechat"));
ds@1952
   308
			plugins.Add(new Plugin("funcommands"));
ds@1952
   309
			plugins.Add(new Plugin("basevotes"));
ds@1952
   310
			plugins.Add(new Plugin("funvotes"));
ds@1952
   311
			plugins.Add(new Plugin("admin-sql-prefetch", true));
ds@1952
   312
			plugins.Add(new Plugin("admin-sql-threaded", true));
ds@1952
   313
			plugins.Add(new Plugin("sql-admin-manager", true));
ds@1952
   314
			plugins.Add(new Plugin("basebans"));
ds@1952
   315
			plugins.Add(new Plugin("mapchooser", true));
ds@1952
   316
			plugins.Add(new Plugin("basecomm"));
ds@1952
   317
			plugins.Add(new Plugin("randomcycle", true));
ds@1952
   318
			plugins.Add(new Plugin("rockthevote", true));
ds@1952
   319
			plugins.Add(new Plugin("adminmenu"));
ds@1952
   320
			plugins.Add(new Plugin("playercommands"));
pred@2050
   321
			plugins.Add(new Plugin("clientprefs"));
dvander@2149
   322
			plugins.Add(new Plugin("nominations", true));
ds@1952
   323
ds@1952
   324
			return (Plugin [])plugins.ToArray(typeof(Plugin));
ds@1952
   325
		}
ds@1952
   326
	}
ds@1952
   327
}
ds@1952
   328