Merge pull request #1 from alliedmodders/ambuild

Port AMX Mod X to AMBuild 2.

Former-commit-id: caa26e5133dc97557b7d7e111de73c1dcac7fe94
This commit is contained in:
David Anderson 2014-02-08 22:16:32 -08:00
commit d46d657190
137 changed files with 1817 additions and 2318 deletions

349
AMBuildScript Normal file
View File

@ -0,0 +1,349 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python :
import os
class AMXXConfig(object):
def __init__(self):
self.binaries = []
self.modules = []
self.plugins = {}
self.libpc300 = None
self.amxxpc = None
self.metamod_path = None
self.hlsdk_path = None
self.mysql_path = None
self.generated_headers = None
self.csx_app = None
def detectProductVersion(self):
builder.AddConfigureFile('product.version')
builder.AddConfigureFile('.git/HEAD')
# For OS X dylib versioning
import re
with open(os.path.join(builder.sourcePath, 'product.version'), 'r') as fp:
productContents = fp.read()
m = re.match('(\d+)\.(\d+)\.(\d+).*', productContents)
if m == None:
self.productVersion = '1.0.0'
else:
major, minor, release = m.groups()
self.productVersion = '{0}.{1}.{2}'.format(major, minor, release)
def detectMetamod(self):
if len(builder.options.metamod_path):
self.metamod_path = os.path.join(builder.originalCwd, builder.options.metamod_path)
if not os.path.exists(os.path.join(self.metamod_path, 'metamod')):
raise Exception('Metamod path does not exist: {0}'.format(builder.options.metamod_path))
else:
try_paths = [
os.path.join(builder.sourcePath, '..', 'metamod'),
os.path.join(builder.sourcePath, '..', 'metamod-am'),
]
for try_path in try_paths:
if os.path.exists(os.path.join(try_path, 'metamod')):
self.metamod_path = os.path.normpath(try_path)
break
if not self.metamod_path:
raise Exception('Could not find the source code to Metamod! Try passing --metamod to configure.py.')
def detectHlsdk(self):
if len(builder.options.hlsdk_path):
self.hlsdk_path = os.path.join(builder.originalCwd, builder.options.hlsdk_path)
if not os.path.exists(self.hlsdk_path):
raise Exception('Metamod path does not exist: {0}'.format(builder.options.hlsdk_path))
else:
try_paths = [
os.path.join(builder.sourcePath, '..', 'hlsdk'),
]
for try_path in try_paths:
if os.path.exists(try_path):
self.hlsdk_path = os.path.normpath(try_path)
break
if not self.hlsdk_path:
raise Exception('Could not find the HLSDK! Try passing --hlsdk to configure.py.')
def detectMysql(self):
if builder.options.disable_mysql:
return
if len(builder.options.mysql_path):
self.mysql_path = os.path.join(builder.originalCwd, builder.options.mysql_path)
if not os.path.exists(self.mysql_path):
raise Exception('Metamod path does not exist: {0}'.format(builder.options.mysql_path))
else:
try_paths = [
os.path.join(builder.sourcePath, '..', 'mysql-5.0'),
]
for try_path in try_paths:
if os.path.exists(try_path):
self.mysql_path = os.path.normpath(try_path)
break
if not self.mysql_path:
raise Exception('Could not find MySQL! Try passing --mysql to configure.py.')
def configure(self):
builder.AddConfigureFile('pushbuild.txt')
cfg = builder.DetectCompilers()
cxx = cfg.cxx
if cxx.behavior == 'gcc':
cfg.cflags += [
'-pipe',
'-fno-strict-aliasing',
'-Wall',
'-Werror',
'-Wno-uninitialized',
'-Wno-unused',
'-Wno-switch',
'-m32',
]
cfg.cxxflags += [
'-Wno-invalid-offsetof',
]
cfg.linkflags += ['-m32']
have_gcc = cxx.name == 'gcc'
have_clang = cxx.name == 'clang'
if have_clang or (have_gcc and cxx.majorVersion >= 4):
cfg.cflags += ['-fvisibility=hidden']
cfg.cxxflags += ['-fvisibility-inlines-hidden']
if (have_gcc and cxx.minorVersion >= 7) or (have_clang and cxx.majorVersion >= 3):
cfg.cxxflags += ['-Wno-delete-non-virtual-dtor']
if have_gcc:
cfg.cflags += ['-Wno-parentheses']
elif have_clang:
cfg.cflags += ['-Wno-logical-op-parentheses']
cfg.cxxflags += [
'-fno-exceptions',
'-fno-rtti',
]
elif cxx.name == 'msvc':
if builder.options.debug == '1':
cfg.cflags += ['/MTd']
cfg.linkflags += ['/NODEFAULTLIB:libcmt']
else:
cfg.cflags += ['/MT']
cfg.defines += [
'_CRT_SECURE_NO_DEPRECATE',
'_CRT_SECURE_NO_WARNINGS',
'_CRT_NONSTDC_NO_DEPRECATE',
'_ITERATOR_DEBUG_LEVEL=0',
]
cfg.cflags += [
'/W3',
]
cfg.cxxflags += [
'/EHsc',
'/GR-',
'/TP',
]
cfg.linkflags += [
'/MACHINE:X86',
'/SUBSYSTEM:WINDOWS',
'kernel32.lib',
'user32.lib',
'gdi32.lib',
'winspool.lib',
'comdlg32.lib',
'advapi32.lib',
'shell32.lib',
'ole32.lib',
'oleaut32.lib',
'uuid.lib',
'odbc32.lib',
'odbccp32.lib',
]
# Optimization
if builder.options.opt == '1':
cfg.defines += ['NDEBUG']
if cxx.behavior == 'gcc':
cfg.cflags += ['-O2']
elif cxx.behavior == 'msvc':
cfg.cflags += ['/Ox']
cfg.linkflags += ['/OPT:ICF', '/OPT:REF']
# Debugging
if builder.options.debug == '1':
cfg.defines += ['DEBUG', '_DEBUG']
if cxx.behavior == 'msvc':
cfg.cflags += ['/Od', '/RTC1']
# This needs to be after our optimization flags which could otherwise disable it.
if cxx.name == 'msvc':
# Don't omit the frame pointer.
cfg.cflags += ['/Oy-']
# Platform-specifics
if builder.target_platform == 'linux':
cfg.defines += ['_LINUX', 'POSIX', 'LINUX']
cfg.postlink += ['-ldl']
if cxx.name == 'gcc':
cfg.postlink += ['-static-libgcc']
elif cxx.name == 'clang':
cfg.postlink += ['-lgcc_eh']
elif builder.target_platform == 'mac':
cfg.defines += ['OSX', '_OSX', 'POSIX']
cfg.postlink += [
'-mmacosx-version-min=10.5',
'-arch', 'i386',
'-lstdc++',
'-stdlib=libstdc++',
]
cfg.cxxflags += ['-stdlib=libstdc++']
elif builder.target_platform == 'windows':
cfg.defines += ['WIN32', '_WINDOWS']
# Finish up.
cfg.defines += [
'AMX_NOPROPLIST',
'PAWN_CELL_SIZE=32',
'AMBUILD',
]
cfg.includes += [os.path.join(builder.buildPath, 'includes')]
return
#
# Low-level compiler and binary construction.
#
def MMCompiler(self, context):
compiler = context.compiler.clone()
compiler.cxxincludes += [
os.path.join(self.metamod_path, 'metamod'),
os.path.join(self.hlsdk_path, 'common'),
os.path.join(self.hlsdk_path, 'dlls'),
os.path.join(self.hlsdk_path, 'engine'),
os.path.join(self.hlsdk_path, 'game_shared'),
os.path.join(self.hlsdk_path, 'public'),
os.path.join(self.hlsdk_path, 'pm_shared'),
]
return compiler
def LibraryBuilder(self, context, compiler, name):
binary = compiler.Library(name)
binary.compiler.cxxincludes += [os.path.join(context.currentSourcePath)]
if builder.target_platform == 'windows':
binary.compiler.rcdefines += [
'BINARY_NAME="{0}"'.format(binary.outputFile),
'AMBUILD',
'RC_COMPILE',
]
elif builder.target_platform == 'mac':
binary.compiler.postlink += [
'-compatibility_version', '1.0.0',
'-current_version', self.productVersion
]
#binary.compiler.linkflags += [self.versionlib]
binary.compiler.sourcedeps += AMXX.generated_headers
return binary
def ModuleBuilder(self, context, compiler, name):
compiler.cxxincludes += [
os.path.join(context.currentSourcePath, 'sdk'),
]
if builder.target_platform == 'mac' or builder.target_platform == 'windows':
name = name + '_amxx'
elif builder.target_platform == 'linux':
name = name + '_amxx_i386'
return self.LibraryBuilder(context, compiler, name)
def ProgramBuilder(self, context, compiler, name):
binary = compiler.Program(name)
binary.compiler.cxxincludes += [os.path.join(context.currentSourcePath)]
if builder.target_platform == 'windows':
binary.compiler.rcdefines += [
'BINARY_NAME="{0}"'.format(binary.outputFile),
'AMBUILD',
'RC_COMPILE',
]
binary.compiler.sourcedeps += AMXX.generated_headers
return binary
#
# High level job construction for libraries, metamod plugins, modules, and
# executables.
#
def Library(self, context, name):
compiler = context.compiler.clone()
return self.LibraryBuilder(context, compiler, name)
def MetaPlugin(self, context, name):
compiler = self.MMCompiler(context)
if builder.target_platform == 'mac' or builder.target_platform == 'windows':
name = name + '_mm'
elif builder.target_platform == 'linux':
name = name + '_mm_i386'
return self.LibraryBuilder(context, compiler, name)
def Module(self, context, name):
compiler = context.compiler.clone()
return self.ModuleBuilder(context, compiler, name)
def MetaModule(self, context, name):
compiler = self.MMCompiler(context)
return self.ModuleBuilder(context, compiler, name)
def Program(self, context, name):
compiler = context.compiler.clone()
return self.ProgramBuilder(context, compiler, name)
AMXX = AMXXConfig()
AMXX.detectProductVersion()
AMXX.detectMetamod()
AMXX.detectHlsdk()
AMXX.detectMysql()
AMXX.configure()
AMXX.generated_headers = builder.RunScript(
'support/Versioning',
{ 'AMXX': AMXX }
)
builder.RunBuildScripts(
[
'amxmodx/AMBuilder',
'compiler/amxxpc/AMBuilder',
'compiler/libpc300/AMBuilder',
'dlls/cstrike/cstrike/AMBuilder',
'dlls/cstrike/csx/AMBuilder',
'dlls/dod/dodfun/AMBuilder',
'dlls/dod/dodx/AMBuilder',
'dlls/engine/AMBuilder',
'dlls/fakemeta/AMBuilder',
'dlls/fun/AMBuilder',
'dlls/geoip/AMBuilder',
'dlls/hamsandwich/AMBuilder',
'dlls/mysqlx/AMBuilder',
'dlls/ns/AMBuilder',
'dlls/nvault/AMBuilder',
'dlls/regex/AMBuilder',
'dlls/sockets/AMBuilder',
'dlls/sqlite/AMBuilder',
'dlls/tfcx/AMBuilder',
'dlls/ts/tsfun/AMBuilder',
'dlls/ts/tsx/AMBuilder',
'plugins/AMBuilder',
],
{
'AMXX': AMXX
}
)
# The csstats.dat reader is Windows-only.
if builder.target_platform == 'windows':
builder.RunScript('dlls/cstrike/csx/WinCSX/AMBuilder', { 'AMXX': AMXX })
# Finally, do packaging.
builder.RunScript('support/PackageScript', { 'AMXX': AMXX })

100
amxmodx/AMBuilder Normal file
View File

@ -0,0 +1,100 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaPlugin(builder, 'amxmodx')
binary.compiler.defines += [
'JIT',
'ASM32',
'HAVE_STDINT_H',
]
if builder.target_platform == 'mac':
jit_objects = [
binary.Dep('JIT/amxexecn-darwin.o'),
binary.Dep('JIT/amxjitsn-darwin.o'),
binary.Dep('JIT/natives-darwin-x86.o'),
binary.Dep('JIT/helpers-darwin-x86.o'),
]
elif builder.target_platform == 'linux':
jit_objects = [
binary.Dep('JIT/amxexecn.o'),
binary.Dep('JIT/amxjitsn.o'),
binary.Dep('JIT/natives-x86.o'),
binary.Dep('JIT/helpers-x86.o'),
]
elif builder.target_platform == 'windows':
jit_objects = [
binary.Dep('JIT/amxexecn.obj'),
binary.Dep('JIT/amxjitsn.obj'),
binary.Dep('JIT/helpers-x86.obj'),
binary.Dep('JIT/natives-x86.obj'),
]
binary.compiler.linkflags += jit_objects
if builder.target_platform == 'linux':
binary.compiler.linkflags += [binary.Dep('zlib/libz.a')]
elif builder.target_platform == 'mac':
binary.compiler.linkflags += [binary.Dep('zlib/libz-darwin.a')]
elif builder.target_platform == 'windows':
binary.compiler.linkflags += [binary.Dep('zlib\\zlib.lib')]
if builder.target_platform == 'mac':
binary.compiler.postlink += [
'-Wl,-read_only_relocs,suppress'
]
binary.sources = [
'meta_api.cpp',
'CFile.cpp',
'CVault.cpp',
'vault.cpp',
'float.cpp',
'file.cpp',
'modules.cpp',
'CMisc.cpp',
'CTask.cpp',
'string.cpp',
'amxmodx.cpp',
'CEvent.cpp',
'CCmd.cpp',
'CLogEvent.cpp',
'srvcmd.cpp',
'strptime.cpp',
'amxcore.cpp',
'amxtime.cpp',
'power.cpp',
'amxxlog.cpp',
'fakemeta.cpp',
'amxxfile.cpp',
'CLang.cpp',
'md5.cpp',
'emsg.cpp',
'CForward.cpp',
'CPlugin.cpp',
'CModule.cpp',
'CMenu.cpp',
'util.cpp',
'amx.cpp',
'amxdbg.cpp',
'natives.cpp',
'newmenus.cpp',
'debugger.cpp',
'optimizer.cpp',
'format.cpp',
'messages.cpp',
'libraries.cpp',
'vector.cpp',
'sorting.cpp',
'amxmod_compat.cpp',
'nongpl_matches.cpp',
'CFlagManager.cpp',
'datastructs.cpp',
'trie_natives.cpp',
]
if builder.target_platform == 'windows':
binary.sources += ['version.rc']
AMXX.binaries += [builder.Add(binary)]

View File

@ -39,7 +39,7 @@
#include "CFlagManager.h"
#include "nongpl_matches.h"
#include "format.h"
#include "svn_version.h"
#include <amxmodx_version.h>
extern CFlagManager FlagMan;
CVector<CAdminData *> DynamicAdmins;

View File

@ -44,7 +44,7 @@
#define vsnprintf _vsnprintf
#endif
#include "svn_version.h"
#include <amxmodx_version.h>
CLog::CLog()
{

View File

@ -50,7 +50,7 @@
#include "datastructs.h"
#include "CFlagManager.h"
#include "svn_version.h"
#include <amxmodx_version.h>
#include "trie_natives.h"
plugin_info_t Plugin_info =

View File

@ -30,7 +30,7 @@
*/
#include "amxmodx.h"
#include "svn_version.h"
#include <amxmodx_version.h>
void amx_command()
{

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
#define SVN_VERSION_STRING "1.8.2-dev"
#define SVN_VERSION_DWORD 1,8,2,0
#define SVN_VERSION_PRODUCT "1.8.2"
#define SVN_BUILD_ID SVN_VERSION_STRING " 9:7ff502465eae"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
#define SVN_VERSION_STRING "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#define SVN_VERSION_DWORD $PMAJOR$,$PMINOR$,$PREVISION$,0
#define SVN_VERSION_PRODUCT "$PMAJOR$.$PMINOR$.$PREVISION$"
#define SVN_BUILD_ID SVN_VERSION_STRING " $BUILD_ID$"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -6,7 +6,13 @@
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION_DWORD 1, 8, 3, 0
# define SVN_VERSION_STRING "dev-local"
# define SVN_VERSION SVN_VERSION_STRING
#endif
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
@ -49,7 +55,7 @@ BEGIN
VALUE "LegalCopyright", "Copyright (c) 2004-2007, AMX Mod X Dev Team"
VALUE "OriginalFilename", "amxmodx_mm.dll"
VALUE "ProductName", "AMX Mod X"
VALUE "ProductVersion", SVN_VERSION_PRODUCT
VALUE "ProductVersion", SVN_VERSION
END
END
BLOCK "VarFileInfo"

35
compiler/amxxpc/AMBuilder Normal file
View File

@ -0,0 +1,35 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.Program(builder, 'amxxpc')
binary.compiler.defines += [
'AMX_ANSIONLY',
]
if builder.target_platform != 'windows':
binary.compiler.cxxflags.remove('-fno-exceptions')
if builder.target_platform == 'linux':
binary.compiler.postlink += [
'-ldl',
binary.Dep('libz.a'),
]
elif builder.target_platform == 'mac':
binary.compiler.postlink += [binary.Dep('libz-darwin.a')]
elif builder.target_platform == 'windows':
binary.compiler.defines += ['_MBCS']
binary.compiler.linkflags += [binary.Dep('zlib.lib')]
binary.compiler.linkflags.remove('/SUBSYSTEM:WINDOWS')
binary.compiler.linkflags.append('/SUBSYSTEM:CONSOLE')
binary.sources = [
'amx.cpp',
'amxxpc.cpp',
'Binary.cpp',
]
if builder.target_platform == 'windows':
binary.sources += ['amxxpc1.rc']
AMXX.amxxpc = builder.Add(binary)

View File

@ -775,7 +775,7 @@ static void expand(unsigned char *code, long codesize, long memsize)
do {
codesize--;
/* no input byte should be shifted out completely */
assert(shift<8*sizeof(cell));
assert(size_t(shift)<8*sizeof(cell));
/* we work from the end of a sequence backwards; the final code in
* a sequence may not have the continuation bit set */
assert(shift>0 || (code[(size_t)codesize] & 0x80)==0);

View File

@ -69,7 +69,7 @@ int main(int argc, char **argv)
exit(0);
}
pc_printf("Welcome to the AMX Mod X %s Compiler.\n", VERSION_STRING);
pc_printf("Welcome to the AMX Mod X %s Compiler.\n", SVN_VERSION);
pc_printf("Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team\n\n");
if (argc < 2)

View File

@ -1,7 +1,7 @@
#ifndef _AMXXSC_INCLUDE_H
#define _AMXXSC_INCLUDE_H
#define VERSION_STRING "1.8.1-300"
#include <amxmodx_version.h>
#define MAGIC_HEADER2 0x414D5858
#define MAGIC_VERSION 0x0300

View File

@ -0,0 +1,41 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.Library(builder, 'amxxpc32')
binary.compiler.includes += [builder.currentSourcePath]
if builder.target_platform in ['mac', 'linux']:
binary.compiler.defines += ['ENABLE_BINRELOC']
binary.compiler.postlink += ['-lm', '-lpthread']
binary.compiler.defines += [
'NO_MAIN',
'PAWNC_DLL',
'HAVE_STDINT_H',
]
binary.sources = [
'sc1.c',
'sc2.c',
'sc3.c',
'sc4.c',
'sc5.c',
'sc6.c',
'sc7.c',
'scvars.c',
'scmemfil.c',
'scstate.c',
'sclist.c',
'sci18n.c',
'scexpand.c',
'pawncc.c',
'libpawnc.c',
'prefix.c',
'memfile.c',
]
if builder.target_platform == 'windows':
binary.sources+= ['libpawnc.rc']
AMXX.libpc300 = builder.Add(binary)

View File

@ -763,6 +763,7 @@ SC_VDECL int sc_needsemicolon;/* semicolon required to terminate expressions? */
SC_VDECL int sc_dataalign; /* data alignment value */
SC_VDECL int sc_alignnext; /* must frame of the next function be aligned? */
SC_VDECL int pc_docexpr; /* must expression be attached to documentation comment? */
SC_VDECL int sc_showincludes; /* show include files? */
SC_VDECL int curseg; /* 1 if currently parsing CODE, 2 if parsing DATA */
SC_VDECL cell sc_stksize; /* stack size */
SC_VDECL cell sc_amxlimit; /* abstract machine size limit */

View File

@ -487,7 +487,9 @@ int pc_compile(int argc, char *argv[])
tname=NULL;
sname=NULL;
#else
tname=tempnam(NULL,"pawn");
char *buffer = strdup(P_tmpdir "/pawn.XXXXXX");
close(mkstemp(buffer));
tname=buffer;
#endif
ftmp=(FILE*)pc_createsrc(tname);
for (fidx=0; (sname=get_sourcefile(fidx))!=NULL; fidx++) {
@ -1013,6 +1015,9 @@ static void parseoptions(int argc,char **argv,char *oname,char *ename,char *pnam
hwndFinish=(HWND)0;
break;
#endif
case 'h':
sc_showincludes = 1;
break;
case 'i':
strncpy(str,option_value(ptr),sizeof str); /* set name of include directory */
str[sizeof(str)-1]='\0';
@ -1295,7 +1300,8 @@ static void setconfig(char *root)
insert_path(path);
/* same for the codepage root */
#if !defined NO_CODEPAGE
*ptr='\0';
if (ptr)
*ptr='\0';
if (!cp_path(path,"codepage"))
error(109,path); /* codepage path */
#endif

View File

@ -142,6 +142,9 @@ static char *extensions[] = { ".inc", ".p", ".pawn" };
*ext='\0'; /* restore filename */
return FALSE;
} /* if */
if (sc_showincludes && sc_status==statFIRST) {
fprintf(stdout, "Note: including file: %s\n", name);
}
PUSHSTK_P(inpf);
PUSHSTK_P(inpfname); /* pointer to current file name */
PUSHSTK_P(curlibrary);

View File

@ -85,6 +85,7 @@ SC_VDEFINE int sc_rationaltag=0; /* tag for rational numbers */
SC_VDEFINE int rational_digits=0; /* number of fractional digits */
SC_VDEFINE int sc_allowproccall=0; /* allow/detect tagnames in lex() */
SC_VDEFINE short sc_is_utf8=FALSE; /* is this source file in UTF-8 encoding */
SC_VDEFINE int sc_showincludes=0; /* show include files */
SC_VDEFINE constvalue sc_automaton_tab = { NULL, "", 0, 0}; /* automaton table */
SC_VDEFINE constvalue sc_state_tab = { NULL, "", 0, 0}; /* state table */

31
configure.py Normal file
View File

@ -0,0 +1,31 @@
# vim: set ts=2 sw=2 tw=99 noet:
import sys
try:
from ambuild2 import run
except:
try:
import ambuild
sys.stderr.write('It looks like you have AMBuild 1 installed, but this project uses AMBuild 2.\n')
sys.stderr.write('Upgrade to the latest version of AMBuild to continue.\n')
except:
sys.stderr.write('AMBuild must be installed to build this project.\n')
sys.stderr.write('http://www.alliedmods.net/ambuild\n')
sys.exit(1)
run = run.PrepareBuild(sourcePath=sys.path[0])
run.default_build_folder = 'obj-' + run.target_platform
run.options.add_option('--enable-debug', action='store_const', const='1', dest='debug',
help='Enable debugging symbols')
run.options.add_option('--enable-optimize', action='store_const', const='1', dest='opt',
help='Enable optimization')
run.options.add_option('--no-mysql', action='store_true', default=False, dest='disable_mysql',
help='Disable building MySQL extension')
run.options.add_option('--breakpad-dump', action='store_true', dest='breakpad_dump',
default=False, help='Dump and upload breakpad symbols')
run.options.add_option('--metamod', type='string', dest='metamod_path', default='',
help='Path to Metamod source code')
run.options.add_option('--hlsdk', type='string', dest='hlsdk_path', default='',
help='Path to the HLSDK')
run.options.add_option('--mysql', type='string', dest='mysql_path', default='',
help='Path to MySQL')
run.Configure()

View File

@ -0,0 +1,13 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'cstrike')
binary.sources = [
'sdk/amxxmodule.cpp',
'CstrikePlayer.cpp',
'cstrike.cpp',
'CstrikeHacks.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "CStrike"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -0,0 +1,15 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'csx')
binary.sources = [
'sdk/amxxmodule.cpp',
'CRank.cpp',
'CMisc.cpp',
'meta_api.cpp',
'rank.cpp',
'usermsg.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -0,0 +1,22 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.Program(builder, 'WinCSX')
binary.compiler.includes += [
os.path.join(builder.currentSourcePath, 'resources'),
]
binary.compiler.defines += ['_MBCS']
binary.compiler.linkflags += [
'comctl32.lib',
]
binary.sources = [
'CRank.cpp',
'WinCSX.cpp',
'stdafx.cpp',
'resources/WinCSX.rc',
]
AMXX.csx_app = builder.Add(binary)

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "CSX"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

16
dlls/dod/dodfun/AMBuilder Normal file
View File

@ -0,0 +1,16 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'dodfun')
binary.sources = [
'sdk/amxxmodule.cpp',
'NBase.cpp',
'CMisc.cpp',
'NPD.cpp',
'Utils.cpp',
'usermsg.cpp',
'moduleconfig.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "DoD Fun"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

17
dlls/dod/dodx/AMBuilder Normal file
View File

@ -0,0 +1,17 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'dodx')
binary.sources = [
'sdk/amxxmodule.cpp',
'CRank.cpp',
'CMisc.cpp',
'NBase.cpp',
'NRank.cpp',
'usermsg.cpp',
'Utils.cpp',
'moduleconfig.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "DoDX"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

16
dlls/engine/AMBuilder Normal file
View File

@ -0,0 +1,16 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'engine')
binary.sources = [
'sdk/amxxmodule.cpp',
'amxxapi.cpp',
'engine.cpp',
'entity.cpp',
'globals.cpp',
'forwards.cpp',
'amxmod_compat.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "Engine"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

20
dlls/fakemeta/AMBuilder Normal file
View File

@ -0,0 +1,20 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'fakemeta')
binary.sources = [
'sdk/amxxmodule.cpp',
'dllfunc.cpp',
'engfunc.cpp',
'fakemeta_amxx.cpp',
'pdata.cpp',
'forward.cpp',
'fm_tr.cpp',
'pev.cpp',
'glb.cpp',
'fm_tr2.cpp',
'misc.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "FakeMeta"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

11
dlls/fun/AMBuilder Normal file
View File

@ -0,0 +1,11 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'fun')
binary.sources = [
'sdk/amxxmodule.cpp',
'fun.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "Fun"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

15
dlls/geoip/AMBuilder Normal file
View File

@ -0,0 +1,15 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.Module(builder, 'geoip')
binary.sources = [
'sdk/amxxmodule.cpp',
'GeoIP.c',
'geoip_amxx.cpp',
]
if builder.target_platform == 'windows':
binary.compiler.postlink += ['ws2_32.lib']
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "GeoIP"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -0,0 +1,19 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'hamsandwich')
binary.sources = [
'sdk/amxxmodule.cpp',
'amxx_api.cpp',
'config_parser.cpp',
'hook_callbacks.cpp',
'hook_native.cpp',
'srvcmd.cpp',
'call_funcs.cpp',
'hook_create.cpp',
'DataHandler.cpp',
'pdata.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "../svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "Ham Sandwich"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

48
dlls/mysqlx/AMBuilder Normal file
View File

@ -0,0 +1,48 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
if AMXX.mysql_path:
binary = AMXX.MetaModule(builder, 'mysql')
binary.compiler.cxxincludes += [
os.path.join(AMXX.mysql_path, 'include'),
os.path.join(builder.currentSourcePath, 'mysql'),
os.path.join(builder.currentSourcePath, 'thread'),
]
binary.compiler.defines += [
'SM_DEFAULT_THREADER',
'stricmp=strcasecmp',
]
if builder.target_platform is 'linux' or builder.target_platform is 'mac':
binary.compiler.linkflags += [
os.path.join(AMXX.mysql_path, 'lib', 'libmysqlclient_r.a'),
'-lz',
'-lpthread',
'-lm'
]
elif builder.target_platform is 'windows':
binary.compiler.linkflags += [
os.path.join(AMXX.mysql_path, 'lib', 'opt', 'mysqlclient.lib'),
os.path.join(AMXX.mysql_path, 'lib', 'opt', 'zlib.lib'),
'wsock32.lib'
]
binary.sources = [
'basic_sql.cpp',
'handles.cpp',
'module.cpp',
'threading.cpp',
'sdk/amxxmodule.cpp',
'oldcompat_sql.cpp',
'thread/BaseWorker.cpp',
'thread/ThreadWorker.cpp',
'thread/PosixThreads.cpp',
'mysql/MysqlQuery.cpp',
'mysql/MysqlResultSet.cpp',
'mysql/MysqlDatabase.cpp',
'mysql/MysqlDriver.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
/** Module info
* -The logtag is the tag that the module's log messages will be

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

25
dlls/ns/AMBuilder Normal file
View File

@ -0,0 +1,25 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'ns')
binary.sources = [
'sdk/amxxmodule.cpp',
'dllapi.cpp',
'utils.cpp',
'amxxapi.cpp',
'engineapi.cpp',
'TitleManager.cpp',
'ParticleManager.cpp',
'MessageHandler.cpp',
'GameManager.cpp',
'natives/general.cpp',
'natives/player.cpp',
'natives/player_memory.cpp',
'natives/structure.cpp',
'natives/weapons.cpp',
'natives/particles.cpp',
'natives/memberfuncs.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "../svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "NS"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

14
dlls/nvault/AMBuilder Normal file
View File

@ -0,0 +1,14 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.Module(builder, 'nvault')
binary.sources = [
'sdk/amxxmodule.cpp',
'amxxapi.cpp',
'Binary.cpp',
'Journal.cpp',
'NVault.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "nVault"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

21
dlls/regex/AMBuilder Normal file
View File

@ -0,0 +1,21 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.Module(builder, 'regex')
if builder.target_platform == 'linux':
binary.compiler.postlink += [binary.Dep('lib_linux/libpcre.a')]
elif builder.target_platform == 'mac':
binary.compiler.postlink += [binary.Dep('lib_darwin/libpcre.a')]
elif builder.target_platform == 'windows':
binary.compiler.postlink += [binary.Dep('lib_win\\pcre.lib')]
binary.compiler.defines += ['PCRE_STATIC']
binary.sources = [
'sdk/amxxmodule.cpp',
'module.cpp',
'CRegEx.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "RegEx"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

14
dlls/sockets/AMBuilder Normal file
View File

@ -0,0 +1,14 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.Module(builder, 'sockets')
binary.sources = [
'sdk/amxxmodule.cpp',
'sockets.cpp',
]
if builder.target_platform == 'windows':
binary.compiler.postlink += ['wsock32.lib', 'ws2_32.lib']
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "Sockets"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

85
dlls/sqlite/AMBuilder Normal file
View File

@ -0,0 +1,85 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'sqlite')
binary.compiler.cxxincludes += [
os.path.join(builder.currentSourcePath, 'sqlitepp'),
os.path.join(builder.currentSourcePath, 'thread'),
os.path.join(builder.currentSourcePath, 'sqlite-source'),
]
binary.compiler.defines += [
'SM_DEFAULT_THREADER',
'stricmp=strcasecmp',
]
if builder.target_platform == 'linux':
binary.compiler.postlink += ['-lpthread']
binary.sources += [
'basic_sql.cpp',
'handles.cpp',
'module.cpp',
'threading.cpp',
'sdk/amxxmodule.cpp',
'oldcompat_sql.cpp',
'thread/BaseWorker.cpp',
'thread/ThreadWorker.cpp',
'sqlitepp/SqliteQuery.cpp',
'sqlitepp/SqliteResultSet.cpp',
'sqlitepp/SqliteDatabase.cpp',
'sqlitepp/SqliteDriver.cpp',
'sqlite-source/alter.c',
'sqlite-source/analyze.c',
'sqlite-source/attach.c',
'sqlite-source/auth.c',
'sqlite-source/btree.c',
'sqlite-source/build.c',
'sqlite-source/callback.c',
'sqlite-source/complete.c',
'sqlite-source/date.c',
'sqlite-source/delete.c',
'sqlite-source/expr.c',
'sqlite-source/func.c',
'sqlite-source/hash.c',
'sqlite-source/insert.c',
'sqlite-source/legacy.c',
'sqlite-source/loadext.c',
'sqlite-source/main.c',
'sqlite-source/opcodes.c',
'sqlite-source/os.c',
'sqlite-source/pager.c',
'sqlite-source/parse.c',
'sqlite-source/pragma.c',
'sqlite-source/prepare.c',
'sqlite-source/printf.c',
'sqlite-source/random.c',
'sqlite-source/select.c',
'sqlite-source/table.c',
'sqlite-source/tokenize.c',
'sqlite-source/trigger.c',
'sqlite-source/update.c',
'sqlite-source/utf.c',
'sqlite-source/util.c',
'sqlite-source/vacuum.c',
'sqlite-source/vdbe.c',
'sqlite-source/vdbeapi.c',
'sqlite-source/vdbeaux.c',
'sqlite-source/vdbefifo.c',
'sqlite-source/vdbemem.c',
'sqlite-source/vtab.c',
'sqlite-source/where.c',
]
if builder.target_platform == 'windows':
binary.sources += [
'thread/WinThreads.cpp',
'sqlite-source/os_win.c',
]
else:
binary.sources += [
'thread/PosixThreads.cpp',
'sqlite-source/os_unix.c',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "SQLite"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

17
dlls/tfcx/AMBuilder Normal file
View File

@ -0,0 +1,17 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'tfcx')
binary.sources = [
'sdk/amxxmodule.cpp',
'CRank.cpp',
'CMisc.cpp',
'NBase.cpp',
'NRank.cpp',
'usermsg.cpp',
'Utils.cpp',
'moduleconfig.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "TfcX"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

10
dlls/ts/tsfun/AMBuilder Normal file
View File

@ -0,0 +1,10 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'tsfun')
binary.sources = [
'sdk/amxxmodule.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "TSFun Wrapper"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

17
dlls/ts/tsx/AMBuilder Normal file
View File

@ -0,0 +1,17 @@
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path
binary = AMXX.MetaModule(builder, 'tsx')
binary.sources = [
'sdk/amxxmodule.cpp',
'CMisc.cpp',
'CRank.cpp',
'NBase.cpp',
'NRank.cpp',
'Utils.cpp',
'moduleconfig.cpp',
'usermsg.cpp',
]
AMXX.modules += [builder.Add(binary)]

View File

@ -3,7 +3,11 @@
#ifndef __MODULECONFIG_H__
#define __MODULECONFIG_H__
#include "svn_version.h"
#if defined AMBUILD
# include <amxmodx_version.h>
#else
# define SVN_VERSION "dev-local"
#endif
// Module info
#define MODULE_NAME "TSX"

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "1.8.2-dev"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,9 +0,0 @@
#ifndef _INCLUDE_SVN_VERSION_H_
#define _INCLUDE_SVN_VERSION_H_
/** This file is auto-generated by build scripts. Do not edit it unless you know what you're doing. */
/** Do not commit the generated .h file, as it will only mess up SVN revision numbers. */
#define SVN_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$$BUILD_STRING$"
#endif //_INCLUDE_SVN_VERSION_H_

View File

@ -1,249 +0,0 @@
using System;
using System.Diagnostics;
using System.IO;
namespace AMXXRelease
{
//This class specifies the process that builds a release.
//It also implements the functions that are unlikely to change from mod to mod.
public abstract class ABuilder
{
protected Config m_Cfg;
public virtual void OnBuild()
{
}
public virtual void CreateDir(string dir)
{
Directory.CreateDirectory(dir);
}
public virtual bool Build(Config cfg, Build build)
{
m_Cfg = cfg;
OnBuild();
int num = build.GetMods();
AMod mod;
for (int i=0; i<num; i++)
{
mod = build.GetMod(i);
if (!BuildMod(mod))
{
System.Console.WriteLine("Mod failed to build: " + mod.GetName());
return false;
}
if (m_Cfg.CompressPath() != null)
{
CompressDir(
PropSlashes(m_Cfg.OutputPath() + "\\" + m_Cfg.GetReleaseName() + "-" + mod.GetName()),
PropSlashes(m_Cfg.OutputPath() + "\\" + mod.GetName())
);
}
}
return true;
}
public virtual bool BuildMod(AMod mod)
{
CopyConfigs(mod);
if (!BuildModModules(mod))
return false;
if (!BuildModPlugins(mod))
return false;
string basedir = PropSlashes(m_Cfg.OutputPath() + "\\" + mod.GetModPath());
string sourcetree = m_Cfg.GetSourceTree();
if (!mod.CopyExtraFiles(this, basedir, sourcetree))
return false;
return true;
}
public virtual void CopyConfigs(AMod mod)
{
string basedir = PropSlashes(m_Cfg.OutputPath() + "\\" + mod.GetModPath() + "\\configs");
if (!Directory.Exists(basedir))
CreateDir(basedir);
string srcdir = PropSlashes(m_Cfg.GetSourceTree() + "\\configs");
if (!Directory.Exists(srcdir))
return;
if (mod.GetPluginDir() != null)
srcdir += "\\" + mod.GetBaseName();
srcdir = PropSlashes(srcdir);
CopyNormal(this, srcdir, basedir);
}
public static void CopyNormal(ABuilder ab, string src, string dest)
{
string[] files = Directory.GetFiles(src);
if (!Directory.Exists(dest))
ab.CreateDir(dest);
for (int i=0; i<files.Length; i++)
{
File.Copy(files[i],
PropSlashes(dest + "\\" + GetFileName(files[i])),
true);
}
}
public virtual bool BuildModPlugins(AMod mod)
{
int num = mod.GetPlugins();
Plugin plugin;
string binary, basedir;
basedir = m_Cfg.OutputPath();
basedir += "\\" + mod.GetModPath();
basedir = PropSlashes(basedir);
string dir, file, target;
for (int i=0; i<num; i++)
{
plugin = mod.GetPlugin(i);
binary = BuildPlugin(mod, plugin);
file = PropSlashes(m_Cfg.GetSourceTree() + "\\plugins\\" + GetFileName(binary));
if (!File.Exists(file))
{
System.Console.WriteLine("Plugin failed to compile: " +
mod.GetName() + "::" + plugin.name);
return false;
}
dir = PropSlashes(basedir + "\\" + plugin.outdir);
if (!Directory.Exists(dir))
CreateDir(dir);
target = PropSlashes(dir + "\\" + plugin.name + ".amxx");
if (File.Exists(target))
File.Delete(target);
File.Move(file,
target);
}
//Copy all files from the plugins dir to scripting
string search_dir = m_Cfg.GetSourceTree() + "\\plugins";
if (mod.GetPluginDir() != null)
search_dir += "\\" + mod.GetPluginDir();
search_dir = PropSlashes(search_dir);
string dest;
if (Directory.Exists(search_dir))
{
string[] files = Directory.GetFiles(search_dir);
if (!Directory.Exists(PropSlashes(basedir + "\\scripting")))
CreateDir(PropSlashes(basedir + "\\scripting"));
for (int i=0; i<files.Length; i++)
{
dest = PropSlashes(basedir + "\\scripting\\" + GetFileName(files[i]));
if (mod.ExcludeCopy(files[i]))
continue;
File.Copy(files[i], dest, true);
}
}
return true;
}
public static string GetFileName(string input)
{
for (int i=input.Length-1; i>=0; i--)
{
if ((input[i] == '\\' || input[i] == '/') && i != input.Length-1)
{
return input.Substring(i+1, input.Length-i-1);
}
}
return input;
}
public virtual bool BuildModModules(AMod mod)
{
int num = mod.GetModules();
Module module;
string binary, basedir;
basedir = m_Cfg.OutputPath();
basedir += "\\" + mod.GetModPath();
basedir = PropSlashes(basedir);
string dir;
for (int i=0; i<num; i++)
{
module = mod.GetModule(i);
binary = BuildModule(module);
if (binary == null)
{
System.Console.WriteLine("Module failed to compile: " +
mod.GetName() + "::" + module.projname + GetLibExt());
return false;
}
dir = PropSlashes(basedir + "\\" + module.outdir);
if (!Directory.Exists(dir))
CreateDir(dir);
File.Copy(binary,
PropSlashes(dir + "\\" + module.projname + GetLibExt()),
true);
}
return true;
}
public virtual string BuildPlugin(AMod mod, Plugin pl)
{
string modoffs = mod.GetPluginDir();
string pldir;
if (modoffs != null)
pldir = modoffs + "\\";
else
pldir = "";
AmxxPc(PropSlashes(pldir + pl.source), pl.options);
string outfile = pldir + pl.name + ".amxx";
return outfile;
}
public abstract void AmxxPc(string inpath, string args);
public abstract string BuildModule(Module module);
public abstract string GetLibExt();
public abstract void CompressDir(string target, string dir);
public static string PropSlashes(string path)
{
char sep;
char alt;
if (Releaser.IsWindows)
{
sep = '\\';
alt = '/';
} else {
sep = '/';
alt = '\\';
}
return path.Replace(alt,sep);
}
}
}

View File

@ -1,123 +0,0 @@
using System;
using System.Diagnostics;
using System.Collections;
namespace AMXXRelease
{
//Holds information about a plugin
public class Plugin
{
public string name; //Plugin output file name
public string source; //Source code file
public string options; //Compile-time options
public string outdir; //Output folder
public Plugin(string Name)
{
name = (string)Name.Clone();
source = (string)Name.Clone();
outdir = "plugins";
}
}
//Holds information necessary to compile a module/C++ program
public class Module
{
public string sourcedir; //Source directory
public string projname; //Output binary name (such as amxmodx_mm)
public string build; //Build configuration
public string bindir; //Binary directory
public string vcproj; //VCProj file name
public string outdir; //Output directory
public Module()
{
build = "Release";
outdir = "modules";
bindir = "msvc10";
}
public Module(string name)
{
build = "Release";
outdir = "modules";
sourcedir = "dlls\\" + name;
bindir = "msvc10";
projname = name + "_amxx";
vcproj = name;
}
}
//Class that represents how a mod wants to be built.
//It exports a list of functions, mods, and a few
// tidbits of information. It can also hook an extra
// step for copying miscellanious files.
public abstract class AMod
{
protected ArrayList m_Modules;
protected ArrayList m_Plugins;
public abstract string GetName();
public virtual string GetBaseName()
{
return GetName();
}
public AMod()
{
m_Modules = new ArrayList();
m_Plugins = new ArrayList();
}
//called when it's okay to build an extra dir structure
// and copy files to it
public virtual bool CopyExtraFiles(ABuilder ab, string basedir, string sourcedir)
{
return true;
}
//defines a copy prevention filter
public virtual bool ExcludeCopy(string file)
{
return false;
}
public virtual string GetPluginDir()
{
return GetName();
}
public virtual int GetModules()
{
return m_Modules.Count;
}
public virtual Module GetModule(int i)
{
return (Module)m_Modules[i];
}
public virtual int GetPlugins()
{
return m_Plugins.Count;
}
public virtual string GetModPath()
{
return GetName() + "\\addons\\amxmodx";
}
public virtual Plugin GetPlugin(int i)
{
return (Plugin)m_Plugins[i];
}
public virtual Plugin AddPlugin(string name)
{
Plugin pl = new Plugin(name);
m_Plugins.Add(pl);
return pl;
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,52 +0,0 @@
using System;
using System.Collections;
namespace AMXXRelease
{
//Class that iterates the different pieces
// to be completed over for the build
public class Build
{
protected ArrayList m_Mods;
protected Config m_Cfg;
public Build(Config cfg)
{
m_Mods = new ArrayList();
m_Cfg = cfg;
CoreMod core = new CoreMod();
ModCstrike cstrike = new ModCstrike();
ModDoD dod = new ModDoD();
ModTFC tfc = new ModTFC();
m_Mods.Add(core);
m_Mods.Add(cstrike);
m_Mods.Add(dod);
m_Mods.Add(tfc);
// These mods don't have OS X builds
if (!Releaser.IsOSX)
{
ModEsf esf = new ModEsf();
ModNs ns = new ModNs();
ModTs ts = new ModTs();
m_Mods.Add(esf);
m_Mods.Add(ns);
m_Mods.Add(ts);
}
}
public virtual int GetMods()
{
return m_Mods.Count;
}
public virtual AMod GetMod(int i)
{
return (AMod)m_Mods[i];
}
}
}

View File

@ -1,100 +0,0 @@
using System;
using System.IO;
namespace AMXXRelease
{
//Reads in config file info
public class Config
{
private string m_SourceTree;
private string m_OutputPath;
private string m_DevenvPath;
private string m_PathToCompress;
private string m_ReleaseName;
private string m_MakeOpts;
public Config()
{
}
public string GetSourceTree()
{
return m_SourceTree;
}
public string OutputPath()
{
return m_OutputPath;
}
public string DevenvPath()
{
return m_DevenvPath;
}
public string CompressPath()
{
return m_PathToCompress;
}
public string GetReleaseName()
{
return m_ReleaseName;
}
public string MakeOpts()
{
return m_MakeOpts;
}
public bool ReadFromFile(string file)
{
try
{
StreamReader sr = new StreamReader(file);
string line;
string delim = "\t \n\r\v";
string splt = "=";
while ( (line = sr.ReadLine()) != null )
{
line = line.Trim(delim.ToCharArray());
if (line.Length < 1 || line[0] == ';')
continue;
string [] s = line.Split(splt.ToCharArray());
string key, val="";
if (s.GetLength(0) >= 1)
{
key = s[0];
if (s.GetLength(0) >= 2)
{
for(int i=1; i<s.GetLength(0); i++)
val += s[i];
}
key = key.Trim(delim.ToCharArray());
val = val.Trim(delim.ToCharArray());
if (key.CompareTo("compress")==0)
m_PathToCompress = val;
if (key.CompareTo("devenv")==0)
m_DevenvPath = val;
if (key.CompareTo("output")==0)
m_OutputPath = val;
if (key.CompareTo("source")==0)
m_SourceTree = val;
if (key.CompareTo("release")==0)
m_ReleaseName = val;
if (key.CompareTo("makeopts")==0)
m_MakeOpts = val;
}
}
return true;
} catch {
Console.WriteLine("Unable to read file: " + file);
}
return false;
}
}
}

View File

@ -1,165 +0,0 @@
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);
}
}
}

View File

@ -1,131 +0,0 @@
using System;
using System.Diagnostics;
using System.IO;
namespace AMXXRelease
{
//Build process for any Linux
public class LinuxBuilder : ABuilder
{
private string m_AmxxPc;
public override void OnBuild()
{
m_AmxxPc = PropSlashes(m_Cfg.GetSourceTree() + "/plugins/amxxpc");
}
public override void CompressDir(string target, string dir)
{
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = m_Cfg.CompressPath();
info.WorkingDirectory = dir;
string [] files = Directory.GetFiles(dir);
string file_list = "";
for (int i=0; i<files.Length; i++)
file_list += GetFileName(files[i]) + " ";
files = Directory.GetDirectories(dir);
for (int i=0; i<files.Length; i++)
file_list += GetFileName(files[i]) + " ";
ProcessStartInfo chmod = new ProcessStartInfo();
chmod.FileName = "/bin/chmod";
chmod.WorkingDirectory = dir;
chmod.Arguments = "-R 755 " + file_list;
chmod.UseShellExecute = false;
Process c = Process.Start(chmod);
c.WaitForExit();
c.Close();
info.Arguments = "zcvf \"" + target + "-linux.tar.gz\" " + file_list;
info.UseShellExecute = false;
Process p = Process.Start(info);
p.WaitForExit();
p.Close();
}
public override void AmxxPc(string inpath, string args)
{
ProcessStartInfo info = new ProcessStartInfo();
info.WorkingDirectory = PropSlashes(m_Cfg.GetSourceTree() + "\\plugins");
info.FileName = (string)m_AmxxPc.Clone();
info.Arguments = inpath + ".sma";
if (args != null)
info.Arguments += " " + args;
info.UseShellExecute = false;
Process p = Process.Start(info);
p.WaitForExit();
p.Close();
}
public override string GetLibExt()
{
return "_i386.so";
}
public override string BuildModule(Module module)
{
ProcessStartInfo info = new ProcessStartInfo();
string dir = m_Cfg.GetSourceTree() + "\\" + module.sourcedir;
string file = dir;
file += "\\" + "Release" + "\\" + module.projname + GetLibExt();
file = PropSlashes(file);
if (File.Exists(file))
File.Delete(file);
Console.WriteLine(PropSlashes(dir));
info.WorkingDirectory = PropSlashes(dir);
info.FileName = m_Cfg.DevenvPath();
info.Arguments = "clean";
info.UseShellExecute = false;
Process p = Process.Start(info);
p.WaitForExit();
p.Close();
info.WorkingDirectory = PropSlashes(dir);
info.FileName = m_Cfg.DevenvPath();
info.Arguments = m_Cfg.MakeOpts();
info.UseShellExecute = false;
p = Process.Start(info);
p.WaitForExit();
p.Close();
if (!File.Exists(file))
{
Console.WriteLine("Output file failed: " + file);
return null;
}
//Now we need to see if the DL handle is valid!
string dlsym_dir = m_Cfg.GetSourceTree() + "\\plugins";
string dlsym = dlsym_dir + "\\dlsym";
dlsym = PropSlashes(dlsym);
dlsym_dir = PropSlashes(dlsym_dir);
info.WorkingDirectory = dlsym_dir;
info.FileName = dlsym;
info.Arguments = file;
info.UseShellExecute = false;
info.RedirectStandardOutput = true;
p = Process.Start(info);
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
p.Close();
if (output.IndexOf("Handle:") == -1)
return null;
return file;
}
}
}

View File

@ -1,111 +0,0 @@
using System;
using System.Diagnostics;
using System.IO;
namespace AMXXRelease
{
//Build process for Mac OS X
public class MacBuilder : ABuilder
{
private string m_AmxxPc;
public override void OnBuild()
{
m_AmxxPc = PropSlashes(m_Cfg.GetSourceTree() + "/plugins/amxxpc_osx");
}
public override void CompressDir(string target, string dir)
{
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = m_Cfg.CompressPath();
info.WorkingDirectory = dir;
string [] files = Directory.GetFiles(dir);
string file_list = "";
for (int i=0; i<files.Length; i++)
file_list += GetFileName(files[i]) + " ";
files = Directory.GetDirectories(dir);
for (int i=0; i<files.Length; i++)
file_list += GetFileName(files[i]) + " ";
ProcessStartInfo chmod = new ProcessStartInfo();
chmod.FileName = "/bin/chmod";
chmod.WorkingDirectory = dir;
chmod.Arguments = "-R 755 " + file_list;
chmod.UseShellExecute = false;
Process c = Process.Start(chmod);
c.WaitForExit();
c.Close();
info.Arguments = "-r \"" + target + "-mac.zip\" " + ".";
info.UseShellExecute = false;
Process p = Process.Start(info);
p.WaitForExit();
p.Close();
}
public override void AmxxPc(string inpath, string args)
{
ProcessStartInfo info = new ProcessStartInfo();
info.WorkingDirectory = PropSlashes(m_Cfg.GetSourceTree() + "\\plugins");
info.FileName = (string)m_AmxxPc.Clone();
info.Arguments = inpath + ".sma";
if (args != null)
info.Arguments += " " + args;
info.UseShellExecute = false;
Process p = Process.Start(info);
p.WaitForExit();
p.Close();
}
public override string GetLibExt()
{
return ".dylib";
}
public override string BuildModule(Module module)
{
ProcessStartInfo info = new ProcessStartInfo();
string dir = m_Cfg.GetSourceTree() + "\\" + module.sourcedir;
string file = dir;
file += "\\" + "Release" + "\\" + module.projname + GetLibExt();
file = PropSlashes(file);
if (File.Exists(file))
File.Delete(file);
Console.WriteLine(PropSlashes(dir));
info.WorkingDirectory = PropSlashes(dir);
info.FileName = m_Cfg.DevenvPath();
info.Arguments = "clean";
info.UseShellExecute = false;
Process p = Process.Start(info);
p.WaitForExit();
p.Close();
info.WorkingDirectory = PropSlashes(dir);
info.FileName = m_Cfg.DevenvPath();
info.Arguments = m_Cfg.MakeOpts();
info.UseShellExecute = false;
p = Process.Start(info);
p.WaitForExit();
p.Close();
if (!File.Exists(file))
{
Console.WriteLine("Output file failed: " + file);
return null;
}
return file;
}
}
}

Some files were not shown because too many files have changed in this diff Show More