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