tools/builder/PkgCore.cs
author David Anderson <dvander@alliedmods.net>
Sun Mar 01 01:35:39 2009 -0500 (2009-03-01)
changeset 2632 f297107ad5da
parent 2583 d3b2571c378b
child 2726 c96f3fab8211
permissions -rw-r--r--
Re-landed automating updating (bug 3530, r=pred).
dvander@388
     1
using System;
dvander@1548
     2
using System.Collections;
dvander@388
     3
dvander@388
     4
namespace builder
dvander@388
     5
{
dvander@388
     6
	public class PkgCore : Package
dvander@388
     7
	{
dvander@1548
     8
		private ArrayList libraries;
dvander@1548
     9
		private ArrayList plugins;
dvander@1548
    10
		private ArrayList folders;
dvander@1548
    11
dvander@388
    12
		public PkgCore()
dvander@388
    13
		{
dvander@388
    14
		}
dvander@388
    15
dvander@388
    16
		public override string GetBaseFolder()
dvander@388
    17
		{
dvander@984
    18
			return "base";
dvander@388
    19
		}
dvander@388
    20
dvander@403
    21
		public override void GetCompressBases(ref string path, ref string folder)
dvander@403
    22
		{
dvander@403
    23
			path = "base";
dvander@403
    24
			folder = "addons";
dvander@403
    25
		}
dvander@403
    26
dvander@403
    27
		public override string GetPackageName()
dvander@403
    28
		{
dvander@403
    29
			return "sourcemod-core";
dvander@403
    30
		}
dvander@403
    31
dvander@388
    32
		/** 
dvander@388
    33
		 * Must return the list of folders to create.
dvander@388
    34
		 */
dvander@388
    35
		public override string [] GetFolders()
dvander@388
    36
		{
dvander@1548
    37
			if (folders != null)
dvander@1548
    38
			{
dvander@1548
    39
				return (string [])folders.ToArray(typeof(string));
dvander@1548
    40
			}
dvander@1548
    41
dvander@1548
    42
			folders = new ArrayList();
dvander@388
    43
dvander@1548
    44
			folders.Add("addons/sourcemod/bin");
dvander@1548
    45
			folders.Add("addons/sourcemod/plugins/disabled");
dvander@1548
    46
			folders.Add("addons/sourcemod/gamedata");
dvander@2528
    47
			folders.Add("addons/sourcemod/gamedata/core.games");
dvander@2528
    48
			folders.Add("addons/sourcemod/gamedata/sdktools.games");
dvander@1548
    49
			folders.Add("addons/sourcemod/configs/geoip");
dvander@1548
    50
			folders.Add("addons/sourcemod/translations");
dvander@1548
    51
			folders.Add("addons/sourcemod/logs");
dvander@1548
    52
			folders.Add("addons/sourcemod/extensions");
dvander@1548
    53
			folders.Add("addons/sourcemod/data");
dvander@1548
    54
			folders.Add("addons/sourcemod/scripting/include");
dvander@1548
    55
			folders.Add("addons/sourcemod/scripting/admin-flatfile");
ds@1949
    56
			folders.Add("addons/sourcemod/scripting/adminmenu");
dvander@1548
    57
			folders.Add("addons/sourcemod/scripting/testsuite");
dvander@1548
    58
			folders.Add("cfg/sourcemod");
dvander@1548
    59
			folders.Add("addons/sourcemod/configs/sql-init-scripts");
dvander@1548
    60
			folders.Add("addons/sourcemod/configs/sql-init-scripts/mysql");
dvander@1548
    61
			folders.Add("addons/sourcemod/configs/sql-init-scripts/sqlite");
dvander@1548
    62
			folders.Add("addons/sourcemod/scripting/basecommands");
dvander@1548
    63
			folders.Add("addons/sourcemod/scripting/basecomm");
dvander@1891
    64
			folders.Add("addons/sourcemod/scripting/funvotes");
dvander@1548
    65
			folders.Add("addons/sourcemod/scripting/basevotes");
dvander@1548
    66
			folders.Add("addons/sourcemod/scripting/basebans");
dvander@1891
    67
			folders.Add("addons/sourcemod/scripting/funcommands");
dvander@1556
    68
			folders.Add("addons/sourcemod/extensions/auto.1.ep1");
ds@2583
    69
			folders.Add("addons/sourcemod/extensions/auto.2.darkm");
dvander@1929
    70
			//folders.Add("addons/sourcemod/extensions/auto.2.ep1");
dvander@1556
    71
			folders.Add("addons/sourcemod/extensions/auto.2.ep2");
ds@2402
    72
			folders.Add("addons/sourcemod/extensions/auto.2.l4d");
dvander@1806
    73
			folders.Add("addons/sourcemod/scripting/playercommands");
dvander@1890
    74
			folders.Add("addons/metamod");
pred@1538
    75
			
dvander@1548
    76
			return (string [])folders.ToArray(typeof(string));
dvander@388
    77
		}
dvander@388
    78
dvander@388
    79
		/**
dvander@388
    80
		 * Called when file to file copies must be performed
dvander@388
    81
		 */
dvander@403
    82
		public override void OnCopyFiles(ABuilder builder)
dvander@388
    83
		{
dvander@1249
    84
			builder.CopyFile(this, "sourcepawn/batchtool/compile.exe", "addons/sourcemod/scripting/compile.exe");
dvander@388
    85
		}
dvander@388
    86
dvander@388
    87
		/**
dvander@388
    88
		 * Called when dir to dir copies must be performed
dvander@388
    89
		 */
dvander@388
    90
		public override void OnCopyFolders(ABuilder builder)
dvander@388
    91
		{
dvander@984
    92
			builder.CopyFolder(this, "configs", "addons/sourcemod/configs", null);
dvander@984
    93
			builder.CopyFolder(this, "configs/geoip", "addons/sourcemod/configs/geoip", null);
dvander@984
    94
			builder.CopyFolder(this, "configs/cfg", "cfg/sourcemod", null);
dvander@1890
    95
			builder.CopyFolder(this, "configs/metamod", "addons/metamod", null);
dvander@1404
    96
			builder.CopyFolder(this,
dvander@1404
    97
				"configs/sql-init-scripts", 
dvander@1404
    98
				"addons/sourcemod/configs/sql-init-scripts", 
dvander@1404
    99
				null);
dvander@1404
   100
			builder.CopyFolder(this,
dvander@1404
   101
				"configs/sql-init-scripts/mysql",
dvander@1404
   102
				"addons/sourcemod/configs/sql-init-scripts/mysql",
dvander@1404
   103
				null);
dvander@1404
   104
			builder.CopyFolder(this,
dvander@1404
   105
				"configs/sql-init-scripts/sqlite",
dvander@1404
   106
				"addons/sourcemod/configs/sql-init-scripts/sqlite",
dvander@1404
   107
				null);
dvander@388
   108
			
dvander@388
   109
			string [] plugin_omits = new string[1];
dvander@388
   110
			plugin_omits[0] = "spcomp.exe";
dvander@388
   111
dvander@573
   112
			string [] include_omits = new string[1];
dvander@575
   113
			include_omits[0] = "version.tpl";
dvander@573
   114
dvander@984
   115
			builder.CopyFolder(this, "gamedata", "addons/sourcemod/gamedata", null);
dvander@2528
   116
			builder.CopyFolder(this, "gamedata/sdktools.games", "addons/sourcemod/gamedata/sdktools.games", null);
dvander@2528
   117
			builder.CopyFolder(this, "gamedata/core.games", "addons/sourcemod/gamedata/core.games", null);
dvander@984
   118
			builder.CopyFolder(this, "plugins", "addons/sourcemod/scripting", plugin_omits);
dvander@984
   119
			builder.CopyFolder(this, "plugins/include", "addons/sourcemod/scripting/include", include_omits);
dvander@984
   120
			builder.CopyFolder(this, "translations", "addons/sourcemod/translations", null);
dvander@984
   121
			builder.CopyFolder(this, "public/licenses", "addons/sourcemod", null);
dvander@984
   122
			builder.CopyFolder(this, "plugins/admin-flatfile", "addons/sourcemod/scripting/admin-flatfile", null);
ds@1949
   123
			builder.CopyFolder(this, "plugins/adminmenu", "addons/sourcemod/scripting/adminmenu", null);
dvander@984
   124
			builder.CopyFolder(this, "plugins/testsuite", "addons/sourcemod/scripting/testsuite", null);
dvander@1510
   125
			builder.CopyFolder(this, "plugins/basecommands", "addons/sourcemod/scripting/basecommands", null);
pred@1538
   126
			builder.CopyFolder(this, "plugins/basecomm", "addons/sourcemod/scripting/basecomm", null);
dvander@1890
   127
			builder.CopyFolder(this, "plugins/funvotes", "addons/sourcemod/scripting/funvotes", null);
pred@1538
   128
			builder.CopyFolder(this, "plugins/basevotes", "addons/sourcemod/scripting/basevotes", null);
pred@1538
   129
			builder.CopyFolder(this, "plugins/basebans", "addons/sourcemod/scripting/basebans", null);
dvander@1890
   130
			builder.CopyFolder(this, "plugins/funcommands", "addons/sourcemod/scripting/funcommands", null);
dvander@1805
   131
			builder.CopyFolder(this, "plugins/playercommands", "addons/sourcemod/scripting/playercommands", null);
dvander@388
   132
		}
dvander@388
   133
dvander@388
   134
		/**
dvander@388
   135
		 * Called to build libraries
dvander@388
   136
		 */
dvander@388
   137
		public override Library [] GetLibraries()
dvander@388
   138
		{
dvander@1548
   139
			if (libraries != null)
dvander@388
   140
			{
dvander@1548
   141
				return (Library [])libraries.ToArray(typeof(Library));
dvander@388
   142
			}
dvander@388
   143
dvander@1548
   144
			libraries = new ArrayList();
dvander@388
   145
dvander@1548
   146
			Library lib = new Library();
dvander@1548
   147
			lib.package_path = "addons/sourcemod/bin";
dvander@1562
   148
			lib.source_path = "loader";
dvander@1562
   149
			lib.binary_name = "sourcemod_mm";
dvander@1562
   150
			lib.vcproj_name = "loader";
dvander@1562
   151
			lib.build_mode = BuildMode.BuildMode_Simple;
dvander@1562
   152
			lib.has_platform_ext = true;
dvander@1562
   153
			libraries.Add(lib);
dvander@1562
   154
dvander@1562
   155
			lib = new Library();
dvander@1562
   156
			lib.package_path = "addons/sourcemod/bin";
dvander@1548
   157
			lib.source_path = "core";
dvander@1548
   158
			lib.binary_name = "sourcemod.1.ep1";
dvander@1548
   159
			lib.vcproj_name = "sourcemod_mm";
dvander@1548
   160
			lib.build_mode = BuildMode.BuildMode_OldMetamod;
dvander@1548
   161
			libraries.Add(lib);
dvander@1548
   162
dvander@1548
   163
			lib = new Library();
dvander@1548
   164
			lib.package_path = "addons/sourcemod/bin";
dvander@1548
   165
			lib.source_path = "core";
ds@2583
   166
			lib.binary_name = "sourcemod.2.darkm";
ds@2583
   167
			lib.vcproj_name = "sourcemod_mm";
ds@2583
   168
			lib.build_mode = BuildMode.BuildMode_DarkMessiah;
ds@2583
   169
			lib.platform = BasePlatform.Platform_Windows;
ds@2583
   170
			libraries.Add(lib);
ds@2583
   171
ds@2583
   172
			lib = new Library();
ds@2583
   173
			lib.package_path = "addons/sourcemod/bin";
ds@2583
   174
			lib.source_path = "core";
dvander@1548
   175
			lib.binary_name = "sourcemod.2.ep2";
dvander@1548
   176
			lib.vcproj_name = "sourcemod_mm";
dvander@1548
   177
			lib.build_mode = BuildMode.BuildMode_Episode2;
dvander@1599
   178
			libraries.Add(lib);
dvander@388
   179
ds@2402
   180
			lib = new Library();
ds@2402
   181
			lib.package_path = "addons/sourcemod/bin";
ds@2402
   182
			lib.source_path = "core";
ds@2402
   183
			lib.binary_name = "sourcemod.2.l4d";
ds@2402
   184
			lib.vcproj_name = "sourcemod_mm";
ds@2402
   185
			lib.build_mode = BuildMode.BuildMode_Left4Dead;
ds@2402
   186
			libraries.Add(lib);
ds@2400
   187
dvander@1548
   188
			lib = new Library();
dvander@1548
   189
			lib.package_path = "addons/sourcemod/bin";
dvander@2197
   190
			lib.source_path = "sourcepawn/jit";
dvander@1548
   191
			lib.binary_name = "sourcepawn.jit.x86";
dvander@1548
   192
			lib.vcproj_name = "jit-x86";
dvander@1548
   193
			libraries.Add(lib);
dvander@388
   194
dvander@1548
   195
			lib = new Library();
dvander@1548
   196
			lib.package_path = "addons/sourcemod/scripting";
dvander@1548
   197
			lib.source_path = "sourcepawn/compiler";
dvander@1548
   198
			lib.binary_name = "spcomp";
dvander@1548
   199
			lib.is_executable = true;
dvander@1548
   200
			libraries.Add(lib);
dvander@1548
   201
dvander@1548
   202
			lib = new Library();
dvander@1548
   203
			lib.package_path = "addons/sourcemod/extensions";
dvander@1548
   204
			lib.source_path = "extensions/geoip";
dvander@1548
   205
			lib.binary_name = "geoip.ext";
dvander@1548
   206
			lib.vcproj_name = "geoip";
dvander@1548
   207
			libraries.Add(lib);
dvander@388
   208
dvander@1548
   209
			lib = new Library();
pred@2504
   210
			lib.package_path = "addons/sourcemod/extensions/auto.1.ep1";
dvander@1548
   211
			lib.source_path = "extensions/bintools";
dvander@1548
   212
			lib.binary_name = "bintools.ext";
dvander@1548
   213
			lib.vcproj_name = "bintools";
dvander@2506
   214
			lib.build_mode = BuildMode.BuildMode_OldMetamod;
dvander@2506
   215
			libraries.Add(lib);
dvander@2506
   216
ds@2583
   217
            lib = new Library();
ds@2583
   218
            lib.package_path = "addons/sourcemod/extensions/auto.2.darkm";
ds@2583
   219
            lib.source_path = "extensions/bintools";
ds@2583
   220
            lib.binary_name = "bintools.ext";
ds@2583
   221
            lib.vcproj_name = "bintools";
ds@2583
   222
            lib.build_mode = BuildMode.BuildMode_DarkMessiah;
ds@2583
   223
			lib.platform = BasePlatform.Platform_Windows;
ds@2583
   224
            libraries.Add(lib);
ds@2583
   225
dvander@2506
   226
			lib = new Library();
dvander@2506
   227
			lib.package_path = "addons/sourcemod/extensions/auto.2.ep2";
dvander@2506
   228
			lib.source_path = "extensions/bintools";
dvander@2506
   229
			lib.binary_name = "bintools.ext";
dvander@2506
   230
			lib.vcproj_name = "bintools";
dvander@2506
   231
			lib.build_mode = BuildMode.BuildMode_Episode2;
dvander@2506
   232
			libraries.Add(lib);
pred@2504
   233
dvander@2506
   234
			lib = new Library();
dvander@2506
   235
			lib.package_path = "addons/sourcemod/extensions/auto.2.l4d";
dvander@2506
   236
			lib.source_path = "extensions/bintools";
dvander@2506
   237
			lib.binary_name = "bintools.ext";
dvander@2506
   238
			lib.vcproj_name = "bintools";
dvander@2506
   239
			lib.build_mode = BuildMode.BuildMode_Left4Dead;
dvander@2506
   240
			libraries.Add(lib);
pred@2504
   241
dvander@1548
   242
			lib = new Library();
dvander@1548
   243
			lib.package_path = "addons/sourcemod/extensions";
dvander@1548
   244
			lib.source_path = "extensions/mysql";
dvander@1548
   245
			lib.binary_name = "dbi.mysql.ext";
dvander@1548
   246
			lib.vcproj_name = "sm_mysql";
dvander@1548
   247
			libraries.Add(lib);
dvander@1548
   248
dvander@1564
   249
			lib = new Library();
dvander@1564
   250
			lib.package_path = "addons/sourcemod/extensions/auto.1.ep1";
dvander@1564
   251
			lib.source_path = "extensions/sdktools";
dvander@1564
   252
			lib.binary_name = "sdktools.ext";
dvander@1564
   253
			lib.vcproj_name = "sdktools";
dvander@1564
   254
			lib.build_mode = BuildMode.BuildMode_OldMetamod;
dvander@1564
   255
			libraries.Add(lib);
dvander@1564
   256
ds@2583
   257
            lib = new Library();
ds@2583
   258
            lib.package_path = "addons/sourcemod/extensions/auto.2.darkm";
ds@2583
   259
            lib.source_path = "extensions/sdktools";
ds@2583
   260
            lib.binary_name = "sdktools.ext";
ds@2583
   261
            lib.vcproj_name = "sdktools";
ds@2583
   262
            lib.build_mode = BuildMode.BuildMode_DarkMessiah;
ds@2583
   263
			lib.platform = BasePlatform.Platform_Windows;
ds@2583
   264
            libraries.Add(lib);
ds@2583
   265
dvander@1548
   266
			lib = new Library();
dvander@1564
   267
			lib.package_path = "addons/sourcemod/extensions/auto.2.ep2";
dvander@1564
   268
			lib.source_path = "extensions/sdktools";
dvander@1564
   269
			lib.binary_name = "sdktools.ext";
dvander@1564
   270
			lib.vcproj_name = "sdktools";
dvander@1564
   271
			lib.build_mode = BuildMode.BuildMode_Episode2;
dvander@1564
   272
			libraries.Add(lib);
dvander@957
   273
ds@2402
   274
			lib = new Library();
ds@2402
   275
			lib.package_path = "addons/sourcemod/extensions/auto.2.l4d";
ds@2402
   276
			lib.source_path = "extensions/sdktools";
ds@2402
   277
			lib.binary_name = "sdktools.ext";
ds@2402
   278
			lib.vcproj_name = "sdktools";
ds@2402
   279
			lib.build_mode = BuildMode.BuildMode_Left4Dead;
ds@2402
   280
			libraries.Add(lib);
ds@2400
   281
dvander@1548
   282
			lib = new Library();
dvander@1548
   283
			lib.package_path = "addons/sourcemod/extensions";
dvander@1548
   284
			lib.source_path = "extensions/sqlite";
dvander@1548
   285
			lib.binary_name = "dbi.sqlite.ext";
dvander@1548
   286
			lib.vcproj_name = "sm_sqlite";
dvander@1548
   287
			libraries.Add(lib);
dvander@1207
   288
dvander@1548
   289
			lib = new Library();
dvander@1567
   290
			lib.package_path = "addons/sourcemod/extensions/auto.1.ep1";
dvander@1567
   291
			lib.source_path = "extensions/cstrike";
dvander@1567
   292
			lib.binary_name = "game.cstrike.ext";
dvander@1567
   293
			lib.vcproj_name = "cstrike";
dvander@1567
   294
			lib.build_mode = BuildMode.BuildMode_OldMetamod;
dvander@1548
   295
			libraries.Add(lib);
dvander@1567
   296
dvander@1567
   297
			lib = new Library();
dvander@1548
   298
			lib.package_path = "addons/sourcemod/extensions";
dvander@1548
   299
			lib.source_path = "extensions/topmenus";
dvander@1548
   300
			lib.binary_name = "topmenus.ext";
dvander@1548
   301
			lib.vcproj_name = "topmenus";
dvander@1548
   302
			libraries.Add(lib);
dvander@1510
   303
dvander@1968
   304
			lib = new Library();
dvander@1968
   305
			lib.package_path = "addons/sourcemod/extensions/auto.2.ep2";
dvander@1968
   306
			lib.source_path = "extensions/tf2";
dvander@1968
   307
			lib.binary_name = "game.tf2.ext";
dvander@1968
   308
			lib.vcproj_name = "tf2";
dvander@1968
   309
			lib.build_mode = BuildMode.BuildMode_Episode2;
dvander@1968
   310
			libraries.Add(lib);
dvander@1968
   311
dvander@1968
   312
			lib = new Library();
dvander@1968
   313
			lib.package_path = "addons/sourcemod/extensions";
dvander@1968
   314
			lib.source_path = "extensions/regex";
dvander@1968
   315
			lib.binary_name = "regex.ext";
dvander@1968
   316
			lib.vcproj_name = "regex";
dvander@1968
   317
			libraries.Add(lib);
dvander@1968
   318
pred@2009
   319
			lib = new Library();
pred@2009
   320
			lib.package_path = "addons/sourcemod/extensions";
pred@2009
   321
			lib.source_path = "extensions/clientprefs";
pred@2009
   322
			lib.binary_name = "clientprefs.ext";
pred@2009
   323
			lib.vcproj_name = "clientprefs";
pred@2009
   324
			libraries.Add(lib);
pred@2009
   325
dvander@2521
   326
			lib = new Library();
dvander@2521
   327
			lib.package_path = "addons/sourcemod/extensions";
dvander@2521
   328
			lib.source_path = "extensions/curl";
dvander@2521
   329
			lib.binary_name = "webternet.ext";
dvander@2521
   330
			lib.vcproj_name = "curl";
dvander@2521
   331
			libraries.Add(lib);
dvander@2521
   332
dvander@2632
   333
			lib = new Library();
dvander@2632
   334
			lib.package_path = "addons/sourcemod/extensions";
dvander@2632
   335
			lib.source_path = "extensions/updater";
dvander@2632
   336
			lib.binary_name = "updater.ext";
dvander@2632
   337
			lib.vcproj_name = "updater";
dvander@2632
   338
			libraries.Add(lib);
dvander@2632
   339
dvander@1548
   340
			return (Library [])libraries.ToArray(typeof(Library));
dvander@388
   341
		}
dvander@852
   342
dvander@852
   343
		/**
dvander@852
   344
		 * Called to build plugins
dvander@852
   345
		 */
dvander@852
   346
		public override Plugin [] GetPlugins()
dvander@852
   347
		{
dvander@1548
   348
			if (plugins != null)
dvander@1548
   349
			{
dvander@1548
   350
				return (Plugin [])plugins.ToArray(typeof(Plugin));
dvander@1548
   351
			}
dvander@1548
   352
dvander@1548
   353
			plugins = new ArrayList();
dvander@852
   354
dvander@1548
   355
			plugins.Add(new Plugin("admin-flatfile", "admin-flatfile"));
dvander@1548
   356
			plugins.Add(new Plugin("adminhelp"));
dvander@1548
   357
			plugins.Add(new Plugin("antiflood"));
dvander@1548
   358
			plugins.Add(new Plugin("basecommands"));
dvander@1548
   359
			plugins.Add(new Plugin("reservedslots"));
dvander@1548
   360
			plugins.Add(new Plugin("basetriggers"));
dvander@1548
   361
			plugins.Add(new Plugin("nextmap"));
dvander@1548
   362
			plugins.Add(new Plugin("basechat"));
dvander@1890
   363
			plugins.Add(new Plugin("funcommands"));
dvander@1548
   364
			plugins.Add(new Plugin("basevotes"));
dvander@1890
   365
			plugins.Add(new Plugin("funvotes"));
dvander@1548
   366
			plugins.Add(new Plugin("admin-sql-prefetch", true));
dvander@1548
   367
			plugins.Add(new Plugin("admin-sql-threaded", true));
dvander@1548
   368
			plugins.Add(new Plugin("sql-admin-manager", true));
dvander@1548
   369
			plugins.Add(new Plugin("basebans"));
dvander@1548
   370
			plugins.Add(new Plugin("mapchooser", true));
dvander@1548
   371
			plugins.Add(new Plugin("basecomm"));
dvander@1548
   372
			plugins.Add(new Plugin("randomcycle", true));
dvander@1548
   373
			plugins.Add(new Plugin("rockthevote", true));
dvander@1598
   374
			plugins.Add(new Plugin("adminmenu"));
dvander@1804
   375
			plugins.Add(new Plugin("playercommands"));
pred@2050
   376
			plugins.Add(new Plugin("clientprefs"));
dvander@2149
   377
			plugins.Add(new Plugin("nominations", true));
dvander@2502
   378
			plugins.Add(new Plugin("sounds"));
dvander@852
   379
dvander@1548
   380
			return (Plugin [])plugins.ToArray(typeof(Plugin));
dvander@852
   381
		}
dvander@388
   382
	}
dvander@388
   383
}
dvander@392
   384