mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-27 07:15:37 +03:00
c387cdeff8
Only dlsym64 is completely gone. The dlsym binary must remain to be used by the builder. It just won't appear in the Linux download pacakages anymore.
166 lines
4.3 KiB
C#
Executable File
166 lines
4.3 KiB
C#
Executable File
using System;
|
|
using System.IO;
|
|
|
|
namespace AMXXRelease
|
|
{
|
|
//AMX Mod X core distribution
|
|
public class CoreMod : AMod
|
|
{
|
|
public CoreMod()
|
|
{
|
|
AddModules();
|
|
AddPlugins();
|
|
}
|
|
|
|
public override sealed string GetName()
|
|
{
|
|
return "base";
|
|
}
|
|
|
|
public override sealed string GetPluginDir()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
public override sealed string GetBaseName()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
//annoyingly complicated file exclusion filter
|
|
public override sealed bool ExcludeCopy(string file)
|
|
{
|
|
if ( ((file.IndexOf(".so")!=-1) || (ABuilder.GetFileName(file).CompareTo("amxxpc")==0))
|
|
&& (Releaser.IsWindows || Releaser.IsOSX) )
|
|
return true;
|
|
if ( ((file.IndexOf(".dylib")!=-1) || (ABuilder.GetFileName(file).CompareTo("amxxpc_osx")==0))
|
|
&& (!Releaser.IsOSX) )
|
|
return true;
|
|
if ( (file.IndexOf(".sh")!=-1) && Releaser.IsWindows )
|
|
return true;
|
|
if ( ((file.IndexOf(".exe")!=-1) || (file.IndexOf(".dll")!=-1))
|
|
&& (!Releaser.IsWindows) )
|
|
return true;
|
|
if (file.IndexOf("dlsym")!=-1)
|
|
return true;
|
|
if (ABuilder.GetFileName(file).CompareTo("svn_version.tpl") == 0)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
return base.ExcludeCopy(file);
|
|
}
|
|
|
|
|
|
public override sealed bool CopyExtraFiles(ABuilder ab, string basedir, string source)
|
|
{
|
|
//Create directory structures
|
|
string datadir = basedir + "\\data";
|
|
|
|
if (!Directory.Exists(ABuilder.PropSlashes(datadir)))
|
|
ab.CreateDir(ABuilder.PropSlashes(datadir));
|
|
|
|
File.Copy(ABuilder.PropSlashes(source + "\\dlls\\geoip\\GeoIP.dat"),
|
|
ABuilder.PropSlashes(datadir + "\\GeoIP.dat"),
|
|
true);
|
|
|
|
ABuilder.CopyNormal(ab,
|
|
ABuilder.PropSlashes(source + "\\plugins\\lang"),
|
|
ABuilder.PropSlashes(datadir + "\\lang")
|
|
);
|
|
|
|
if (!Directory.Exists(ABuilder.PropSlashes(basedir + "\\logs")))
|
|
ab.CreateDir(ABuilder.PropSlashes(basedir + "\\logs"));
|
|
|
|
ABuilder.CopyNormal(ab,
|
|
ABuilder.PropSlashes(source + "\\plugins\\include"),
|
|
ABuilder.PropSlashes(basedir + "\\scripting\\include"));
|
|
|
|
ABuilder.CopyNormal(ab,
|
|
ABuilder.PropSlashes(source + "\\plugins\\include\\amxmod_compat"),
|
|
ABuilder.PropSlashes(basedir + "\\scripting\\include\\amxmod_compat"));
|
|
|
|
ABuilder.CopyNormal(ab,
|
|
ABuilder.PropSlashes(source + "\\plugins\\amxmod_compat"),
|
|
ABuilder.PropSlashes(basedir + "\\scripting\\amxmod_compat"));
|
|
|
|
ABuilder.CopyNormal(ab,
|
|
ABuilder.PropSlashes(source + "\\plugins\\testsuite"),
|
|
ABuilder.PropSlashes(basedir + "\\scripting\\testsuite"));
|
|
|
|
return true;
|
|
}
|
|
|
|
private void AddPlugins()
|
|
{
|
|
AddPlugin("admin");
|
|
|
|
Plugin admin_sql = new Plugin("admin_sql");
|
|
admin_sql.source = "admin";
|
|
admin_sql.options = "USING_SQL=1 -oadmin_sql.amx";
|
|
m_Plugins.Add(admin_sql);
|
|
|
|
Plugin bcompat = new Plugin("amxmod_compat");
|
|
bcompat.source = "amxmod_compat/amxmod_compat";
|
|
m_Plugins.Add(bcompat);
|
|
|
|
AddPlugin("adminchat");
|
|
AddPlugin("admincmd");
|
|
AddPlugin("adminhelp");
|
|
AddPlugin("adminslots");
|
|
AddPlugin("adminvote");
|
|
AddPlugin("antiflood");
|
|
AddPlugin("imessage");
|
|
AddPlugin("mapchooser");
|
|
AddPlugin("mapsmenu");
|
|
AddPlugin("menufront");
|
|
AddPlugin("multilingual");
|
|
AddPlugin("nextmap");
|
|
AddPlugin("pausecfg");
|
|
AddPlugin("plmenu");
|
|
AddPlugin("scrollmsg");
|
|
AddPlugin("statscfg");
|
|
AddPlugin("telemenu");
|
|
AddPlugin("timeleft");
|
|
AddPlugin("cmdmenu");
|
|
AddPlugin("pluginmenu");
|
|
}
|
|
|
|
private void AddModules()
|
|
{
|
|
Module core = new Module();
|
|
|
|
core.sourcedir = "amxmodx";
|
|
core.vcproj = "amxmodx_mm";
|
|
core.build = "JITRelease";
|
|
core.projname = "amxmodx_mm";
|
|
core.outdir = "dlls";
|
|
|
|
Module mysqlx = new Module("mysqlx");
|
|
mysqlx.projname = "mysql_amxx";
|
|
|
|
Module sqlitex = new Module("sqlite");
|
|
Module engine = new Module("engine");
|
|
Module fun = new Module("fun");
|
|
Module geoip = new Module("geoip");
|
|
Module fakemeta = new Module("fakemeta");
|
|
Module sockets = new Module("sockets");
|
|
Module regex = new Module("regex");
|
|
Module nvault = new Module("nvault");
|
|
Module sammich = new Module("hamsandwich");
|
|
|
|
m_Modules.Add(core);
|
|
m_Modules.Add(mysqlx);
|
|
m_Modules.Add(engine);
|
|
m_Modules.Add(fun);
|
|
m_Modules.Add(geoip);
|
|
m_Modules.Add(fakemeta);
|
|
m_Modules.Add(sockets);
|
|
m_Modules.Add(regex);
|
|
m_Modules.Add(nvault);
|
|
m_Modules.Add(sqlitex);
|
|
m_Modules.Add(sammich);
|
|
}
|
|
}
|
|
}
|