Merge AMBuild2 upgrade from sourcemod-1.6 to sourcemod-1.5.
This commit is contained in:
parent
de8157302d
commit
1030c9b1b3
957
AMBuildScript
957
AMBuildScript
@ -1,499 +1,476 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os, sys
|
||||||
import sys
|
|
||||||
from ambuild.command import Command
|
|
||||||
from ambuild.command import ShellCommand
|
|
||||||
from ambuild.command import SymlinkCommand
|
|
||||||
|
|
||||||
class ExtractDebugInfoCommand(Command):
|
class SDK(object):
|
||||||
def __init__(self, binary, outfile):
|
def __init__(self, sdk, ext, aDef, name, platform, dir):
|
||||||
Command.__init__(self)
|
if dir == 'ep1':
|
||||||
self.binary = binary
|
folder = 'hl2sdk'
|
||||||
self.outfile = outfile
|
else:
|
||||||
|
folder = 'hl2sdk-' + dir
|
||||||
|
self.envvar = sdk
|
||||||
|
self.ext = ext
|
||||||
|
self.code = aDef
|
||||||
|
self.define = name
|
||||||
|
self.platform = platform
|
||||||
|
self.folder = folder # Default folder name.
|
||||||
|
self.name = dir
|
||||||
|
self.path = None # Actual path
|
||||||
|
|
||||||
def run(self, runner, job):
|
WinOnly = ['windows']
|
||||||
if AMBuild.cache['debug']:
|
WinLinux = ['windows', 'linux']
|
||||||
return
|
WinLinuxMac = ['windows', 'linux', 'mac']
|
||||||
|
|
||||||
if not self.binary.NeedsRelink(self.outfile):
|
PossibleSDKs = {
|
||||||
return
|
'ep1': SDK('HL2SDK', '1.ep1', '1', 'EPISODEONE', WinLinux, 'ep1'),
|
||||||
|
'ep2': SDK('HL2SDKOB', '2.ep2', '3', 'ORANGEBOX', WinLinux, 'ob'),
|
||||||
if AMBuild.target['platform'] == 'linux':
|
'css': SDK('HL2SDKCSS', '2.css', '6', 'CSS', WinLinuxMac, 'css'),
|
||||||
job.AddCommand(ShellCommand('objcopy --only-keep-debug ' + self.outfile + ' ' + self.outfile + '.dbg'))
|
'hl2dm': SDK('HL2SDKHL2DM', '2.hl2dm', '7', 'HL2DM', WinLinuxMac, 'hl2dm'),
|
||||||
job.AddCommand(ShellCommand('objcopy --strip-debug ' + self.outfile))
|
'dods': SDK('HL2SDKDODS', '2.dods', '8', 'DODS', WinLinuxMac, 'dods'),
|
||||||
job.AddCommand(ShellCommand('objcopy --add-gnu-debuglink=' + os.path.basename(self.outfile) + '.dbg ' + self.outfile))
|
# 'sdk2013': SDK('HL2SDK2013', '2.sdk2013', '9', 'SDK2013', WinLinuxMac, '2013'),
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
'tf2': SDK('HL2SDKTF2', '2.tf2', '10', 'TF2', WinLinuxMac, 'tf2'),
|
||||||
job.AddCommand(ShellCommand('dsymutil ' + self.outfile))
|
'l4d': SDK('HL2SDKL4D', '2.l4d', '11', 'LEFT4DEAD', WinLinuxMac, 'l4d'),
|
||||||
job.AddCommand(ShellCommand('strip -S ' + self.outfile))
|
'nd': SDK('HL2SDKND', '2.nd', '12', 'NUCLEARDAWN', WinLinuxMac, 'nd'),
|
||||||
|
'l4d2': SDK('HL2SDKL4D2', '2.l4d2', '13', 'LEFT4DEAD2', WinLinuxMac, 'l4d2'),
|
||||||
class SM:
|
'darkm': SDK('HL2SDK-DARKM', '2.darkm', '2', 'DARKMESSIAH', WinOnly, 'darkm'),
|
||||||
def __init__(self):
|
'swarm': SDK('HL2SDK-SWARM', '2.swarm', '14', 'ALIENSWARM', WinOnly, 'swarm'),
|
||||||
self.compiler = Cpp.Compiler()
|
'bgt': SDK('HL2SDK-BGT', '2.bgt', '4', 'BLOODYGOODTIME', WinOnly, 'bgt'),
|
||||||
|
'eye': SDK('HL2SDK-EYE', '2.eye', '5', 'EYE', WinOnly, 'eye'),
|
||||||
#Build SDK info
|
'csgo': SDK('HL2SDKCSGO', '2.csgo', '18', 'CSGO', WinLinuxMac, 'csgo'),
|
||||||
self.possibleSdks = { }
|
'dota': SDK('HL2SDKDOTA', '2.dota', '19', 'DOTA', WinOnly, 'dota'),
|
||||||
self.possibleSdks['ep1'] = {'sdk': 'HL2SDK', 'ext': '1.ep1', 'def': '1',
|
'portal2': SDK('HL2SDKPORTAL2', '2.portal2', '15', 'PORTAL2', [], 'portal2'),
|
||||||
'name': 'EPISODEONE', 'platform': ['windows', 'linux'],
|
'blade': SDK('HL2SDKBLADE', '2.blade', '16', 'BLADE', WinLinux, 'blade'),
|
||||||
'dir': 'hl2sdk'}
|
# 'insurgency': SDK('HL2SDKINSURGENCY', '2.insurgency', '17', 'INSURGENCY', WinLinuxMac, 'insurgency'),
|
||||||
self.possibleSdks['ep2'] = {'sdk': 'HL2SDKOB', 'ext': '2.ep2', 'def': '3',
|
|
||||||
'name': 'ORANGEBOX', 'platform': ['windows', 'linux'],
|
|
||||||
'dir': 'hl2sdk-ob'}
|
|
||||||
self.possibleSdks['css'] = {'sdk': 'HL2SDKCSS', 'ext': '2.css', 'def': '6',
|
|
||||||
'name': 'CSS', 'platform': ['windows', 'linux', 'darwin'],
|
|
||||||
'dir': 'hl2sdk-css'}
|
|
||||||
self.possibleSdks['hl2dm'] = {'sdk': 'HL2SDKHL2DM', 'ext': '2.hl2dm', 'def': '7',
|
|
||||||
'name': 'HL2DM', 'platform': ['windows', 'linux', 'darwin'],
|
|
||||||
'dir': 'hl2sdk-hl2dm'}
|
|
||||||
self.possibleSdks['dods'] = {'sdk': 'HL2SDKDODS', 'ext': '2.dods', 'def': '8',
|
|
||||||
'name': 'DODS', 'platform': ['windows', 'linux', 'darwin'],
|
|
||||||
'dir': 'hl2sdk-dods'}
|
|
||||||
self.possibleSdks['tf2'] = {'sdk': 'HL2SDKTF2', 'ext': '2.tf2', 'def': '9',
|
|
||||||
'name': 'TF2', 'platform': ['windows', 'linux', 'darwin'],
|
|
||||||
'dir': 'hl2sdk-tf2'}
|
|
||||||
self.possibleSdks['l4d'] = {'sdk': 'HL2SDKL4D', 'ext': '2.l4d', 'def': '10',
|
|
||||||
'name': 'LEFT4DEAD', 'platform': ['windows', 'linux', 'darwin'],
|
|
||||||
'dir': 'hl2sdk-l4d'}
|
|
||||||
self.possibleSdks['nd'] = {'sdk': 'HL2SDKND', 'ext': '2.nd', 'def': '11',
|
|
||||||
'name': 'NUCLEARDAWN', 'platform': ['windows', 'linux', 'darwin'],
|
|
||||||
'dir': 'hl2sdk-nd'}
|
|
||||||
self.possibleSdks['l4d2'] = {'sdk': 'HL2SDKL4D2', 'ext': '2.l4d2', 'def': '12',
|
|
||||||
'name': 'LEFT4DEAD2', 'platform': ['windows', 'linux', 'darwin'],
|
|
||||||
'dir': 'hl2sdk-l4d2'}
|
|
||||||
self.possibleSdks['darkm'] = {'sdk': 'HL2SDK-DARKM', 'ext': '2.darkm', 'def': '2',
|
|
||||||
'name': 'DARKMESSIAH', 'platform': ['windows'],
|
|
||||||
'dir': 'hl2sdk-darkm'}
|
|
||||||
self.possibleSdks['swarm'] = {'sdk': 'HL2SDK-SWARM', 'ext': '2.swarm', 'def': '13',
|
|
||||||
'name': 'ALIENSWARM', 'platform': ['windows'],
|
|
||||||
'dir': 'hl2sdk-swarm'}
|
|
||||||
self.possibleSdks['bgt'] = {'sdk': 'HL2SDK-BGT', 'ext': '2.bgt', 'def': '4',
|
|
||||||
'name': 'BLOODYGOODTIME', 'platform': ['windows'],
|
|
||||||
'dir': 'hl2sdk-bgt'}
|
|
||||||
self.possibleSdks['eye'] = {'sdk': 'HL2SDK-EYE', 'ext': '2.eye', 'def': '5',
|
|
||||||
'name': 'EYE', 'platform': ['windows'],
|
|
||||||
'dir': 'hl2sdk-eye'}
|
|
||||||
self.possibleSdks['csgo'] = {'sdk': 'HL2SDKCSGO', 'ext': '2.csgo', 'def': '15',
|
|
||||||
'name': 'CSGO', 'platform': ['windows', 'linux', 'darwin'],
|
|
||||||
'dir': 'hl2sdk-csgo'}
|
|
||||||
# self.possibleSdks['portal2'] = {'sdk': 'HL2SDK-PORTAL2', 'ext': '2.portal2', 'def': '14',
|
|
||||||
# 'name': 'PORTAL2', 'platform': ['windows'],
|
|
||||||
# 'dir': 'hl2sdk-portal'}
|
|
||||||
|
|
||||||
self.sdkInfo = { }
|
|
||||||
|
|
||||||
if AMBuild.mode == 'config':
|
|
||||||
#Detect compilers
|
|
||||||
self.compiler.DetectAll(AMBuild)
|
|
||||||
|
|
||||||
self.hasMySql = AMBuild.options.hasMySql
|
|
||||||
AMBuild.cache.CacheVariable('hasMySql', self.hasMySql)
|
|
||||||
|
|
||||||
AMBuild.cache.CacheVariable('debug', AMBuild.options.debug)
|
|
||||||
|
|
||||||
#Environment variable paths to external headers
|
|
||||||
envvars = { 'MMSOURCE110': 'mmsource-1.10', 'MYSQL5': 'mysql-5.0' }
|
|
||||||
|
|
||||||
#Look for Metamod:Source and MySQL if not disabled
|
|
||||||
for env in envvars:
|
|
||||||
if not self.hasMySql and env == 'MYSQL5':
|
|
||||||
continue
|
|
||||||
path = self.ResolveEnvPath(env, envvars[env])
|
|
||||||
if path == None:
|
|
||||||
raise Exception('Could not find a valid path for {0}'.format(env))
|
|
||||||
AMBuild.cache.CacheVariable(env, path)
|
|
||||||
|
|
||||||
#Look for SDK directories
|
|
||||||
for sdk in self.possibleSdks:
|
|
||||||
#Get list of SDKs to build against or 'all' or 'present'
|
|
||||||
sdkList = AMBuild.options.sdks.split(',')
|
|
||||||
#Build against all supported SDKs?
|
|
||||||
useAll = sdkList[0] == 'all'
|
|
||||||
#Build against supported SDKs that exist?
|
|
||||||
usePresent = sdkList[0] == 'present'
|
|
||||||
|
|
||||||
info = self.possibleSdks[sdk]
|
|
||||||
if AMBuild.target['platform'] in info['platform']:
|
|
||||||
env = info['sdk']
|
|
||||||
dir = info['dir']
|
|
||||||
sdkPath = self.ResolveEnvPath(env, dir)
|
|
||||||
if sdkPath == None:
|
|
||||||
if useAll or sdk in sdkList:
|
|
||||||
raise Exception('Could not find a valid path for {0}'.format(env))
|
|
||||||
else:
|
|
||||||
continue
|
|
||||||
if useAll or usePresent or sdk in sdkList:
|
|
||||||
self.sdkInfo[sdk] = info
|
|
||||||
AMBuild.cache.CacheVariable(env, sdkPath)
|
|
||||||
|
|
||||||
if len(self.sdkInfo) < 1:
|
|
||||||
raise Exception('At least one SDK must be available.')
|
|
||||||
|
|
||||||
AMBuild.cache.CacheVariable('sdkInfo', self.sdkInfo)
|
|
||||||
|
|
||||||
#Set up defines
|
|
||||||
cxx = self.compiler.cxx
|
|
||||||
if isinstance(cxx, Cpp.CompatGCC):
|
|
||||||
if isinstance(cxx, Cpp.GCC):
|
|
||||||
self.vendor = 'gcc'
|
|
||||||
elif isinstance(cxx, Cpp.Clang):
|
|
||||||
self.vendor = 'clang'
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'stricmp=strcasecmp')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_stricmp=strcasecmp')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_snprintf=snprintf')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_vsnprintf=vsnprintf')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-pipe')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-fno-strict-aliasing')
|
|
||||||
if (self.vendor == 'gcc' and cxx.majorVersion >= 4) or self.vendor == 'clang':
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-fvisibility=hidden')
|
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '-fvisibility-inlines-hidden')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-Wall')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-Werror')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-Wno-uninitialized')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-Wno-unused')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-Wno-switch')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-msse')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-g3')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-m32')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '-m32')
|
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '-fno-exceptions')
|
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '-fno-threadsafe-statics')
|
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '-Wno-non-virtual-dtor')
|
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '-Wno-overloaded-virtual')
|
|
||||||
if (self.vendor == 'gcc' and cxx.majorVersion >= 4 and cxx.minorVersion >= 7) or \
|
|
||||||
(self.vendor == 'clang' and cxx.majorVersion >= 3):
|
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '-Wno-delete-non-virtual-dtor')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'HAVE_STDINT_H')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'GNUC')
|
|
||||||
if self.vendor == 'gcc':
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-mfpmath=sse')
|
|
||||||
elif isinstance(cxx, Cpp.MSVC):
|
|
||||||
self.vendor = 'msvc'
|
|
||||||
if AMBuild.options.debug == '1':
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '/MTd')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '/NODEFAULTLIB:libcmt')
|
|
||||||
else:
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '/MT')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_CRT_SECURE_NO_DEPRECATE')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_CRT_SECURE_NO_WARNINGS')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_CRT_NONSTDC_NO_DEPRECATE')
|
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '/EHsc')
|
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '/GR-')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '/W3')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '/nologo')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '/Zi')
|
|
||||||
self.compiler.AddToListVar('CXXFLAGS', '/TP')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '/DEBUG')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '/MACHINE:X86')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '/SUBSYSTEM:WINDOWS')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'kernel32.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'user32.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'gdi32.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'winspool.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'comdlg32.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'advapi32.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'shell32.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'ole32.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'oleaut32.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'uuid.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'odbc32.lib')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', 'odbccp32.lib')
|
|
||||||
|
|
||||||
#Optimization
|
|
||||||
if AMBuild.options.opt == '1':
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'NDEBUG')
|
|
||||||
if self.vendor == 'gcc' or self.vendor == 'clang':
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '-O3')
|
|
||||||
elif self.vendor == 'msvc':
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '/Ox')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '/OPT:ICF')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '/OPT:REF')
|
|
||||||
|
|
||||||
#Debugging
|
|
||||||
if AMBuild.options.debug == '1':
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'DEBUG')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_DEBUG')
|
|
||||||
if self.vendor == 'msvc':
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '/Od')
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '/RTC1')
|
|
||||||
|
|
||||||
#This needs to be after our optimization flags which could otherwise disable it.
|
|
||||||
if self.vendor == 'msvc':
|
|
||||||
# Don't omit frame pointer
|
|
||||||
self.compiler.AddToListVar('CFLAGS', '/Oy-')
|
|
||||||
|
|
||||||
#Platform-specifics
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_LINUX')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'POSIX')
|
|
||||||
if self.vendor == 'gcc':
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '-static-libgcc')
|
|
||||||
if self.vendor == 'clang':
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '-lgcc_eh')
|
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'OSX')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_OSX')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'POSIX')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '-mmacosx-version-min=10.5')
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', ['-arch', 'i386'])
|
|
||||||
self.compiler.AddToListVar('POSTLINKFLAGS', '-lstdc++')
|
|
||||||
|
|
||||||
# For OS X dylib versioning
|
|
||||||
import re
|
|
||||||
productFile = open(os.path.join(AMBuild.sourceFolder, 'product.version'), 'r')
|
|
||||||
productContents = productFile.read()
|
|
||||||
productFile.close()
|
|
||||||
m = re.match('(\d+)\.(\d+)\.(\d+).*', productContents)
|
|
||||||
if m == None:
|
|
||||||
self.version = '1.0.0'
|
|
||||||
else:
|
|
||||||
major, minor, release = m.groups()
|
|
||||||
self.version = '{0}.{1}.{2}'.format(major, minor, release)
|
|
||||||
AMBuild.cache.CacheVariable('version', self.version)
|
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'WIN32')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', '_WINDOWS')
|
|
||||||
|
|
||||||
#Finish up
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'SOURCEMOD_BUILD')
|
|
||||||
self.compiler.AddToListVar('CDEFINES', 'SM_GENERATED_BUILD')
|
|
||||||
self.compiler.AddToListVar('CINCLUDES',
|
|
||||||
os.path.join(AMBuild.outputFolder, 'includes'))
|
|
||||||
self.compiler.ToConfig(AMBuild, 'compiler')
|
|
||||||
AMBuild.cache.CacheVariable('vendor', self.vendor)
|
|
||||||
self.targetMap = { }
|
|
||||||
AMBuild.cache.CacheVariable('targetMap', self.targetMap)
|
|
||||||
else:
|
|
||||||
self.sdkInfo = AMBuild.cache['sdkInfo']
|
|
||||||
self.compiler.FromConfig(AMBuild, 'compiler')
|
|
||||||
self.targetMap = AMBuild.cache['targetMap']
|
|
||||||
self.hasMySql = AMBuild.cache['hasMySql']
|
|
||||||
|
|
||||||
if AMBuild.target['platform'] == 'windows':
|
|
||||||
self.compiler.AddToListVar('RCINCLUDES', os.path.join(AMBuild.sourceFolder, 'public'))
|
|
||||||
self.compiler.AddToListVar('RCINCLUDES',
|
|
||||||
os.path.join(AMBuild.outputFolder, 'includes'))
|
|
||||||
self.mmsPath = AMBuild.cache['MMSOURCE110']
|
|
||||||
|
|
||||||
def DefaultCompiler(self):
|
|
||||||
return self.compiler.Clone()
|
|
||||||
|
|
||||||
def JobMatters(self, jobname):
|
|
||||||
file = sys._getframe().f_code.co_filename
|
|
||||||
if AMBuild.mode == 'config':
|
|
||||||
self.targetMap[jobname] = file
|
|
||||||
return True
|
|
||||||
if len(AMBuild.args) == 0:
|
|
||||||
return True
|
|
||||||
if not jobname in AMBuild.args:
|
|
||||||
return False
|
|
||||||
|
|
||||||
def DefaultExtCompiler(self, path):
|
|
||||||
compiler = self.DefaultCompiler()
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, path))
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, path, 'sdk'))
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public'))
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'extensions'))
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'sourcepawn'))
|
|
||||||
return compiler
|
|
||||||
|
|
||||||
def AutoVersion(self, folder, binary):
|
|
||||||
if AMBuild.target['platform'] == 'windows':
|
|
||||||
env = {'RCDEFINES': ['BINARY_NAME="' + binary.binaryFile + '"', 'SM_GENERATED_BUILD']}
|
|
||||||
binary.AddResourceFile(os.path.join(folder, 'version.rc' ), env)
|
|
||||||
elif AMBuild.target['platform'] == 'darwin' and isinstance(binary, Cpp.LibraryBuilder):
|
|
||||||
binary.compiler['POSTLINKFLAGS'].extend(['-compatibility_version', '1.0.0'])
|
|
||||||
binary.compiler['POSTLINKFLAGS'].extend(['-current_version', AMBuild.cache['version']])
|
|
||||||
else:
|
|
||||||
return
|
|
||||||
|
|
||||||
def ExtractDebugInfo(self, job, binary):
|
|
||||||
src = os.path.join('..', AMBuild.outputFolder, job.workFolder, binary.binaryFile)
|
|
||||||
job.AddCommand(ExtractDebugInfoCommand(binary, src))
|
|
||||||
|
|
||||||
def PreSetupHL2Job(self, job, builder, sdk):
|
|
||||||
info = self.sdkInfo[sdk]
|
|
||||||
sdkPath = AMBuild.cache[info['sdk']]
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
if sdk == 'ep1':
|
|
||||||
staticLibs = os.path.join(sdkPath, 'linux_sdk')
|
|
||||||
else:
|
|
||||||
staticLibs = os.path.join(sdkPath, 'lib', 'linux')
|
|
||||||
workFolder = os.path.join(AMBuild.outputFolder, job.workFolder)
|
|
||||||
if sdk in ['css', 'hl2dm', 'dods', 'tf2', 'l4d2']:
|
|
||||||
libs = ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib_srv.so', 'libtier0_srv.so']
|
|
||||||
for lib in libs:
|
|
||||||
link = os.path.join(workFolder, lib)
|
|
||||||
target = os.path.join(staticLibs, lib)
|
|
||||||
try:
|
|
||||||
os.lstat(link)
|
|
||||||
except:
|
|
||||||
job.AddCommand(SymlinkCommand(link, target))
|
|
||||||
elif sdk in ['l4d', 'nd', 'csgo']:
|
|
||||||
libs = ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib.so', 'libtier0.so']
|
|
||||||
if sdk == 'csgo':
|
|
||||||
libs.append('interfaces_i486.a')
|
|
||||||
for lib in libs:
|
|
||||||
link = os.path.join(workFolder, lib)
|
|
||||||
target = os.path.join(staticLibs, lib)
|
|
||||||
try:
|
|
||||||
os.lstat(link)
|
|
||||||
except:
|
|
||||||
job.AddCommand(SymlinkCommand(link, target))
|
|
||||||
else:
|
|
||||||
libs = ['tier1_i486.a', 'mathlib_i486.a', 'vstdlib_i486.so', 'tier0_i486.so']
|
|
||||||
for lib in libs:
|
|
||||||
link = os.path.join(workFolder, lib)
|
|
||||||
target = os.path.join(staticLibs, lib)
|
|
||||||
try:
|
|
||||||
os.lstat(link)
|
|
||||||
except:
|
|
||||||
job.AddCommand(SymlinkCommand(link, target))
|
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
|
||||||
staticLibs = os.path.join(sdkPath, 'lib', 'mac')
|
|
||||||
workFolder = os.path.join(AMBuild.outputFolder, job.workFolder)
|
|
||||||
libs = ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib.dylib', 'libtier0.dylib']
|
|
||||||
if sdk == 'csgo':
|
|
||||||
libs.append('interfaces_i486.a')
|
|
||||||
for lib in libs:
|
|
||||||
link = os.path.join(workFolder, lib)
|
|
||||||
target = os.path.join(staticLibs, lib)
|
|
||||||
try:
|
|
||||||
os.lstat(link)
|
|
||||||
except:
|
|
||||||
job.AddCommand(SymlinkCommand(link, target))
|
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
|
||||||
libs = ['tier0', 'tier1', 'vstdlib', 'mathlib']
|
|
||||||
if sdk in ['swarm', 'csgo']:
|
|
||||||
libs.append('interfaces')
|
|
||||||
for lib in libs:
|
|
||||||
libPath = os.path.join(sdkPath, 'lib', 'public', lib) + '.lib'
|
|
||||||
builder.RebuildIfNewer(libPath)
|
|
||||||
builder['POSTLINKFLAGS'].append(libPath)
|
|
||||||
|
|
||||||
def PostSetupHL2Job(self, job, builder, sdk):
|
|
||||||
if AMBuild.target['platform'] in ['linux', 'darwin']:
|
|
||||||
builder.AddObjectFiles(['tier1_i486.a', 'mathlib_i486.a'])
|
|
||||||
if sdk == 'csgo':
|
|
||||||
builder.AddObjectFiles(['interfaces_i486.a'])
|
|
||||||
|
|
||||||
def DefaultHL2Compiler(self, path, sdk, noLink = False, oldMms = '-legacy'):
|
|
||||||
compiler = self.DefaultExtCompiler(path)
|
|
||||||
|
|
||||||
mms = 'core'
|
|
||||||
if sdk == 'ep1':
|
|
||||||
mms += oldMms
|
|
||||||
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(self.mmsPath, mms))
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(self.mmsPath, mms, 'sourcehook'))
|
|
||||||
|
|
||||||
info = self.possibleSdks
|
|
||||||
compiler['CDEFINES'].extend(['SE_' + info[i]['name'] + '=' + info[i]['def'] for i in info])
|
|
||||||
|
|
||||||
# We don't build for Portal 2 (yet?, ever?), but using this define in code as
|
|
||||||
# it saves trouble if we ever need to
|
|
||||||
compiler['CDEFINES'].append('SE_PORTAL2=14')
|
|
||||||
|
|
||||||
paths = [['public'], ['public', 'engine'], ['public', 'mathlib'], ['public', 'vstdlib'],
|
|
||||||
['public', 'tier0'], ['public', 'tier1']]
|
|
||||||
if sdk == 'ep1' or sdk == 'darkm':
|
|
||||||
paths.append(['public', 'dlls'])
|
|
||||||
paths.append(['game_shared'])
|
|
||||||
else:
|
|
||||||
paths.append(['public', 'game', 'server'])
|
|
||||||
paths.append(['public', 'toolframework'])
|
|
||||||
paths.append(['game', 'shared'])
|
|
||||||
paths.append(['common'])
|
|
||||||
|
|
||||||
info = self.sdkInfo[sdk]
|
|
||||||
sdkPath = AMBuild.cache[info['sdk']]
|
|
||||||
|
|
||||||
compiler['CDEFINES'].append('SOURCE_ENGINE=' + info['def'])
|
|
||||||
|
|
||||||
if sdk in ['swarm','csgo']:
|
|
||||||
if AMBuild.target['platform'] == 'windows':
|
|
||||||
compiler['CDEFINES'].extend(['COMPILER_MSVC', 'COMPILER_MSVC32'])
|
|
||||||
else:
|
|
||||||
compiler['CDEFINES'].extend(['COMPILER_GCC'])
|
|
||||||
|
|
||||||
if sdk == 'ep1':
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
staticLibs = os.path.join(sdkPath, 'linux_sdk')
|
|
||||||
else:
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
staticLibs = os.path.join(sdkPath, 'lib', 'linux')
|
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
|
||||||
staticLibs = os.path.join(sdkPath, 'lib', 'mac')
|
|
||||||
|
|
||||||
for i in paths:
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(sdkPath, *i))
|
|
||||||
|
|
||||||
if not noLink:
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
compiler['POSTLINKFLAGS'][0:0] = ['-lm']
|
|
||||||
if sdk in ['css', 'hl2dm', 'dods', 'tf2', 'l4d2']:
|
|
||||||
compiler['POSTLINKFLAGS'][0:0] = ['libtier0_srv.so']
|
|
||||||
compiler['POSTLINKFLAGS'][0:0] = ['libvstdlib_srv.so']
|
|
||||||
elif sdk in ['l4d', 'nd', 'csgo']:
|
|
||||||
compiler['POSTLINKFLAGS'][0:0] = ['libtier0.so']
|
|
||||||
compiler['POSTLINKFLAGS'][0:0] = ['libvstdlib.so']
|
|
||||||
else:
|
|
||||||
compiler['POSTLINKFLAGS'][0:0] = ['tier0_i486.so']
|
|
||||||
compiler['POSTLINKFLAGS'][0:0] = ['vstdlib_i486.so']
|
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
|
||||||
compiler['POSTLINKFLAGS'][0:0] = ['libtier0.dylib']
|
|
||||||
compiler['POSTLINKFLAGS'][0:0] = ['libvstdlib.dylib']
|
|
||||||
|
|
||||||
return compiler
|
|
||||||
|
|
||||||
def ResolveEnvPath(self, env, defaultDir):
|
|
||||||
if env in os.environ:
|
|
||||||
path = os.environ[env]
|
|
||||||
if os.path.isdir(path):
|
|
||||||
return path
|
|
||||||
else:
|
|
||||||
head = os.getcwd()
|
|
||||||
oldhead = None
|
|
||||||
while head != None and head != oldhead:
|
|
||||||
path = os.path.join(head, defaultDir)
|
|
||||||
if os.path.isdir(path):
|
|
||||||
return path
|
|
||||||
oldhead = head
|
|
||||||
head, tail = os.path.split(head)
|
|
||||||
return None
|
|
||||||
|
|
||||||
sm = SM()
|
|
||||||
globals = {
|
|
||||||
'SM': sm
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AMBuild.Include(os.path.join('tools', 'buildbot', 'Versioning'), globals)
|
def ResolveEnvPath(env, folder):
|
||||||
|
if env in os.environ:
|
||||||
|
path = os.environ[env]
|
||||||
|
if os.path.isdir(path):
|
||||||
|
return path
|
||||||
|
else:
|
||||||
|
head = os.getcwd()
|
||||||
|
oldhead = None
|
||||||
|
while head != None and head != oldhead:
|
||||||
|
path = os.path.join(head, folder)
|
||||||
|
if os.path.isdir(path):
|
||||||
|
return path
|
||||||
|
oldhead = head
|
||||||
|
head, tail = os.path.split(head)
|
||||||
|
return None
|
||||||
|
|
||||||
FileList = [
|
class SMConfig(object):
|
||||||
['loader', 'AMBuilder'],
|
def __init__(self):
|
||||||
['core', 'AMBuilder'],
|
self.sdks = {}
|
||||||
['core', 'logic', 'AMBuilder'],
|
self.binaries = []
|
||||||
['extensions', 'bintools', 'AMBuilder'],
|
self.extensions = []
|
||||||
['extensions', 'clientprefs', 'AMBuilder'],
|
self.generated_headers = None
|
||||||
['extensions', 'cstrike', 'AMBuilder'],
|
self.mms_root = None
|
||||||
['extensions', 'curl', 'AMBuilder'],
|
self.mysql_root = None
|
||||||
['extensions', 'geoip', 'AMBuilder'],
|
self.spcomp = None
|
||||||
['extensions', 'mysql', 'AMBuilder'],
|
self.smx_files = {}
|
||||||
['extensions', 'sdkhooks', 'AMBuilder'],
|
self.versionlib = None
|
||||||
['extensions', 'sdktools', 'AMBuilder'],
|
|
||||||
['extensions', 'topmenus', 'AMBuilder'],
|
|
||||||
['extensions', 'updater', 'AMBuilder'],
|
|
||||||
['extensions', 'sqlite', 'AMBuilder'],
|
|
||||||
['extensions', 'regex', 'AMBuilder'],
|
|
||||||
['extensions', 'tf2', 'AMBuilder'],
|
|
||||||
['sourcepawn', 'jit', 'AMBuilder'],
|
|
||||||
['sourcepawn', 'compiler', 'AMBuilder'],
|
|
||||||
['plugins', 'AMBuilder'],
|
|
||||||
['tools', 'buildbot', 'PackageScript'],
|
|
||||||
['tools', 'buildbot', 'BreakpadSymbols']
|
|
||||||
]
|
|
||||||
|
|
||||||
if not sm.hasMySql:
|
def detectProductVersion(self):
|
||||||
FileList.remove(['extensions', 'mysql', 'AMBuilder'])
|
builder.AddConfigureFile('product.version')
|
||||||
|
|
||||||
for parts in FileList:
|
# For OS X dylib versioning
|
||||||
AMBuild.Include(os.path.join(*parts), globals)
|
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 detectSDKs(self):
|
||||||
|
sdk_list = builder.options.sdks.split(',')
|
||||||
|
use_all = sdk_list[0] == 'all'
|
||||||
|
use_present = sdk_list[0] == 'present'
|
||||||
|
|
||||||
|
for sdk_name in PossibleSDKs:
|
||||||
|
sdk = PossibleSDKs[sdk_name]
|
||||||
|
if builder.target_platform in sdk.platform:
|
||||||
|
sdk_path = ResolveEnvPath(sdk.envvar, sdk.folder)
|
||||||
|
if sdk_path is None:
|
||||||
|
if use_all or sdk_name in sdk_list:
|
||||||
|
raise Exception('Could not find a valid path for {0}'.format(sdk.envvar))
|
||||||
|
continue
|
||||||
|
if use_all or use_present or sdk_name in sdk_list:
|
||||||
|
sdk.path = sdk_path
|
||||||
|
self.sdks[sdk_name] = sdk
|
||||||
|
|
||||||
|
if len(self.sdks) < 1:
|
||||||
|
raise Exception('At least one SDK must be available.')
|
||||||
|
|
||||||
|
self.mms_root = ResolveEnvPath('MMSOURCE110', 'mmsource-1.10')
|
||||||
|
if not self.mms_root:
|
||||||
|
self.mms_root = ResolveEnvPath('MMSOURCE_DEV', 'mmsource-central')
|
||||||
|
if not self.mms_root:
|
||||||
|
raise Exception('Could not find a source copy of Metamod:Source')
|
||||||
|
|
||||||
|
if builder.options.hasMySql:
|
||||||
|
for i in range(7):
|
||||||
|
self.mysql_root = ResolveEnvPath('MYSQL5', 'mysql-5.' + str(i))
|
||||||
|
if self.mysql_root:
|
||||||
|
break
|
||||||
|
if not self.mysql_root:
|
||||||
|
raise Exception('Could not find a path to MySQL!')
|
||||||
|
|
||||||
|
def configure(self):
|
||||||
|
builder.AddConfigureFile('pushbuild.txt')
|
||||||
|
|
||||||
|
cfg = builder.DetectCompilers()
|
||||||
|
cxx = cfg.cxx
|
||||||
|
|
||||||
|
if cxx.behavior is 'gcc':
|
||||||
|
cfg.defines += [
|
||||||
|
'stricmp=strcasecmp',
|
||||||
|
'_stricmp=strcasecmp',
|
||||||
|
'_snprintf=snprintf',
|
||||||
|
'_vsnprintf=vsnprintf',
|
||||||
|
'HAVE_STDINT_H',
|
||||||
|
'GNUC',
|
||||||
|
]
|
||||||
|
cfg.cflags += [
|
||||||
|
'-pipe',
|
||||||
|
'-fno-strict-aliasing',
|
||||||
|
'-Wall',
|
||||||
|
'-Werror',
|
||||||
|
'-Wno-uninitialized',
|
||||||
|
'-Wno-unused',
|
||||||
|
'-Wno-logical-op-parentheses',
|
||||||
|
'-Wno-switch',
|
||||||
|
'-msse',
|
||||||
|
'-m32',
|
||||||
|
]
|
||||||
|
|
||||||
|
have_gcc = cxx.name is 'gcc'
|
||||||
|
have_clang = cxx.name is 'clang'
|
||||||
|
if have_clang or (have_gcc and cxx.majorVersion >= 4):
|
||||||
|
cfg.cflags += ['-fvisibility=hidden']
|
||||||
|
cfg.cxxflags += ['-fvisibility-inlines-hidden']
|
||||||
|
if have_clang or (have_gcc and cxx.minorVersion >= 6):
|
||||||
|
cfg.cflags += ['-Wno-narrowing']
|
||||||
|
if (have_gcc and cxx.minorVersion >= 7) or (have_clang and cxx.majorVersion >= 3):
|
||||||
|
cfg.cxxflags += ['-Wno-delete-non-virtual-dtor']
|
||||||
|
|
||||||
|
cfg.linkflags += ['-m32']
|
||||||
|
cfg.cxxflags += [
|
||||||
|
'-fno-exceptions',
|
||||||
|
'-fno-threadsafe-statics',
|
||||||
|
'-Wno-non-virtual-dtor',
|
||||||
|
'-Wno-overloaded-virtual',
|
||||||
|
]
|
||||||
|
|
||||||
|
if have_gcc:
|
||||||
|
cfg.cflags += ['-mfpmath=sse']
|
||||||
|
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 += ['-O3']
|
||||||
|
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']
|
||||||
|
if cxx.name == 'gcc':
|
||||||
|
cfg.linkflags += ['-static-libgcc']
|
||||||
|
elif cxx.name == 'clang':
|
||||||
|
cfg.linkflags += ['-lgcc_eh']
|
||||||
|
elif builder.target_platform == 'mac':
|
||||||
|
cfg.defines += ['OSX', '_OSX', 'POSIX']
|
||||||
|
cfg.linkflags += [
|
||||||
|
'-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 += [
|
||||||
|
'SOURCEMOD_BUILD',
|
||||||
|
'SM_GENERATED_BUILD',
|
||||||
|
'SM_USE_VERSIONLIB',
|
||||||
|
]
|
||||||
|
cfg.includes += [os.path.join(builder.buildPath, 'includes')]
|
||||||
|
cfg.includes += [os.path.join(builder.sourcePath, 'versionlib')]
|
||||||
|
|
||||||
|
def LibraryBuilder(self, compiler, name):
|
||||||
|
binary = compiler.Library(name)
|
||||||
|
if builder.target_platform == 'windows':
|
||||||
|
binary.sources += ['version.rc']
|
||||||
|
binary.compiler.rcdefines += [
|
||||||
|
'BINARY_NAME="{0}"'.format(binary.outputFile),
|
||||||
|
'SM_GENERATED_BUILD',
|
||||||
|
'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 += SM.generated_headers
|
||||||
|
return binary
|
||||||
|
|
||||||
|
def ProgramBuilder(self, compiler, name):
|
||||||
|
binary = compiler.Program(name)
|
||||||
|
if builder.target_platform == 'windows':
|
||||||
|
binary.sources += ['version.rc']
|
||||||
|
binary.compiler.rcdefines += [
|
||||||
|
'BINARY_NAME="{0}"'.format(binary.outputFile),
|
||||||
|
'SM_GENERATED_BUILD',
|
||||||
|
'RC_COMPILE',
|
||||||
|
]
|
||||||
|
binary.compiler.linkflags += [self.versionlib]
|
||||||
|
binary.compiler.sourcedeps += SM.generated_headers
|
||||||
|
return binary
|
||||||
|
|
||||||
|
def Library(self, context, name):
|
||||||
|
compiler = context.compiler.clone()
|
||||||
|
return self.LibraryBuilder(compiler, name)
|
||||||
|
|
||||||
|
def Program(self, context, name):
|
||||||
|
compiler = context.compiler.clone()
|
||||||
|
return self.ProgramBuilder(compiler, name)
|
||||||
|
|
||||||
|
def ExtCompiler(self, context):
|
||||||
|
compiler = context.compiler.clone()
|
||||||
|
compiler.cxxincludes += [
|
||||||
|
os.path.join(context.currentSourcePath),
|
||||||
|
os.path.join(context.currentSourcePath, 'sdk'),
|
||||||
|
os.path.join(builder.sourcePath, 'public'),
|
||||||
|
os.path.join(builder.sourcePath, 'public', 'extensions'),
|
||||||
|
os.path.join(builder.sourcePath, 'public', 'sourcepawn'),
|
||||||
|
os.path.join(builder.sourcePath, 'public', 'amtl'),
|
||||||
|
]
|
||||||
|
return compiler
|
||||||
|
|
||||||
|
def HL2Compiler(self, context, sdk):
|
||||||
|
compiler = self.ExtCompiler(context)
|
||||||
|
|
||||||
|
if sdk.name == 'ep1':
|
||||||
|
mms_path = os.path.join(self.mms_root, 'core-legacy')
|
||||||
|
else:
|
||||||
|
mms_path = os.path.join(self.mms_root, 'core')
|
||||||
|
|
||||||
|
compiler.cxxincludes += [
|
||||||
|
os.path.join(mms_path),
|
||||||
|
os.path.join(mms_path, 'sourcehook'),
|
||||||
|
]
|
||||||
|
|
||||||
|
defines = ['SE_' + PossibleSDKs[i].define + '=' + PossibleSDKs[i].code for i in PossibleSDKs]
|
||||||
|
compiler.defines += defines
|
||||||
|
paths = [
|
||||||
|
['public'],
|
||||||
|
['public', 'engine'],
|
||||||
|
['public', 'mathlib'],
|
||||||
|
['public', 'vstdlib'],
|
||||||
|
['public', 'tier0'],
|
||||||
|
['public', 'tier1']
|
||||||
|
]
|
||||||
|
if sdk.name == 'ep1' or sdk.name == 'darkm':
|
||||||
|
paths.append(['public', 'dlls'])
|
||||||
|
paths.append(['game_shared'])
|
||||||
|
else:
|
||||||
|
paths.append(['public', 'game', 'server'])
|
||||||
|
paths.append(['public', 'toolframework'])
|
||||||
|
paths.append(['game', 'shared'])
|
||||||
|
paths.append(['common'])
|
||||||
|
|
||||||
|
compiler.defines += ['SOURCE_ENGINE=' + sdk.code]
|
||||||
|
|
||||||
|
if sdk.name == '2013' and compiler.cxx.behavior == 'gcc':
|
||||||
|
# The 2013 SDK already has these in public/tier0/basetypes.h
|
||||||
|
compiler.defines.remove('stricmp=strcasecmp')
|
||||||
|
compiler.defines.remove('_stricmp=strcasecmp')
|
||||||
|
compiler.defines.remove('_snprintf=snprintf')
|
||||||
|
compiler.defines.remove('_vsnprintf=vsnprintf')
|
||||||
|
|
||||||
|
if sdk.name in ['swarm', 'blade', 'insurgency', 'csgo', 'dota']:
|
||||||
|
if compiler.cc.behavior == 'msvc':
|
||||||
|
compiler.defines += ['COMPILER_MSVC', 'COMPILER_MSVC32']
|
||||||
|
else:
|
||||||
|
compiler.defines += ['COMPILER_GCC']
|
||||||
|
|
||||||
|
if sdk.name in ['css', 'hl2dm', 'dods', '2013', 'tf2', 'l4d2']:
|
||||||
|
if builder.target_platform in ['linux', 'mac']:
|
||||||
|
compiler.defines += ['NO_MALLOC_OVERRIDE']
|
||||||
|
|
||||||
|
for path in paths:
|
||||||
|
compiler.cxxincludes += [os.path.join(sdk.path, *path)]
|
||||||
|
|
||||||
|
return compiler
|
||||||
|
|
||||||
|
def ExtLibrary(self, context, name):
|
||||||
|
compiler = self.ExtCompiler(context)
|
||||||
|
return self.LibraryBuilder(compiler, name)
|
||||||
|
|
||||||
|
def HL2Library(self, context, name, sdk):
|
||||||
|
compiler = self.HL2Compiler(context, sdk)
|
||||||
|
|
||||||
|
if builder.target_platform is 'linux':
|
||||||
|
if sdk.name is 'ep1':
|
||||||
|
lib_folder = os.path.join(sdk.path, 'linux_sdk')
|
||||||
|
elif sdk.name is '2013':
|
||||||
|
lib_folder = os.path.join(sdk.path, 'lib', 'public', 'linux32')
|
||||||
|
else:
|
||||||
|
lib_folder = os.path.join(sdk.path, 'lib', 'linux')
|
||||||
|
elif builder.target_platform == 'mac':
|
||||||
|
if sdk.name is '2013':
|
||||||
|
lib_folder = os.path.join(sdk.path, 'lib', 'public', 'osx32')
|
||||||
|
else:
|
||||||
|
lib_folder = os.path.join(sdk.path, 'lib', 'mac')
|
||||||
|
|
||||||
|
if builder.target_platform in ['linux', 'mac']:
|
||||||
|
if sdk.name is '2013':
|
||||||
|
compiler.postlink += [
|
||||||
|
compiler.Dep(os.path.join(lib_folder, 'tier1.a')),
|
||||||
|
compiler.Dep(os.path.join(lib_folder, 'mathlib.a'))
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
compiler.postlink += [
|
||||||
|
compiler.Dep(os.path.join(lib_folder, 'tier1_i486.a')),
|
||||||
|
compiler.Dep(os.path.join(lib_folder, 'mathlib_i486.a'))
|
||||||
|
]
|
||||||
|
|
||||||
|
if sdk.name in ['blade', 'insurgency', 'csgo', 'dota']:
|
||||||
|
compiler.postlink += [compiler.Dep(os.path.join(lib_folder, 'interfaces_i486.a'))]
|
||||||
|
|
||||||
|
binary = self.LibraryBuilder(compiler, name)
|
||||||
|
|
||||||
|
dynamic_libs = []
|
||||||
|
if builder.target_platform == 'linux':
|
||||||
|
compiler.linkflags[0:0] = ['-lm']
|
||||||
|
if sdk.name in ['css', 'hl2dm', 'dods', 'tf2', '2013', 'l4d2']:
|
||||||
|
dynamic_libs = ['libtier0_srv.so', 'libvstdlib_srv.so']
|
||||||
|
elif sdk.name in ['l4d', 'nd', 'blade', 'insurgency', 'csgo']:
|
||||||
|
dynamic_libs = ['libtier0.so', 'libvstdlib.so']
|
||||||
|
else:
|
||||||
|
dynamic_libs = ['tier0_i486.so', 'vstdlib_i486.so']
|
||||||
|
elif builder.target_platform == 'mac':
|
||||||
|
binary.compiler.linkflags.append('-liconv')
|
||||||
|
dynamic_libs = ['libtier0.dylib', 'libvstdlib.dylib']
|
||||||
|
elif builder.target_platform == 'windows':
|
||||||
|
libs = ['tier0', 'tier1', 'vstdlib', 'mathlib']
|
||||||
|
if sdk.name in ['swarm', 'blade', 'insurgency', 'csgo', 'dota']:
|
||||||
|
libs.append('interfaces')
|
||||||
|
for lib in libs:
|
||||||
|
lib_path = os.path.join(sdk.path, 'lib', 'public', lib) + '.lib'
|
||||||
|
binary.compiler.linkflags.append(binary.Dep(lib_path))
|
||||||
|
|
||||||
|
for library in dynamic_libs:
|
||||||
|
source_path = os.path.join(lib_folder, library)
|
||||||
|
output_path = os.path.join(binary.localFolder, library)
|
||||||
|
|
||||||
|
def make_linker(source_path, output_path):
|
||||||
|
def link(context, binary):
|
||||||
|
cmd_node, (output,) = context.AddSymlink(source_path, output_path)
|
||||||
|
return output
|
||||||
|
return link
|
||||||
|
|
||||||
|
linker = make_linker(source_path, output_path)
|
||||||
|
binary.compiler.linkflags[0:0] = [binary.Dep(library, linker)]
|
||||||
|
|
||||||
|
return binary
|
||||||
|
|
||||||
|
SM = SMConfig()
|
||||||
|
SM.detectProductVersion()
|
||||||
|
SM.detectSDKs()
|
||||||
|
SM.configure()
|
||||||
|
|
||||||
|
SM.generated_headers = builder.RunScript(
|
||||||
|
'tools/buildbot/Versioning',
|
||||||
|
{ 'SM': SM }
|
||||||
|
)
|
||||||
|
SM.versionlib = builder.RunScript(
|
||||||
|
'versionlib/AMBuilder',
|
||||||
|
{ 'SM': SM }
|
||||||
|
)
|
||||||
|
|
||||||
|
builder.RunBuildScripts(
|
||||||
|
[
|
||||||
|
'loader/AMBuilder',
|
||||||
|
'core/AMBuilder',
|
||||||
|
'core/logic/AMBuilder',
|
||||||
|
'extensions/bintools/AMBuilder',
|
||||||
|
'extensions/clientprefs/AMBuilder',
|
||||||
|
'extensions/curl/AMBuilder',
|
||||||
|
'extensions/cstrike/AMBuilder',
|
||||||
|
'extensions/geoip/AMBuilder',
|
||||||
|
'extensions/mysql/AMBuilder',
|
||||||
|
'extensions/regex/AMBuilder',
|
||||||
|
'extensions/sdkhooks/AMBuilder',
|
||||||
|
'extensions/sdktools/AMBuilder',
|
||||||
|
'extensions/sqlite/AMBuilder',
|
||||||
|
'extensions/tf2/AMBuilder',
|
||||||
|
'extensions/topmenus/AMBuilder',
|
||||||
|
'extensions/updater/AMBuilder',
|
||||||
|
'sourcepawn/compiler/AMBuilder',
|
||||||
|
'sourcepawn/jit/AMBuilder',
|
||||||
|
'plugins/AMBuilder',
|
||||||
|
'tools/buildbot/PackageScript',
|
||||||
|
],
|
||||||
|
{
|
||||||
|
'SM': SM
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
if builder.options.breakpad_dump:
|
||||||
|
builder.RunScript('tools/buildbot/BreakpadSymbols', { 'SM': SM })
|
||||||
|
19
configure.py
19
configure.py
@ -1,8 +1,19 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet:
|
# vim: set ts=2 sw=2 tw=99 noet:
|
||||||
import sys
|
import sys
|
||||||
import ambuild.runner as runner
|
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 = runner.Runner()
|
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',
|
run.options.add_option('--enable-debug', action='store_const', const='1', dest='debug',
|
||||||
help='Enable debugging symbols')
|
help='Enable debugging symbols')
|
||||||
run.options.add_option('--enable-optimize', action='store_const', const='1', dest='opt',
|
run.options.add_option('--enable-optimize', action='store_const', const='1', dest='opt',
|
||||||
@ -12,4 +23,6 @@ run.options.add_option('--no-mysql', action='store_false', default=True, dest='h
|
|||||||
run.options.add_option('-s', '--sdks', default='all', dest='sdks',
|
run.options.add_option('-s', '--sdks', default='all', dest='sdks',
|
||||||
help='Build against specified SDKs; valid args are "all", "present", or '
|
help='Build against specified SDKs; valid args are "all", "present", or '
|
||||||
'comma-delimited list of engine names (default: %default)')
|
'comma-delimited list of engine names (default: %default)')
|
||||||
run.Configure(sys.path[0])
|
run.options.add_option('--breakpad-dump', action='store_true', dest='breakpad_dump',
|
||||||
|
default=False, help='Dump and upload breakpad symbols')
|
||||||
|
run.Configure()
|
||||||
|
232
core/AMBuilder
232
core/AMBuilder
@ -1,128 +1,124 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
from ambuild.command import SymlinkCommand
|
|
||||||
|
|
||||||
for i in SM.sdkInfo:
|
for sdk_name in SM.sdks:
|
||||||
sdk = SM.sdkInfo[i]
|
sdk = SM.sdks[sdk_name]
|
||||||
if AMBuild.target['platform'] not in sdk['platform']:
|
binary_name = 'sourcemod.' + sdk.ext
|
||||||
continue
|
|
||||||
|
|
||||||
name = 'sourcemod.' + sdk['ext']
|
binary = SM.HL2Library(builder, binary_name, sdk)
|
||||||
|
compiler = binary.compiler
|
||||||
|
|
||||||
compiler = SM.DefaultHL2Compiler('core', i)
|
if sdk.name is 'csgo':
|
||||||
|
# Protobuf 2.3 headers have some signed/unsigned compares. I believe that it's fixed in later versions, but Valve.
|
||||||
|
if compiler.cxx.behavior is 'gcc':
|
||||||
|
compiler.cflags += ['-Wno-sign-compare']
|
||||||
|
compiler.cxxincludes += [
|
||||||
|
os.path.join(sdk.path, 'common', 'protobuf-2.3.0', 'src'),
|
||||||
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf'),
|
||||||
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf')
|
||||||
|
]
|
||||||
|
elif sdk.name is 'dota':
|
||||||
|
compiler.cxxincludes += [
|
||||||
|
os.path.join(sdk.path, 'common', 'protobuf-2.4.1', 'src'),
|
||||||
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf'),
|
||||||
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf'),
|
||||||
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf')
|
||||||
|
]
|
||||||
|
|
||||||
if i == 'csgo':
|
if builder.target_platform is 'linux':
|
||||||
# Protobuf 2.3 headers have some signed/unsigned compares. I believe that it's fixed in later versions, but Valve.
|
compiler.postlink += ['-lpthread', '-lrt']
|
||||||
if isinstance(compiler.cxx, Cpp.CompatGCC):
|
|
||||||
compiler.AddToListVar('CFLAGS', '-Wno-sign-compare')
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'common', 'protobuf-2.3.0', 'src'))
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'public', 'engine', 'protobuf'))
|
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'public', 'game', 'shared', 'csgo', 'protobuf'))
|
|
||||||
|
|
||||||
extension = AMBuild.AddJob(name)
|
if sdk.name is 'csgo' or sdk.name is 'dota':
|
||||||
binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)
|
if builder.target_platform is 'linux':
|
||||||
SM.PreSetupHL2Job(extension, binary, i)
|
lib_path = os.path.join(sdk.path, 'lib', 'linux32', 'release', 'libprotobuf.a')
|
||||||
|
elif builder.target_platform is 'mac':
|
||||||
|
lib_path = os.path.join(sdk.path, 'lib', 'osx32', 'release', 'libprotobuf.a')
|
||||||
|
elif builder.target_platform is 'windows':
|
||||||
|
if 'DEBUG' in compiler.defines:
|
||||||
|
lib_path = os.path.join(sdk.path, 'lib', 'win32', 'debug', 'vs2010', 'libprotobuf.lib')
|
||||||
|
else:
|
||||||
|
lib_path = os.path.join(sdk.path, 'lib', 'win32', 'release', 'vs2010', 'libprotobuf.lib')
|
||||||
|
compiler.linkflags.insert(0, binary.Dep(lib_path))
|
||||||
|
|
||||||
if i == 'csgo':
|
binary.sources += [
|
||||||
if AMBuild.target['platform'] == 'linux':
|
'AdminCache.cpp',
|
||||||
link = os.path.join(os.path.join(AMBuild.outputFolder, extension.workFolder), 'libprotobuf.a')
|
'MenuStyle_Valve.cpp',
|
||||||
target = os.path.join(os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'linux32', 'release'), 'libprotobuf.a')
|
'logic_bridge.cpp',
|
||||||
try:
|
'smn_entities.cpp',
|
||||||
os.lstat(link)
|
'sm_stringutil.cpp',
|
||||||
except:
|
'MenuVoting.cpp',
|
||||||
extension.AddCommand(SymlinkCommand(link, target))
|
'smn_events.cpp',
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
'smn_menus.cpp',
|
||||||
link = os.path.join(os.path.join(AMBuild.outputFolder, extension.workFolder), 'libprotobuf.a')
|
'sm_trie.cpp',
|
||||||
target = os.path.join(os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'osx32', 'release'), 'libprotobuf.a')
|
'CDataPack.cpp',
|
||||||
try:
|
'frame_hooks.cpp',
|
||||||
os.lstat(link)
|
'smn_nextmap.cpp',
|
||||||
except:
|
'sourcemm_api.cpp',
|
||||||
extension.AddCommand(SymlinkCommand(link, target))
|
'ChatTriggers.cpp',
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
'smn_player.cpp',
|
||||||
libPath = os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'win32', 'release', 'vs2010', 'libprotobuf.lib')
|
'sourcemod.cpp',
|
||||||
binary.RebuildIfNewer(libPath)
|
'concmd_cleaner.cpp',
|
||||||
binary['POSTLINKFLAGS'].append(libPath)
|
'HalfLife2.cpp',
|
||||||
|
'NextMap.cpp',
|
||||||
|
'ConCmdManager.cpp',
|
||||||
|
'ConVarManager.cpp',
|
||||||
|
'LibrarySys.cpp',
|
||||||
|
'PlayerManager.cpp',
|
||||||
|
'TimerSys.cpp',
|
||||||
|
'CoreConfig.cpp',
|
||||||
|
'Logger.cpp',
|
||||||
|
'smn_halflife.cpp',
|
||||||
|
'smn_console.cpp',
|
||||||
|
'UserMessages.cpp',
|
||||||
|
'MenuManager.cpp',
|
||||||
|
'smn_core.cpp',
|
||||||
|
'smn_hudtext.cpp',
|
||||||
|
'smn_usermsgs.cpp',
|
||||||
|
'MenuStyle_Base.cpp',
|
||||||
|
'smn_keyvalues.cpp',
|
||||||
|
'smn_vector.cpp',
|
||||||
|
'EventManager.cpp',
|
||||||
|
'MenuStyle_Radio.cpp',
|
||||||
|
'sm_autonatives.cpp',
|
||||||
|
'sm_srvcmds.cpp',
|
||||||
|
'ConsoleDetours.cpp',
|
||||||
|
'NativeInvoker.cpp',
|
||||||
|
'smn_database.cpp',
|
||||||
|
'ForwardSys.cpp',
|
||||||
|
'Database.cpp',
|
||||||
|
'DebugReporter.cpp',
|
||||||
|
'ShareSys.cpp',
|
||||||
|
'PluginSys.cpp',
|
||||||
|
'HandleSys.cpp',
|
||||||
|
'NativeOwner.cpp',
|
||||||
|
'ExtensionSys.cpp',
|
||||||
|
'smn_fakenatives.cpp',
|
||||||
|
'smn_filesystem.cpp',
|
||||||
|
'ADTFactory.cpp',
|
||||||
|
'PluginInfoDatabase.cpp',
|
||||||
|
]
|
||||||
|
|
||||||
|
if sdk.name in ['csgo', 'dota']:
|
||||||
|
binary.sources += ['smn_protobuf.cpp']
|
||||||
|
else:
|
||||||
|
binary.sources += ['smn_bitbuffer.cpp']
|
||||||
|
|
||||||
files = [
|
if sdk.name is 'csgo':
|
||||||
'AdminCache.cpp',
|
binary.sources += [
|
||||||
'ExtensionSys.cpp',
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'netmessages.pb.cc'),
|
||||||
'MenuStyle_Valve.cpp',
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessages.pb.cc'),
|
||||||
'logic_bridge.cpp',
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessage_helpers.cpp'),
|
||||||
'smn_entities.cpp',
|
]
|
||||||
'sm_stringutil.cpp',
|
elif sdk.name is 'dota':
|
||||||
'ADTFactory.cpp',
|
binary.sources += [
|
||||||
'ForwardSys.cpp',
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'networkbasetypes.pb.cc'),
|
||||||
'MenuVoting.cpp',
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'netmessages.pb.cc'),
|
||||||
'smn_events.cpp',
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'ai_activity.pb.cc'),
|
||||||
'smn_menus.cpp',
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'usermessages.pb.cc'),
|
||||||
'sm_trie.cpp',
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_commonmessages.pb.cc'),
|
||||||
'CDataPack.cpp',
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_usermessages.pb.cc'),
|
||||||
'frame_hooks.cpp',
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_usermessage_helpers.cpp'),
|
||||||
'NativeInvoker.cpp',
|
]
|
||||||
'smn_fakenatives.cpp',
|
|
||||||
'smn_nextmap.cpp',
|
|
||||||
'sourcemm_api.cpp',
|
|
||||||
'ChatTriggers.cpp',
|
|
||||||
'NativeOwner.cpp',
|
|
||||||
'smn_filesystem.cpp',
|
|
||||||
'smn_player.cpp',
|
|
||||||
'sourcemod.cpp',
|
|
||||||
'concmd_cleaner.cpp',
|
|
||||||
'HalfLife2.cpp',
|
|
||||||
'NextMap.cpp',
|
|
||||||
'ConCmdManager.cpp',
|
|
||||||
'HandleSys.cpp',
|
|
||||||
'ConVarManager.cpp',
|
|
||||||
'LibrarySys.cpp',
|
|
||||||
'PlayerManager.cpp',
|
|
||||||
'TimerSys.cpp',
|
|
||||||
'CoreConfig.cpp',
|
|
||||||
'Logger.cpp',
|
|
||||||
'PluginInfoDatabase.cpp',
|
|
||||||
'smn_halflife.cpp',
|
|
||||||
'PluginSys.cpp',
|
|
||||||
'smn_console.cpp',
|
|
||||||
'UserMessages.cpp',
|
|
||||||
'Database.cpp',
|
|
||||||
'MenuManager.cpp',
|
|
||||||
'smn_core.cpp',
|
|
||||||
'smn_hudtext.cpp',
|
|
||||||
'smn_usermsgs.cpp',
|
|
||||||
'DebugReporter.cpp',
|
|
||||||
'MenuStyle_Base.cpp',
|
|
||||||
'ShareSys.cpp',
|
|
||||||
'smn_database.cpp',
|
|
||||||
'smn_keyvalues.cpp',
|
|
||||||
'smn_vector.cpp',
|
|
||||||
'EventManager.cpp',
|
|
||||||
'MenuStyle_Radio.cpp',
|
|
||||||
'sm_autonatives.cpp',
|
|
||||||
'sm_srvcmds.cpp',
|
|
||||||
'ConsoleDetours.cpp'
|
|
||||||
]
|
|
||||||
|
|
||||||
if i == 'csgo':
|
|
||||||
files.append('smn_protobuf.cpp')
|
|
||||||
else:
|
|
||||||
files.append('smn_bitbuffer.cpp')
|
|
||||||
|
|
||||||
binary.AddSourceFiles('core', files)
|
SM.binaries += [builder.Add(binary)]
|
||||||
|
|
||||||
if i == 'csgo':
|
|
||||||
files = [
|
|
||||||
os.path.join('public', 'engine', 'protobuf', 'netmessages.pb.cc'),
|
|
||||||
os.path.join('public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessages.pb.cc'),
|
|
||||||
os.path.join('public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessage_helpers.cpp'),
|
|
||||||
]
|
|
||||||
binary.AddSourceFiles(AMBuild.cache[sdk['sdk']], files)
|
|
||||||
|
|
||||||
SM.PostSetupHL2Job(extension, binary, i)
|
|
||||||
|
|
||||||
if i == 'csgo':
|
|
||||||
if AMBuild.target['platform'] in ['linux', 'darwin']:
|
|
||||||
binary.AddObjectFiles(['libprotobuf.a'])
|
|
||||||
|
|
||||||
SM.AutoVersion('core', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
@ -408,7 +408,7 @@ bool SM_ExecuteConfig(CPlugin *pl, AutoConfig *cfg, bool can_create)
|
|||||||
FILE *fp = fopen(file, "wt");
|
FILE *fp = fopen(file, "wt");
|
||||||
if (fp)
|
if (fp)
|
||||||
{
|
{
|
||||||
fprintf(fp, "// This file was auto-generated by SourceMod (v%s)\n", SM_VERSION_STRING);
|
fprintf(fp, "// This file was auto-generated by SourceMod (v%s)\n", SOURCEMOD_VERSION);
|
||||||
fprintf(fp, "// ConVars for plugin \"%s\"\n", pl->GetFilename());
|
fprintf(fp, "// ConVars for plugin \"%s\"\n", pl->GetFilename());
|
||||||
fprintf(fp, "\n\n");
|
fprintf(fp, "\n\n");
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ void Logger::_NewMapFile()
|
|||||||
} else {
|
} else {
|
||||||
char date[32];
|
char date[32];
|
||||||
strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
|
strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
|
||||||
fprintf(fp, "L %s: SourceMod log file started (file \"L%02d%02d%03d.log\") (Version \"%s\")\n", date, curtime->tm_mon + 1, curtime->tm_mday, i, SM_VERSION_STRING);
|
fprintf(fp, "L %s: SourceMod log file started (file \"L%02d%02d%03d.log\") (Version \"%s\")\n", date, curtime->tm_mon + 1, curtime->tm_mday, i, SOURCEMOD_VERSION);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -362,7 +362,7 @@ void Logger::LogMessage(const char *vafmt, ...)
|
|||||||
char date[32];
|
char date[32];
|
||||||
m_DailyPrintHdr = false;
|
m_DailyPrintHdr = false;
|
||||||
strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
|
strftime(date, sizeof(date), "%m/%d/%Y - %H:%M:%S", curtime);
|
||||||
fprintf(fp, "L %s: SourceMod log file session started (file \"L%04d%02d%02d.log\") (Version \"%s\")\n", date, curtime->tm_year + 1900, curtime->tm_mon + 1, curtime->tm_mday, SM_VERSION_STRING);
|
fprintf(fp, "L %s: SourceMod log file session started (file \"L%04d%02d%02d.log\") (Version \"%s\")\n", date, curtime->tm_year + 1900, curtime->tm_mon + 1, curtime->tm_mday, SOURCEMOD_VERSION);
|
||||||
}
|
}
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, vafmt);
|
va_start(ap, vafmt);
|
||||||
|
@ -816,7 +816,7 @@ void PlayerManager::OnClientCommand(edict_t *pEntity)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ClientConsolePrint(pEntity,
|
ClientConsolePrint(pEntity,
|
||||||
"SourceMod %s, by AlliedModders LLC", SM_VERSION_STRING);
|
"SourceMod %s, by AlliedModders LLC", SOURCEMOD_VERSION);
|
||||||
ClientConsolePrint(pEntity,
|
ClientConsolePrint(pEntity,
|
||||||
"To see running plugins, type \"sm plugins\"");
|
"To see running plugins, type \"sm plugins\"");
|
||||||
ClientConsolePrint(pEntity,
|
ClientConsolePrint(pEntity,
|
||||||
|
@ -1,61 +1,59 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultCompiler()
|
binary = SM.Library(builder, 'sourcemod.logic')
|
||||||
base = AMBuild.sourceFolder
|
binary.compiler.cxxincludes += [
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
os.path.join(builder.sourcePath, 'core', 'logic'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'core', 'logic'))
|
os.path.join(builder.sourcePath, 'public'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'public'))
|
os.path.join(builder.sourcePath, 'public', 'sourcepawn'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'public', 'sourcepawn'))
|
os.path.join(builder.sourcePath, 'public', 'amtl'),
|
||||||
compiler['CDEFINES'].append('SM_DEFAULT_THREADER')
|
os.path.join(SM.mms_root, 'core', 'sourcehook')
|
||||||
compiler['CDEFINES'].append('SM_LOGIC')
|
]
|
||||||
|
binary.compiler.defines += [
|
||||||
if AMBuild.target['platform'] == 'linux':
|
'SM_DEFAULT_THREADER',
|
||||||
compiler['POSTLINKFLAGS'].append('-lpthread')
|
'SM_LOGIC'
|
||||||
if AMBuild.target['platform'] == 'darwin':
|
]
|
||||||
compiler['CFLAGS'].extend(['-Wno-deprecated-declarations'])
|
|
||||||
compiler['POSTLINKFLAGS'].extend(['-framework', 'CoreServices'])
|
if builder.target_platform is 'linux':
|
||||||
|
binary.compiler.postlink += ['-lpthread', '-lrt']
|
||||||
extension = AMBuild.AddJob('sourcemod.logic')
|
elif builder.target_platform is 'mac':
|
||||||
binary = Cpp.LibraryBuilder('sourcemod.logic', AMBuild, extension, compiler)
|
binary.compiler.cflags += ['-Wno-deprecated-declarations']
|
||||||
files = [
|
binary.compiler.postlink += ['-framework', 'CoreServices']
|
||||||
'common_logic.cpp',
|
binary.sources += [
|
||||||
'smn_adt_array.cpp',
|
'common_logic.cpp',
|
||||||
'smn_sorting.cpp',
|
'smn_adt_array.cpp',
|
||||||
'smn_maplists.cpp',
|
'smn_sorting.cpp',
|
||||||
'smn_adt_stack.cpp',
|
'smn_maplists.cpp',
|
||||||
'thread/ThreadWorker.cpp',
|
'smn_adt_stack.cpp',
|
||||||
'thread/BaseWorker.cpp',
|
'thread/ThreadWorker.cpp',
|
||||||
'ThreadSupport.cpp',
|
'thread/BaseWorker.cpp',
|
||||||
'smn_float.cpp',
|
'ThreadSupport.cpp',
|
||||||
'TextParsers.cpp',
|
'smn_float.cpp',
|
||||||
'smn_textparse.cpp',
|
'TextParsers.cpp',
|
||||||
'smn_adt_trie.cpp',
|
'smn_textparse.cpp',
|
||||||
'Profiler.cpp',
|
'smn_adt_trie.cpp',
|
||||||
'smn_functions.cpp',
|
'Profiler.cpp',
|
||||||
'smn_timers.cpp',
|
'smn_functions.cpp',
|
||||||
'smn_players.cpp',
|
'smn_timers.cpp',
|
||||||
'MemoryUtils.cpp',
|
'smn_players.cpp',
|
||||||
'smn_admin.cpp',
|
'MemoryUtils.cpp',
|
||||||
'smn_banning.cpp',
|
'smn_admin.cpp',
|
||||||
'stringutil.cpp',
|
'smn_banning.cpp',
|
||||||
'Translator.cpp',
|
'stringutil.cpp',
|
||||||
'PhraseCollection.cpp',
|
'Translator.cpp',
|
||||||
'smn_lang.cpp',
|
'PhraseCollection.cpp',
|
||||||
'smn_string.cpp',
|
'smn_lang.cpp',
|
||||||
'smn_handles.cpp',
|
'smn_string.cpp',
|
||||||
'smn_datapacks.cpp',
|
'smn_handles.cpp',
|
||||||
'smn_gameconfigs.cpp',
|
'smn_datapacks.cpp',
|
||||||
'GameConfigs.cpp',
|
'smn_gameconfigs.cpp',
|
||||||
'sm_crc32.cpp',
|
'GameConfigs.cpp',
|
||||||
'smn_profiler.cpp'
|
'sm_crc32.cpp',
|
||||||
]
|
'smn_profiler.cpp',
|
||||||
if AMBuild.target['platform'] == 'windows':
|
]
|
||||||
files.append('thread/WinThreads.cpp')
|
if builder.target_platform is 'windows':
|
||||||
|
binary.sources += ['thread/WinThreads.cpp']
|
||||||
else:
|
else:
|
||||||
files.append('thread/PosixThreads.cpp')
|
binary.sources += ['thread/PosixThreads.cpp']
|
||||||
binary.AddSourceFiles('core/logic', files)
|
|
||||||
SM.AutoVersion('core/logic', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
SM.binaries += [builder.Add(binary)]
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
RootConsoleMenu g_RootMenu;
|
RootConsoleMenu g_RootMenu;
|
||||||
|
|
||||||
ConVar sourcemod_version("sourcemod_version", SM_VERSION_STRING, FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY, "SourceMod Version");
|
ConVar sourcemod_version("sourcemod_version", SOURCEMOD_VERSION, FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY, "SourceMod Version");
|
||||||
|
|
||||||
RootConsoleMenu::RootConsoleMenu()
|
RootConsoleMenu::RootConsoleMenu()
|
||||||
{
|
{
|
||||||
@ -339,11 +339,11 @@ void RootConsoleMenu::OnRootConsoleCommand(const char *cmdname, const CCommand &
|
|||||||
else if (strcmp(cmdname, "version") == 0)
|
else if (strcmp(cmdname, "version") == 0)
|
||||||
{
|
{
|
||||||
ConsolePrint(" SourceMod Version Information:");
|
ConsolePrint(" SourceMod Version Information:");
|
||||||
ConsolePrint(" SourceMod Version: %s", SM_VERSION_STRING);
|
ConsolePrint(" SourceMod Version: %s", SOURCEMOD_VERSION);
|
||||||
ConsolePrint(" SourcePawn Engine: %s (build %s)", g_pSourcePawn2->GetEngineName(), g_pSourcePawn2->GetVersionString());
|
ConsolePrint(" SourcePawn Engine: %s (build %s)", g_pSourcePawn2->GetEngineName(), g_pSourcePawn2->GetVersionString());
|
||||||
ConsolePrint(" SourcePawn API: v1 = %d, v2 = %d", g_pSourcePawn->GetEngineAPIVersion(), g_pSourcePawn2->GetAPIVersion());
|
ConsolePrint(" SourcePawn API: v1 = %d, v2 = %d", g_pSourcePawn->GetEngineAPIVersion(), g_pSourcePawn2->GetAPIVersion());
|
||||||
ConsolePrint(" Compiled on: %s %s", __DATE__, __TIME__);
|
ConsolePrint(" Compiled on: %s %s", __DATE__, __TIME__);
|
||||||
ConsolePrint(" Build ID: %s", SM_BUILD_UNIQUEID);
|
ConsolePrint(" Build ID: %s", SOURCEMOD_BUILD_ID);
|
||||||
ConsolePrint(" http://www.sourcemod.net/");
|
ConsolePrint(" http://www.sourcemod.net/");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,7 @@ const char *SourceMod_Core::GetLicense()
|
|||||||
|
|
||||||
const char *SourceMod_Core::GetVersion()
|
const char *SourceMod_Core::GetVersion()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *SourceMod_Core::GetDate()
|
const char *SourceMod_Core::GetDate()
|
||||||
|
@ -1,25 +1,23 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultExtCompiler('extensions/bintools')
|
binary = SM.ExtLibrary(builder, 'bintools.ext')
|
||||||
compiler['CDEFINES'].append('HOOKING_ENABLED')
|
binary.compiler.defines += ['HOOKING_ENABLED']
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
binary.compiler.cxxincludes += [
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit'))
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit', 'x86'))
|
os.path.join(builder.sourcePath, 'public', 'jit'),
|
||||||
|
os.path.join(builder.sourcePath, 'public', 'jit', 'x86'),
|
||||||
|
]
|
||||||
|
|
||||||
extension = AMBuild.AddJob('bintools.ext')
|
binary.sources += [
|
||||||
binary = Cpp.LibraryBuilder('bintools.ext', AMBuild, extension, compiler)
|
'extension.cpp',
|
||||||
binary.AddSourceFiles('extensions/bintools', [
|
'CallMaker.cpp',
|
||||||
'extension.cpp',
|
'CallWrapper.cpp',
|
||||||
'CallMaker.cpp',
|
'HookWrapper.cpp',
|
||||||
'CallWrapper.cpp',
|
'jit_call.cpp',
|
||||||
'HookWrapper.cpp',
|
'jit_hook.cpp',
|
||||||
'jit_call.cpp',
|
'sdk/smsdk_ext.cpp'
|
||||||
'jit_hook.cpp',
|
]
|
||||||
'sdk/smsdk_ext.cpp'
|
|
||||||
])
|
|
||||||
SM.AutoVersion('extensions/bintools', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
SM.extensions += [builder.Add(binary)]
|
||||||
|
|
||||||
|
@ -61,11 +61,11 @@ bool BinTools::SDK_OnLoad(char *error, size_t maxlength, bool late)
|
|||||||
|
|
||||||
const char *BinTools::GetExtensionVerString()
|
const char *BinTools::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *BinTools::GetExtensionDateString()
|
const char *BinTools::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,20 +1,19 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultExtCompiler('extensions/clientprefs')
|
binary = SM.ExtLibrary(builder, 'clientprefs.ext')
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
binary.compiler.cxxincludes += [
|
||||||
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
|
]
|
||||||
|
|
||||||
extension = AMBuild.AddJob('clientprefs.ext')
|
binary.sources += [
|
||||||
binary = Cpp.LibraryBuilder('clientprefs.ext', AMBuild, extension, compiler)
|
'extension.cpp',
|
||||||
binary.AddSourceFiles('extensions/clientprefs', [
|
'cookie.cpp',
|
||||||
'extension.cpp',
|
'menus.cpp',
|
||||||
'cookie.cpp',
|
'natives.cpp',
|
||||||
'menus.cpp',
|
'query.cpp',
|
||||||
'natives.cpp',
|
'sdk/smsdk_ext.cpp'
|
||||||
'query.cpp',
|
]
|
||||||
'sdk/smsdk_ext.cpp'
|
|
||||||
])
|
SM.extensions += [builder.Add(binary)]
|
||||||
SM.AutoVersion('extensions/clientprefs', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
@ -483,11 +483,11 @@ IdentityToken_t *ClientPrefs::GetIdentity() const
|
|||||||
|
|
||||||
const char *ClientPrefs::GetExtensionVerString()
|
const char *ClientPrefs::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *ClientPrefs::GetExtensionDateString()
|
const char *ClientPrefs::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,33 +1,21 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
for i in SM.sdkInfo:
|
for sdk_name in ['css', 'csgo']:
|
||||||
if i != 'css' and i != 'csgo':
|
if sdk_name not in SM.sdks:
|
||||||
continue
|
continue
|
||||||
|
sdk = SM.sdks[sdk_name]
|
||||||
sdk = SM.sdkInfo[i]
|
|
||||||
|
binary = SM.HL2Library(builder, 'game.cstrike.ext.' + sdk.ext, sdk)
|
||||||
if AMBuild.target['platform'] not in sdk['platform']:
|
binary.sources += [
|
||||||
continue
|
'extension.cpp',
|
||||||
|
'natives.cpp',
|
||||||
compiler = SM.DefaultHL2Compiler('extensions/cstrike', i)
|
'RegNatives.cpp',
|
||||||
|
'timeleft.cpp',
|
||||||
name = 'game.cstrike.ext.' + sdk['ext']
|
'forwards.cpp',
|
||||||
extension = AMBuild.AddJob(name)
|
'util_cstrike.cpp',
|
||||||
binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)
|
'sdk/smsdk_ext.cpp',
|
||||||
SM.PreSetupHL2Job(extension, binary, i)
|
'CDetour/detours.cpp',
|
||||||
binary.AddSourceFiles('extensions/cstrike', [
|
'asm/asm.c'
|
||||||
'extension.cpp',
|
]
|
||||||
'natives.cpp',
|
SM.extensions += [builder.Add(binary)]
|
||||||
'RegNatives.cpp',
|
|
||||||
'timeleft.cpp',
|
|
||||||
'forwards.cpp',
|
|
||||||
'util_cstrike.cpp',
|
|
||||||
'sdk/smsdk_ext.cpp',
|
|
||||||
'CDetour/detours.cpp',
|
|
||||||
'asm/asm.c'
|
|
||||||
])
|
|
||||||
SM.PostSetupHL2Job(extension, binary, i)
|
|
||||||
SM.AutoVersion('extensions/cstrike', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
@ -283,12 +283,12 @@ bool CStrike::ProcessCommandTarget(cmd_target_info_t *info)
|
|||||||
|
|
||||||
const char *CStrike::GetExtensionVerString()
|
const char *CStrike::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *CStrike::GetExtensionDateString()
|
const char *CStrike::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CStrike::OnPluginLoaded(IPlugin *plugin)
|
void CStrike::OnPluginLoaded(IPlugin *plugin)
|
||||||
|
@ -1,87 +1,24 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python :
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python :
|
||||||
import os.path
|
import os
|
||||||
import subprocess
|
|
||||||
import ambuild.command as command
|
|
||||||
import ambuild.osutil as osutil
|
|
||||||
|
|
||||||
def BuildCURL():
|
libcurl = builder.RunScript('curl-src/lib/AMBuilder')
|
||||||
curl = AMBuild.AddJob('curl')
|
|
||||||
if AMBuild.target['platform'] in ['linux', 'darwin']:
|
|
||||||
if not osutil.FileExists(os.path.join(AMBuild.outputFolder, 'curl', 'Makefile')):
|
|
||||||
args = ['/bin/bash',
|
|
||||||
os.path.join(AMBuild.sourceFolder, 'extensions', 'curl', 'curl-src', 'configure'),
|
|
||||||
'--enable-static',
|
|
||||||
'--disable-shared',
|
|
||||||
'--disable-ldap',
|
|
||||||
'--without-ssl',
|
|
||||||
'--without-libidn',
|
|
||||||
'--without-libssh2',
|
|
||||||
'--without-zlib']
|
|
||||||
env = os.environ.copy()
|
|
||||||
env['CFLAGS'] = '-m32'
|
|
||||||
if AMBuild.target['platform'] == 'darwin':
|
|
||||||
env['LDFLAGS'] = '-mmacosx-version-min=10.5'
|
|
||||||
else:
|
|
||||||
env['CFLAGS'] += ' -D_GNU_SOURCE'
|
|
||||||
curl.AddCommand(command.DirectCommand(argv = args, env = env))
|
|
||||||
curl.AddCommand(command.ShellCommand('cd lib && make'))
|
|
||||||
else:
|
|
||||||
args = ''
|
|
||||||
projpath = os.path.join(AMBuild.sourceFolder, 'extensions', 'curl', 'curl-src', 'lib',
|
|
||||||
'build_libcurl.vcproj')
|
|
||||||
try:
|
|
||||||
subprocess.Popen('vcbuild')
|
|
||||||
except:
|
|
||||||
xprojpath = os.path.join(AMBuild.sourceFolder, 'extensions', 'curl', 'curl-src', 'lib',
|
|
||||||
'build_libcurl.vcxproj')
|
|
||||||
if not os.path.isfile(xprojpath):
|
|
||||||
curl.AddCommand(command.DirectCommand(['vcupgrade', projpath]))
|
|
||||||
args = ['msbuild', xprojpath, '/p:Configuration=LIB Release']
|
|
||||||
|
|
||||||
if not args:
|
|
||||||
args = ['vcbuild', projpath, 'LIB Release']
|
|
||||||
|
|
||||||
curl.AddCommand(command.DirectCommand(args))
|
|
||||||
#die "Unable to find libcurl.lib!\n" unless (-f "LIB-Release\\libcurl.lib");
|
|
||||||
|
|
||||||
BuildCURL()
|
binary = SM.ExtLibrary(builder, 'webternet.ext')
|
||||||
|
binary.compiler.includes += [
|
||||||
|
os.path.join(builder.sourcePath, 'extensions', 'curl', 'curl-src', 'include')
|
||||||
|
]
|
||||||
|
binary.compiler.defines += ['CURL_STATICLIB']
|
||||||
|
binary.compiler.postlink += [libcurl.binary]
|
||||||
|
if builder.target_platform is 'linux':
|
||||||
|
binary.compiler.postlink += ['-lrt']
|
||||||
|
elif builder.target_platform is 'windows':
|
||||||
|
binary.compiler.postlink += ['ws2_32.lib']
|
||||||
|
|
||||||
compiler = SM.DefaultExtCompiler('extensions/curl')
|
binary.sources += [
|
||||||
extension = AMBuild.AddJob('webternet.ext')
|
'extension.cpp',
|
||||||
binary = Cpp.LibraryBuilder('webternet.ext', AMBuild, extension, compiler)
|
'curlapi.cpp',
|
||||||
|
'sdk/smsdk_ext.cpp',
|
||||||
|
]
|
||||||
|
|
||||||
curlPath = [AMBuild.sourceFolder, 'extensions', 'curl', 'curl-src', 'include']
|
SM.extensions += [builder.Add(binary)]
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(*curlPath))
|
|
||||||
compiler['CDEFINES'].append('CURL_STATICLIB')
|
|
||||||
|
|
||||||
binary.AddSourceFiles('extensions/curl', [
|
|
||||||
'extension.cpp',
|
|
||||||
'curlapi.cpp',
|
|
||||||
'sdk/smsdk_ext.cpp',
|
|
||||||
])
|
|
||||||
|
|
||||||
if AMBuild.target['platform'] == 'linux' or AMBuild.target['platform'] == 'darwin':
|
|
||||||
path = os.path.join(AMBuild.outputFolder,
|
|
||||||
'curl',
|
|
||||||
'lib',
|
|
||||||
'.libs',
|
|
||||||
'libcurl.a')
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
binary['POSTLINKFLAGS'].append('-lrt')
|
|
||||||
binary.AddObjectFiles([path])
|
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
|
||||||
path = os.path.join(AMBuild.sourceFolder,
|
|
||||||
'extensions',
|
|
||||||
'curl',
|
|
||||||
'curl-src',
|
|
||||||
'lib',
|
|
||||||
'LIB-Release',
|
|
||||||
'libcurl.lib')
|
|
||||||
if os.path.isfile(path):
|
|
||||||
binary.RelinkIfNewer(path)
|
|
||||||
binary['POSTLINKFLAGS'].extend([path, 'ws2_32.lib'])
|
|
||||||
|
|
||||||
SM.AutoVersion('extensions/curl', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
92
extensions/curl/curl-src/lib/AMBuilder
Normal file
92
extensions/curl/curl-src/lib/AMBuilder
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
# vim: sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
|
import os, platform
|
||||||
|
|
||||||
|
builder.SetBuildFolder('libcurl')
|
||||||
|
|
||||||
|
binary = builder.compiler.StaticLibrary('curl')
|
||||||
|
binary.compiler.includes += [
|
||||||
|
os.path.join(builder.sourcePath, 'extensions', 'curl', 'curl-src', 'lib'),
|
||||||
|
os.path.join(builder.sourcePath, 'extensions', 'curl', 'curl-src', 'include')
|
||||||
|
]
|
||||||
|
|
||||||
|
if builder.target_platform is 'mac':
|
||||||
|
mac_version, ignore, ignore = platform.mac_ver()
|
||||||
|
mac_tuple = mac_version.split('.')
|
||||||
|
if int(mac_tuple[0]) >= 10 and int(mac_tuple[1]) >= 9:
|
||||||
|
binary.compiler.defines += ['BUILTIN_STRLCAT']
|
||||||
|
elif builder.target_platform is 'windows':
|
||||||
|
binary.compiler.defines += [
|
||||||
|
'BUILDING_LIBCURL',
|
||||||
|
'CURL_STATICLIB',
|
||||||
|
'CURL_DISABLE_LDAP',
|
||||||
|
]
|
||||||
|
|
||||||
|
binary.sources += [
|
||||||
|
'base64.c',
|
||||||
|
'connect.c',
|
||||||
|
'content_encoding.c',
|
||||||
|
'cookie.c',
|
||||||
|
'curl_addrinfo.c',
|
||||||
|
'dict.c',
|
||||||
|
'easy.c',
|
||||||
|
'escape.c',
|
||||||
|
'file.c',
|
||||||
|
'formdata.c',
|
||||||
|
'ftp.c',
|
||||||
|
'getenv.c',
|
||||||
|
'getinfo.c',
|
||||||
|
'gtls.c',
|
||||||
|
'hash.c',
|
||||||
|
'hostares.c',
|
||||||
|
'hostasyn.c',
|
||||||
|
'hostip.c',
|
||||||
|
'hostip4.c',
|
||||||
|
'hostip6.c',
|
||||||
|
'hostsyn.c',
|
||||||
|
'hostthre.c',
|
||||||
|
'http.c',
|
||||||
|
'http_chunks.c',
|
||||||
|
'http_digest.c',
|
||||||
|
'http_negotiate.c',
|
||||||
|
'http_ntlm.c',
|
||||||
|
'if2ip.c',
|
||||||
|
'inet_ntop.c',
|
||||||
|
'inet_pton.c',
|
||||||
|
'krb4.c',
|
||||||
|
'krb5.c',
|
||||||
|
'ldap.c',
|
||||||
|
'llist.c',
|
||||||
|
'md5.c',
|
||||||
|
'memdebug.c',
|
||||||
|
'mprintf.c',
|
||||||
|
'multi.c',
|
||||||
|
'netrc.c',
|
||||||
|
'nss.c',
|
||||||
|
'parsedate.c',
|
||||||
|
'progress.c',
|
||||||
|
'qssl.c',
|
||||||
|
'rawstr.c',
|
||||||
|
'security.c',
|
||||||
|
'select.c',
|
||||||
|
'sendf.c',
|
||||||
|
'share.c',
|
||||||
|
'socks.c',
|
||||||
|
'speedcheck.c',
|
||||||
|
'splay.c',
|
||||||
|
'ssh.c',
|
||||||
|
'sslgen.c',
|
||||||
|
'ssluse.c',
|
||||||
|
'strdup.c',
|
||||||
|
'strequal.c',
|
||||||
|
'strerror.c',
|
||||||
|
'strtok.c',
|
||||||
|
'strtoofft.c',
|
||||||
|
'telnet.c',
|
||||||
|
'tftp.c',
|
||||||
|
'timeval.c',
|
||||||
|
'transfer.c',
|
||||||
|
'url.c',
|
||||||
|
'version.c'
|
||||||
|
]
|
||||||
|
rvalue = builder.Add(binary)
|
||||||
|
|
918
extensions/curl/curl-src/lib/config-sm-linux.h
Normal file
918
extensions/curl/curl-src/lib/config-sm-linux.h
Normal file
@ -0,0 +1,918 @@
|
|||||||
|
/* lib/config.h. Generated from config.h.in by configure. */
|
||||||
|
/* lib/config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the $func function. */
|
||||||
|
/* #undef AS_TR_CPP */
|
||||||
|
|
||||||
|
/* when building libcurl itself */
|
||||||
|
/* #undef BUILDING_LIBCURL */
|
||||||
|
|
||||||
|
/* Location of default ca bundle */
|
||||||
|
#define CURL_CA_BUNDLE "/etc/ssl/certs/ca-certificates.crt"
|
||||||
|
|
||||||
|
/* Location of default ca path */
|
||||||
|
/* #undef CURL_CA_PATH */
|
||||||
|
|
||||||
|
/* to disable cookies support */
|
||||||
|
/* #undef CURL_DISABLE_COOKIES */
|
||||||
|
|
||||||
|
/* to disable cryptographic authentication */
|
||||||
|
/* #undef CURL_DISABLE_CRYPTO_AUTH */
|
||||||
|
|
||||||
|
/* to disable DICT */
|
||||||
|
/* #undef CURL_DISABLE_DICT */
|
||||||
|
|
||||||
|
/* to disable FILE */
|
||||||
|
/* #undef CURL_DISABLE_FILE */
|
||||||
|
|
||||||
|
/* to disable FTP */
|
||||||
|
/* #undef CURL_DISABLE_FTP */
|
||||||
|
|
||||||
|
/* to disable HTTP */
|
||||||
|
/* #undef CURL_DISABLE_HTTP */
|
||||||
|
|
||||||
|
/* to disable LDAP */
|
||||||
|
#define CURL_DISABLE_LDAP 1
|
||||||
|
|
||||||
|
/* to disable LDAPS */
|
||||||
|
#define CURL_DISABLE_LDAPS 1
|
||||||
|
|
||||||
|
/* to disable proxies */
|
||||||
|
/* #undef CURL_DISABLE_PROXY */
|
||||||
|
|
||||||
|
/* to disable TELNET */
|
||||||
|
/* #undef CURL_DISABLE_TELNET */
|
||||||
|
|
||||||
|
/* to disable TFTP */
|
||||||
|
/* #undef CURL_DISABLE_TFTP */
|
||||||
|
|
||||||
|
/* to disable verbose strings */
|
||||||
|
/* #undef CURL_DISABLE_VERBOSE_STRINGS */
|
||||||
|
|
||||||
|
/* to make a symbol visible */
|
||||||
|
/* #undef CURL_EXTERN_SYMBOL */
|
||||||
|
|
||||||
|
/* to enable hidden symbols */
|
||||||
|
/* #undef CURL_HIDDEN_SYMBOLS */
|
||||||
|
|
||||||
|
/* W$ LDAP with non-W$ compiler */
|
||||||
|
/* #undef CURL_LDAP_HYBRID */
|
||||||
|
|
||||||
|
/* Use W$ LDAP implementation */
|
||||||
|
/* #undef CURL_LDAP_WIN */
|
||||||
|
|
||||||
|
/* when not building a shared library */
|
||||||
|
/* #undef CURL_STATICLIB */
|
||||||
|
|
||||||
|
/* Set to explicitly specify we don't want to use thread-safe functions */
|
||||||
|
/* #undef DISABLED_THREADSAFE */
|
||||||
|
|
||||||
|
/* your Entropy Gathering Daemon socket pathname */
|
||||||
|
/* #undef EGD_SOCKET */
|
||||||
|
|
||||||
|
/* Define if you want to enable IPv6 support */
|
||||||
|
#define ENABLE_IPV6 1
|
||||||
|
|
||||||
|
/* Define to the type qualifier of arg 1 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_QUAL_ARG1 const
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_TYPE_ARG1 struct sockaddr *
|
||||||
|
|
||||||
|
/* Define to the type of arg 2 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_TYPE_ARG2 socklen_t
|
||||||
|
|
||||||
|
/* Define to the type of args 4 and 6 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_TYPE_ARG46 size_t
|
||||||
|
|
||||||
|
/* Define to the type of arg 7 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_TYPE_ARG7 unsigned int
|
||||||
|
|
||||||
|
/* Specifies the number of arguments to getservbyport_r */
|
||||||
|
#define GETSERVBYPORT_R_ARGS 6
|
||||||
|
|
||||||
|
/* Specifies the size of the buffer to pass to getservbyport_r */
|
||||||
|
#define GETSERVBYPORT_R_BUFSIZE 4096
|
||||||
|
|
||||||
|
/* Define to 1 if you have the alarm function. */
|
||||||
|
#define HAVE_ALARM 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <alloca.h> header file. */
|
||||||
|
#define HAVE_ALLOCA_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||||
|
#define HAVE_ARPA_INET_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <arpa/tftp.h> header file. */
|
||||||
|
#define HAVE_ARPA_TFTP_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <assert.h> header file. */
|
||||||
|
#define HAVE_ASSERT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `basename' function. */
|
||||||
|
#define HAVE_BASENAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if bool is an available type. */
|
||||||
|
#define HAVE_BOOL_T 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the clock_gettime function and monotonic timer. */
|
||||||
|
#define HAVE_CLOCK_GETTIME_MONOTONIC 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `closesocket' function. */
|
||||||
|
/* #undef HAVE_CLOSESOCKET */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */
|
||||||
|
/* #undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <crypto.h> header file. */
|
||||||
|
/* #undef HAVE_CRYPTO_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <des.h> header file. */
|
||||||
|
/* #undef HAVE_DES_H */
|
||||||
|
|
||||||
|
/* disabled non-blocking sockets */
|
||||||
|
/* #undef HAVE_DISABLED_NONBLOCKING */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
|
#define HAVE_DLFCN_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ENGINE_load_builtin_engines' function. */
|
||||||
|
/* #undef HAVE_ENGINE_LOAD_BUILTIN_ENGINES */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <errno.h> header file. */
|
||||||
|
#define HAVE_ERRNO_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <err.h> header file. */
|
||||||
|
/* #undef HAVE_ERR_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||||
|
#define HAVE_FCNTL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the fdopen function. */
|
||||||
|
#define HAVE_FDOPEN 1
|
||||||
|
|
||||||
|
/* use FIONBIO for non-blocking sockets */
|
||||||
|
/* #undef HAVE_FIONBIO */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `fork' function. */
|
||||||
|
#define HAVE_FORK 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the freeaddrinfo function. */
|
||||||
|
#define HAVE_FREEADDRINFO 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the freeifaddrs function. */
|
||||||
|
#define HAVE_FREEIFADDRS 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ftruncate function. */
|
||||||
|
#define HAVE_FTRUNCATE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working getaddrinfo function. */
|
||||||
|
#define HAVE_GETADDRINFO 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `geteuid' function. */
|
||||||
|
#define HAVE_GETEUID 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gethostbyaddr' function. */
|
||||||
|
#define HAVE_GETHOSTBYADDR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the gethostbyaddr_r function. */
|
||||||
|
#define HAVE_GETHOSTBYADDR_R 1
|
||||||
|
|
||||||
|
/* gethostbyaddr_r() takes 5 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYADDR_R_5 */
|
||||||
|
|
||||||
|
/* gethostbyaddr_r() takes 7 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYADDR_R_7 */
|
||||||
|
|
||||||
|
/* gethostbyaddr_r() takes 8 args */
|
||||||
|
#define HAVE_GETHOSTBYADDR_R_8 1
|
||||||
|
|
||||||
|
/* If you have gethostbyname */
|
||||||
|
#define HAVE_GETHOSTBYNAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the gethostbyname_r function. */
|
||||||
|
#define HAVE_GETHOSTBYNAME_R 1
|
||||||
|
|
||||||
|
/* gethostbyname_r() takes 3 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYNAME_R_3 */
|
||||||
|
|
||||||
|
/* gethostbyname_r() takes 5 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYNAME_R_5 */
|
||||||
|
|
||||||
|
/* gethostbyname_r() takes 6 args */
|
||||||
|
#define HAVE_GETHOSTBYNAME_R_6 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the gethostname function. */
|
||||||
|
#define HAVE_GETHOSTNAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working getifaddrs function. */
|
||||||
|
#define HAVE_GETIFADDRS 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the getnameinfo function. */
|
||||||
|
#define HAVE_GETNAMEINFO 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getpass_r' function. */
|
||||||
|
/* #undef HAVE_GETPASS_R */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getppid' function. */
|
||||||
|
#define HAVE_GETPPID 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getprotobyname' function. */
|
||||||
|
#define HAVE_GETPROTOBYNAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getpwuid' function. */
|
||||||
|
#define HAVE_GETPWUID 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getrlimit' function. */
|
||||||
|
#define HAVE_GETRLIMIT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the getservbyport_r function. */
|
||||||
|
#define HAVE_GETSERVBYPORT_R 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gettimeofday' function. */
|
||||||
|
#define HAVE_GETTIMEOFDAY 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working glibc-style strerror_r function. */
|
||||||
|
/* #undef HAVE_GLIBC_STRERROR_R */
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working gmtime_r function. */
|
||||||
|
#define HAVE_GMTIME_R 1
|
||||||
|
|
||||||
|
/* if you have the gssapi libraries */
|
||||||
|
/* #undef HAVE_GSSAPI */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */
|
||||||
|
/* #undef HAVE_GSSAPI_GSSAPI_GENERIC_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <gssapi/gssapi.h> header file. */
|
||||||
|
/* #undef HAVE_GSSAPI_GSSAPI_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <gssapi/gssapi_krb5.h> header file. */
|
||||||
|
/* #undef HAVE_GSSAPI_GSSAPI_KRB5_H */
|
||||||
|
|
||||||
|
/* if you have the GNU gssapi libraries */
|
||||||
|
/* #undef HAVE_GSSGNU */
|
||||||
|
|
||||||
|
/* if you have the Heimdal gssapi libraries */
|
||||||
|
/* #undef HAVE_GSSHEIMDAL */
|
||||||
|
|
||||||
|
/* if you have the MIT gssapi libraries */
|
||||||
|
/* #undef HAVE_GSSMIT */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `idna_strerror' function. */
|
||||||
|
/* #undef HAVE_IDNA_STRERROR */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `idn_free' function. */
|
||||||
|
/* #undef HAVE_IDN_FREE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <idn-free.h> header file. */
|
||||||
|
/* #undef HAVE_IDN_FREE_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <ifaddrs.h> header file. */
|
||||||
|
#define HAVE_IFADDRS_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `inet_addr' function. */
|
||||||
|
#define HAVE_INET_ADDR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the inet_ntoa_r function. */
|
||||||
|
/* #undef HAVE_INET_NTOA_R */
|
||||||
|
|
||||||
|
/* inet_ntoa_r() takes 2 args */
|
||||||
|
/* #undef HAVE_INET_NTOA_R_2 */
|
||||||
|
|
||||||
|
/* inet_ntoa_r() takes 3 args */
|
||||||
|
/* #undef HAVE_INET_NTOA_R_3 */
|
||||||
|
|
||||||
|
/* Define to 1 if you have a IPv6 capable working inet_ntop function. */
|
||||||
|
/* #undef HAVE_INET_NTOP */
|
||||||
|
|
||||||
|
/* Define to 1 if you have a IPv6 capable working inet_pton function. */
|
||||||
|
/* #undef HAVE_INET_PTON */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#define HAVE_INTTYPES_H 1
|
||||||
|
|
||||||
|
/* use ioctlsocket() for non-blocking sockets */
|
||||||
|
/* #undef HAVE_IOCTLSOCKET */
|
||||||
|
|
||||||
|
/* use Ioctlsocket() for non-blocking sockets */
|
||||||
|
/* #undef HAVE_IOCTLSOCKET_CASE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <io.h> header file. */
|
||||||
|
/* #undef HAVE_IO_H */
|
||||||
|
|
||||||
|
/* if you have the Kerberos4 libraries (including -ldes) */
|
||||||
|
/* #undef HAVE_KRB4 */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `krb_get_our_ip_for_realm' function. */
|
||||||
|
/* #undef HAVE_KRB_GET_OUR_IP_FOR_REALM */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <krb.h> header file. */
|
||||||
|
/* #undef HAVE_KRB_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the lber.h header file. */
|
||||||
|
/* #undef HAVE_LBER_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ldapssl.h header file. */
|
||||||
|
/* #undef HAVE_LDAPSSL_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ldap.h header file. */
|
||||||
|
/* #undef HAVE_LDAP_H */
|
||||||
|
|
||||||
|
/* Use LDAPS implementation */
|
||||||
|
/* #undef HAVE_LDAP_SSL */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ldap_ssl.h header file. */
|
||||||
|
/* #undef HAVE_LDAP_SSL_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ldap_url_parse' function. */
|
||||||
|
/* #undef HAVE_LDAP_URL_PARSE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <libgen.h> header file. */
|
||||||
|
#define HAVE_LIBGEN_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `idn' library (-lidn). */
|
||||||
|
/* #undef HAVE_LIBIDN */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `resolv' library (-lresolv). */
|
||||||
|
/* #undef HAVE_LIBRESOLV */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `resolve' library (-lresolve). */
|
||||||
|
/* #undef HAVE_LIBRESOLVE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `socket' library (-lsocket). */
|
||||||
|
/* #undef HAVE_LIBSOCKET */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ssh2' library (-lssh2). */
|
||||||
|
/* #undef HAVE_LIBSSH2 */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <libssh2.h> header file. */
|
||||||
|
/* #undef HAVE_LIBSSH2_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ssl' library (-lssl). */
|
||||||
|
/* #undef HAVE_LIBSSL */
|
||||||
|
|
||||||
|
/* if zlib is available */
|
||||||
|
/* #undef HAVE_LIBZ */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
|
#define HAVE_LIMITS_H 1
|
||||||
|
|
||||||
|
/* if your compiler supports LL */
|
||||||
|
#define HAVE_LL 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <locale.h> header file. */
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working localtime_r function. */
|
||||||
|
#define HAVE_LOCALTIME_R 1
|
||||||
|
|
||||||
|
/* Define to 1 if the compiler supports the 'long long' data type. */
|
||||||
|
#define HAVE_LONGLONG 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the malloc.h header file. */
|
||||||
|
#define HAVE_MALLOC_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#define HAVE_MEMORY_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the MSG_NOSIGNAL flag. */
|
||||||
|
#define HAVE_MSG_NOSIGNAL 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <netdb.h> header file. */
|
||||||
|
#define HAVE_NETDB_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||||
|
#define HAVE_NETINET_IN_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <netinet/tcp.h> header file. */
|
||||||
|
#define HAVE_NETINET_TCP_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <net/if.h> header file. */
|
||||||
|
#define HAVE_NET_IF_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if NI_WITHSCOPEID exists and works. */
|
||||||
|
/* #undef HAVE_NI_WITHSCOPEID */
|
||||||
|
|
||||||
|
/* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE
|
||||||
|
*/
|
||||||
|
/* #undef HAVE_OLD_GSSMIT */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/crypto.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_CRYPTO_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/engine.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_ENGINE_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/err.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_ERR_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/pem.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_PEM_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/pkcs12.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_PKCS12_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/rsa.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_RSA_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/ssl.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_SSL_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/x509.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_X509_H */
|
||||||
|
|
||||||
|
/* use O_NONBLOCK for non-blocking sockets */
|
||||||
|
#define HAVE_O_NONBLOCK 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <pem.h> header file. */
|
||||||
|
/* #undef HAVE_PEM_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `perror' function. */
|
||||||
|
#define HAVE_PERROR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `pipe' function. */
|
||||||
|
#define HAVE_PIPE 1
|
||||||
|
|
||||||
|
/* if you have the function PK11_CreateGenericObject */
|
||||||
|
/* #undef HAVE_PK11_CREATEGENERICOBJECT */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `poll' function. */
|
||||||
|
#define HAVE_POLL 1
|
||||||
|
|
||||||
|
/* If you have a fine poll */
|
||||||
|
#define HAVE_POLL_FINE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <poll.h> header file. */
|
||||||
|
#define HAVE_POLL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working POSIX-style strerror_r function. */
|
||||||
|
#define HAVE_POSIX_STRERROR_R 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <pwd.h> header file. */
|
||||||
|
#define HAVE_PWD_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `RAND_egd' function. */
|
||||||
|
/* #undef HAVE_RAND_EGD */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `RAND_screen' function. */
|
||||||
|
/* #undef HAVE_RAND_SCREEN */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `RAND_status' function. */
|
||||||
|
/* #undef HAVE_RAND_STATUS */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the recv function. */
|
||||||
|
#define HAVE_RECV 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the recvfrom function. */
|
||||||
|
#define HAVE_RECVFROM 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <rsa.h> header file. */
|
||||||
|
/* #undef HAVE_RSA_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the select function. */
|
||||||
|
#define HAVE_SELECT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the send function. */
|
||||||
|
#define HAVE_SEND 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <setjmp.h> header file. */
|
||||||
|
#define HAVE_SETJMP_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setlocale' function. */
|
||||||
|
#define HAVE_SETLOCALE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setmode' function. */
|
||||||
|
/* #undef HAVE_SETMODE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setrlimit' function. */
|
||||||
|
#define HAVE_SETRLIMIT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sgtty.h> header file. */
|
||||||
|
#define HAVE_SGTTY_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the sigaction function. */
|
||||||
|
#define HAVE_SIGACTION 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the siginterrupt function. */
|
||||||
|
#define HAVE_SIGINTERRUPT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the signal function. */
|
||||||
|
#define HAVE_SIGNAL 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <signal.h> header file. */
|
||||||
|
#define HAVE_SIGNAL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the sigsetjmp function or macro. */
|
||||||
|
#define HAVE_SIGSETJMP 1
|
||||||
|
|
||||||
|
/* Define to 1 if sig_atomic_t is an available typedef. */
|
||||||
|
#define HAVE_SIG_ATOMIC_T 1
|
||||||
|
|
||||||
|
/* Define to 1 if sig_atomic_t is already defined as volatile. */
|
||||||
|
/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `socket' function. */
|
||||||
|
#define HAVE_SOCKET 1
|
||||||
|
|
||||||
|
/* use SO_NONBLOCK for non-blocking sockets */
|
||||||
|
/* #undef HAVE_SO_NONBLOCK */
|
||||||
|
|
||||||
|
/* Define this if you have the SPNEGO library fbopenssl */
|
||||||
|
/* #undef HAVE_SPNEGO */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `SSL_get_shutdown' function. */
|
||||||
|
/* #undef HAVE_SSL_GET_SHUTDOWN */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <ssl.h> header file. */
|
||||||
|
/* #undef HAVE_SSL_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdbool.h> header file. */
|
||||||
|
#define HAVE_STDBOOL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#define HAVE_STDINT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdio.h> header file. */
|
||||||
|
#define HAVE_STDIO_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#define HAVE_STDLIB_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strcasecmp function. */
|
||||||
|
#define HAVE_STRCASECMP 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strcasestr function. */
|
||||||
|
/* #undef HAVE_STRCASESTR */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strcmpi function. */
|
||||||
|
/* #undef HAVE_STRCMPI */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strdup function. */
|
||||||
|
#define HAVE_STRDUP 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strerror_r function. */
|
||||||
|
#define HAVE_STRERROR_R 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the stricmp function. */
|
||||||
|
/* #undef HAVE_STRICMP */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#define HAVE_STRINGS_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strlcat function. */
|
||||||
|
/* #undef HAVE_STRLCAT */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strlcpy' function. */
|
||||||
|
/* #undef HAVE_STRLCPY */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strncasecmp function. */
|
||||||
|
#define HAVE_STRNCASECMP 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strncmpi function. */
|
||||||
|
/* #undef HAVE_STRNCMPI */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strnicmp function. */
|
||||||
|
/* #undef HAVE_STRNICMP */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strstr function. */
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strtok_r function. */
|
||||||
|
#define HAVE_STRTOK_R 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strtoll function. */
|
||||||
|
#define HAVE_STRTOLL 1
|
||||||
|
|
||||||
|
/* if struct sockaddr_storage is defined */
|
||||||
|
#define HAVE_STRUCT_SOCKADDR_STORAGE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the timeval struct. */
|
||||||
|
#define HAVE_STRUCT_TIMEVAL 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/filio.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_FILIO_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||||
|
#define HAVE_SYS_IOCTL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
|
#define HAVE_SYS_PARAM_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/poll.h> header file. */
|
||||||
|
#define HAVE_SYS_POLL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/resource.h> header file. */
|
||||||
|
#define HAVE_SYS_RESOURCE_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/select.h> header file. */
|
||||||
|
#define HAVE_SYS_SELECT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||||
|
#define HAVE_SYS_SOCKET_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/sockio.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_SOCKIO_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#define HAVE_SYS_STAT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||||
|
#define HAVE_SYS_TIME_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/uio.h> header file. */
|
||||||
|
#define HAVE_SYS_UIO_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/un.h> header file. */
|
||||||
|
#define HAVE_SYS_UN_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/utime.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_UTIME_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <termios.h> header file. */
|
||||||
|
#define HAVE_TERMIOS_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <termio.h> header file. */
|
||||||
|
#define HAVE_TERMIO_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <time.h> header file. */
|
||||||
|
#define HAVE_TIME_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <tld.h> header file. */
|
||||||
|
/* #undef HAVE_TLD_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `tld_strerror' function. */
|
||||||
|
/* #undef HAVE_TLD_STRERROR */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `uname' function. */
|
||||||
|
#define HAVE_UNAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#define HAVE_UNISTD_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `utime' function. */
|
||||||
|
#define HAVE_UTIME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <utime.h> header file. */
|
||||||
|
#define HAVE_UTIME_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if compiler supports C99 variadic macro style. */
|
||||||
|
#define HAVE_VARIADIC_MACROS_C99 1
|
||||||
|
|
||||||
|
/* Define to 1 if compiler supports old gcc variadic macro style. */
|
||||||
|
#define HAVE_VARIADIC_MACROS_GCC 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the winber.h header file. */
|
||||||
|
/* #undef HAVE_WINBER_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the windows.h header file. */
|
||||||
|
/* #undef HAVE_WINDOWS_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the winldap.h header file. */
|
||||||
|
/* #undef HAVE_WINLDAP_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the winsock2.h header file. */
|
||||||
|
/* #undef HAVE_WINSOCK2_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the winsock.h header file. */
|
||||||
|
/* #undef HAVE_WINSOCK_H */
|
||||||
|
|
||||||
|
/* Define this symbol if your OS supports changing the contents of argv */
|
||||||
|
#define HAVE_WRITABLE_ARGV 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the writev function. */
|
||||||
|
#define HAVE_WRITEV 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ws2tcpip.h header file. */
|
||||||
|
/* #undef HAVE_WS2TCPIP_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <x509.h> header file. */
|
||||||
|
/* #undef HAVE_X509_H */
|
||||||
|
|
||||||
|
/* if you have the zlib.h header file */
|
||||||
|
/* #undef HAVE_ZLIB_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you are building a native Windows target. */
|
||||||
|
/* #undef NATIVE_WINDOWS */
|
||||||
|
|
||||||
|
/* If you lack a fine basename() prototype */
|
||||||
|
/* #undef NEED_BASENAME_PROTO */
|
||||||
|
|
||||||
|
/* Define to 1 if you need the lber.h header file even with ldap.h */
|
||||||
|
/* #undef NEED_LBER_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you need the malloc.h header file even with stdlib.h */
|
||||||
|
/* #undef NEED_MALLOC_H */
|
||||||
|
|
||||||
|
/* Define to 1 if _REENTRANT preprocessor symbol must be defined. */
|
||||||
|
/* #undef NEED_REENTRANT */
|
||||||
|
|
||||||
|
/* cpu-machine-OS */
|
||||||
|
#define OS "x86_64-unknown-linux-gnu"
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#define PACKAGE "curl"
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#define PACKAGE_BUGREPORT "a suitable curl mailing list => http://curl.haxx.se/mail/"
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#define PACKAGE_NAME "curl"
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#define PACKAGE_STRING "curl -"
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#define PACKAGE_TARNAME "curl"
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#define PACKAGE_VERSION "-"
|
||||||
|
|
||||||
|
/* a suitable file to read random data from */
|
||||||
|
/* #undef RANDOM_FILE */
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG1 int
|
||||||
|
|
||||||
|
/* Define to the type pointed by arg 2 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG2 void
|
||||||
|
|
||||||
|
/* Define to 1 if the type pointed by arg 2 for recvfrom is void. */
|
||||||
|
#define RECVFROM_TYPE_ARG2_IS_VOID 1
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG3 size_t
|
||||||
|
|
||||||
|
/* Define to the type of arg 4 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG4 int
|
||||||
|
|
||||||
|
/* Define to the type pointed by arg 5 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG5 struct sockaddr
|
||||||
|
|
||||||
|
/* Define to 1 if the type pointed by arg 5 for recvfrom is void. */
|
||||||
|
/* #undef RECVFROM_TYPE_ARG5_IS_VOID */
|
||||||
|
|
||||||
|
/* Define to the type pointed by arg 6 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG6 socklen_t
|
||||||
|
|
||||||
|
/* Define to 1 if the type pointed by arg 6 for recvfrom is void. */
|
||||||
|
/* #undef RECVFROM_TYPE_ARG6_IS_VOID */
|
||||||
|
|
||||||
|
/* Define to the function return type for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_RETV int
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for recv. */
|
||||||
|
#define RECV_TYPE_ARG1 int
|
||||||
|
|
||||||
|
/* Define to the type of arg 2 for recv. */
|
||||||
|
#define RECV_TYPE_ARG2 void *
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for recv. */
|
||||||
|
#define RECV_TYPE_ARG3 size_t
|
||||||
|
|
||||||
|
/* Define to the type of arg 4 for recv. */
|
||||||
|
#define RECV_TYPE_ARG4 int
|
||||||
|
|
||||||
|
/* Define to the function return type for recv. */
|
||||||
|
#define RECV_TYPE_RETV int
|
||||||
|
|
||||||
|
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||||
|
#define RETSIGTYPE void
|
||||||
|
|
||||||
|
/* Define to the type qualifier of arg 5 for select. */
|
||||||
|
#define SELECT_QUAL_ARG5
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for select. */
|
||||||
|
#define SELECT_TYPE_ARG1 int
|
||||||
|
|
||||||
|
/* Define to the type of args 2, 3 and 4 for select. */
|
||||||
|
#define SELECT_TYPE_ARG234 fd_set *
|
||||||
|
|
||||||
|
/* Define to the type of arg 5 for select. */
|
||||||
|
#define SELECT_TYPE_ARG5 struct timeval *
|
||||||
|
|
||||||
|
/* Define to the function return type for select. */
|
||||||
|
#define SELECT_TYPE_RETV int
|
||||||
|
|
||||||
|
/* Define to the type qualifier of arg 2 for send. */
|
||||||
|
#define SEND_QUAL_ARG2 const
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for send. */
|
||||||
|
#define SEND_TYPE_ARG1 int
|
||||||
|
|
||||||
|
/* Define to the type of arg 2 for send. */
|
||||||
|
#define SEND_TYPE_ARG2 void *
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for send. */
|
||||||
|
#define SEND_TYPE_ARG3 size_t
|
||||||
|
|
||||||
|
/* Define to the type of arg 4 for send. */
|
||||||
|
#define SEND_TYPE_ARG4 int
|
||||||
|
|
||||||
|
/* Define to the function return type for send. */
|
||||||
|
#define SEND_TYPE_RETV int
|
||||||
|
|
||||||
|
/* The size of `int', as computed by sizeof. */
|
||||||
|
#define SIZEOF_INT 4
|
||||||
|
|
||||||
|
/* The size of `long', as computed by sizeof. */
|
||||||
|
#define SIZEOF_LONG 4
|
||||||
|
|
||||||
|
/* The size of `off_t', as computed by sizeof. */
|
||||||
|
#define SIZEOF_OFF_T 8
|
||||||
|
|
||||||
|
/* The size of `size_t', as computed by sizeof. */
|
||||||
|
#define SIZEOF_SIZE_T 4
|
||||||
|
|
||||||
|
/* The size of `time_t', as computed by sizeof. */
|
||||||
|
#define SIZEOF_TIME_T 4
|
||||||
|
|
||||||
|
/* The size of `void*', as computed by sizeof. */
|
||||||
|
#define SIZEOF_VOIDP 4
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for strerror_r. */
|
||||||
|
#define STRERROR_R_TYPE_ARG3 size_t
|
||||||
|
|
||||||
|
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||||
|
#define TIME_WITH_SYS_TIME 1
|
||||||
|
|
||||||
|
/* Define if you want to enable c-ares support */
|
||||||
|
/* #undef USE_ARES */
|
||||||
|
|
||||||
|
/* if GnuTLS is enabled */
|
||||||
|
/* #undef USE_GNUTLS */
|
||||||
|
|
||||||
|
/* if libSSH2 is in use */
|
||||||
|
/* #undef USE_LIBSSH2 */
|
||||||
|
|
||||||
|
/* If you want to build curl with the built-in manual */
|
||||||
|
#define USE_MANUAL 1
|
||||||
|
|
||||||
|
/* if NSS is enabled */
|
||||||
|
/* #undef USE_NSS */
|
||||||
|
|
||||||
|
/* if OpenSSL is in use */
|
||||||
|
/* #undef USE_OPENSSL */
|
||||||
|
|
||||||
|
/* if SSL is enabled */
|
||||||
|
/* #undef USE_SSLEAY */
|
||||||
|
|
||||||
|
/* Define to 1 if you are building a Windows target without large file
|
||||||
|
support. */
|
||||||
|
/* #undef USE_WIN32_LARGE_FILES */
|
||||||
|
|
||||||
|
/* to enable SSPI support */
|
||||||
|
/* #undef USE_WINDOWS_SSPI */
|
||||||
|
|
||||||
|
/* Define to 1 if using yaSSL in OpenSSL compatibility mode. */
|
||||||
|
/* #undef USE_YASSLEMUL */
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#define VERSION "7.19.2"
|
||||||
|
|
||||||
|
/* Define to avoid automatic inclusion of winsock.h */
|
||||||
|
/* #undef WIN32_LEAN_AND_MEAN */
|
||||||
|
|
||||||
|
/* Define to 1 if OS is AIX. */
|
||||||
|
#ifndef _ALL_SOURCE
|
||||||
|
/* # undef _ALL_SOURCE */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||||
|
#define _FILE_OFFSET_BITS 64
|
||||||
|
|
||||||
|
/* Define for large files, on AIX-style hosts. */
|
||||||
|
/* #undef _LARGE_FILES */
|
||||||
|
|
||||||
|
/* define this if you need it to compile thread-safe code */
|
||||||
|
/* #undef _THREAD_SAFE */
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
/* #undef const */
|
||||||
|
|
||||||
|
/* Type to use in place of in_addr_t when system does not provide it. */
|
||||||
|
/* #undef in_addr_t */
|
||||||
|
|
||||||
|
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||||
|
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||||
|
#ifndef __cplusplus
|
||||||
|
/* #undef inline */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
|
/* #undef size_t */
|
||||||
|
|
||||||
|
/* Type to use in place of socklen_t when system does not provide it. */
|
||||||
|
/* #undef socklen_t */
|
||||||
|
|
||||||
|
/* the signed version of size_t */
|
||||||
|
/* #undef ssize_t */
|
918
extensions/curl/curl-src/lib/config-sm-mac.h
Normal file
918
extensions/curl/curl-src/lib/config-sm-mac.h
Normal file
@ -0,0 +1,918 @@
|
|||||||
|
/* lib/config.h. Generated from config.h.in by configure. */
|
||||||
|
/* lib/config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the $func function. */
|
||||||
|
/* #undef AS_TR_CPP */
|
||||||
|
|
||||||
|
/* when building libcurl itself */
|
||||||
|
/* #undef BUILDING_LIBCURL */
|
||||||
|
|
||||||
|
/* Location of default ca bundle */
|
||||||
|
/* #undef CURL_CA_BUNDLE */
|
||||||
|
|
||||||
|
/* Location of default ca path */
|
||||||
|
/* #undef CURL_CA_PATH */
|
||||||
|
|
||||||
|
/* to disable cookies support */
|
||||||
|
/* #undef CURL_DISABLE_COOKIES */
|
||||||
|
|
||||||
|
/* to disable cryptographic authentication */
|
||||||
|
/* #undef CURL_DISABLE_CRYPTO_AUTH */
|
||||||
|
|
||||||
|
/* to disable DICT */
|
||||||
|
/* #undef CURL_DISABLE_DICT */
|
||||||
|
|
||||||
|
/* to disable FILE */
|
||||||
|
/* #undef CURL_DISABLE_FILE */
|
||||||
|
|
||||||
|
/* to disable FTP */
|
||||||
|
/* #undef CURL_DISABLE_FTP */
|
||||||
|
|
||||||
|
/* to disable HTTP */
|
||||||
|
/* #undef CURL_DISABLE_HTTP */
|
||||||
|
|
||||||
|
/* to disable LDAP */
|
||||||
|
#define CURL_DISABLE_LDAP 1
|
||||||
|
|
||||||
|
/* to disable LDAPS */
|
||||||
|
#define CURL_DISABLE_LDAPS 1
|
||||||
|
|
||||||
|
/* to disable proxies */
|
||||||
|
/* #undef CURL_DISABLE_PROXY */
|
||||||
|
|
||||||
|
/* to disable TELNET */
|
||||||
|
/* #undef CURL_DISABLE_TELNET */
|
||||||
|
|
||||||
|
/* to disable TFTP */
|
||||||
|
/* #undef CURL_DISABLE_TFTP */
|
||||||
|
|
||||||
|
/* to disable verbose strings */
|
||||||
|
/* #undef CURL_DISABLE_VERBOSE_STRINGS */
|
||||||
|
|
||||||
|
/* to make a symbol visible */
|
||||||
|
/* #undef CURL_EXTERN_SYMBOL */
|
||||||
|
|
||||||
|
/* to enable hidden symbols */
|
||||||
|
/* #undef CURL_HIDDEN_SYMBOLS */
|
||||||
|
|
||||||
|
/* W$ LDAP with non-W$ compiler */
|
||||||
|
/* #undef CURL_LDAP_HYBRID */
|
||||||
|
|
||||||
|
/* Use W$ LDAP implementation */
|
||||||
|
/* #undef CURL_LDAP_WIN */
|
||||||
|
|
||||||
|
/* when not building a shared library */
|
||||||
|
/* #undef CURL_STATICLIB */
|
||||||
|
|
||||||
|
/* Set to explicitly specify we don't want to use thread-safe functions */
|
||||||
|
/* #undef DISABLED_THREADSAFE */
|
||||||
|
|
||||||
|
/* your Entropy Gathering Daemon socket pathname */
|
||||||
|
/* #undef EGD_SOCKET */
|
||||||
|
|
||||||
|
/* Define if you want to enable IPv6 support */
|
||||||
|
#define ENABLE_IPV6 1
|
||||||
|
|
||||||
|
/* Define to the type qualifier of arg 1 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_QUAL_ARG1 const
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_TYPE_ARG1 struct sockaddr *
|
||||||
|
|
||||||
|
/* Define to the type of arg 2 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_TYPE_ARG2 socklen_t
|
||||||
|
|
||||||
|
/* Define to the type of args 4 and 6 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_TYPE_ARG46 socklen_t
|
||||||
|
|
||||||
|
/* Define to the type of arg 7 for getnameinfo. */
|
||||||
|
#define GETNAMEINFO_TYPE_ARG7 int
|
||||||
|
|
||||||
|
/* Specifies the number of arguments to getservbyport_r */
|
||||||
|
/* #undef GETSERVBYPORT_R_ARGS */
|
||||||
|
|
||||||
|
/* Specifies the size of the buffer to pass to getservbyport_r */
|
||||||
|
/* #undef GETSERVBYPORT_R_BUFSIZE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the alarm function. */
|
||||||
|
#define HAVE_ALARM 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <alloca.h> header file. */
|
||||||
|
#define HAVE_ALLOCA_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||||
|
#define HAVE_ARPA_INET_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <arpa/tftp.h> header file. */
|
||||||
|
#define HAVE_ARPA_TFTP_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <assert.h> header file. */
|
||||||
|
#define HAVE_ASSERT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `basename' function. */
|
||||||
|
#define HAVE_BASENAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if bool is an available type. */
|
||||||
|
#define HAVE_BOOL_T 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the clock_gettime function and monotonic timer. */
|
||||||
|
/* #undef HAVE_CLOCK_GETTIME_MONOTONIC */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `closesocket' function. */
|
||||||
|
/* #undef HAVE_CLOSESOCKET */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */
|
||||||
|
/* #undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <crypto.h> header file. */
|
||||||
|
/* #undef HAVE_CRYPTO_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <des.h> header file. */
|
||||||
|
/* #undef HAVE_DES_H */
|
||||||
|
|
||||||
|
/* disabled non-blocking sockets */
|
||||||
|
/* #undef HAVE_DISABLED_NONBLOCKING */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
|
#define HAVE_DLFCN_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ENGINE_load_builtin_engines' function. */
|
||||||
|
/* #undef HAVE_ENGINE_LOAD_BUILTIN_ENGINES */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <errno.h> header file. */
|
||||||
|
#define HAVE_ERRNO_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <err.h> header file. */
|
||||||
|
/* #undef HAVE_ERR_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||||
|
#define HAVE_FCNTL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the fdopen function. */
|
||||||
|
#define HAVE_FDOPEN 1
|
||||||
|
|
||||||
|
/* use FIONBIO for non-blocking sockets */
|
||||||
|
/* #undef HAVE_FIONBIO */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `fork' function. */
|
||||||
|
#define HAVE_FORK 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the freeaddrinfo function. */
|
||||||
|
#define HAVE_FREEADDRINFO 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the freeifaddrs function. */
|
||||||
|
#define HAVE_FREEIFADDRS 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ftruncate function. */
|
||||||
|
#define HAVE_FTRUNCATE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working getaddrinfo function. */
|
||||||
|
#define HAVE_GETADDRINFO 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `geteuid' function. */
|
||||||
|
#define HAVE_GETEUID 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gethostbyaddr' function. */
|
||||||
|
#define HAVE_GETHOSTBYADDR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the gethostbyaddr_r function. */
|
||||||
|
/* #undef HAVE_GETHOSTBYADDR_R */
|
||||||
|
|
||||||
|
/* gethostbyaddr_r() takes 5 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYADDR_R_5 */
|
||||||
|
|
||||||
|
/* gethostbyaddr_r() takes 7 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYADDR_R_7 */
|
||||||
|
|
||||||
|
/* gethostbyaddr_r() takes 8 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYADDR_R_8 */
|
||||||
|
|
||||||
|
/* If you have gethostbyname */
|
||||||
|
#define HAVE_GETHOSTBYNAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the gethostbyname_r function. */
|
||||||
|
/* #undef HAVE_GETHOSTBYNAME_R */
|
||||||
|
|
||||||
|
/* gethostbyname_r() takes 3 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYNAME_R_3 */
|
||||||
|
|
||||||
|
/* gethostbyname_r() takes 5 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYNAME_R_5 */
|
||||||
|
|
||||||
|
/* gethostbyname_r() takes 6 args */
|
||||||
|
/* #undef HAVE_GETHOSTBYNAME_R_6 */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the gethostname function. */
|
||||||
|
#define HAVE_GETHOSTNAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working getifaddrs function. */
|
||||||
|
#define HAVE_GETIFADDRS 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the getnameinfo function. */
|
||||||
|
#define HAVE_GETNAMEINFO 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getpass_r' function. */
|
||||||
|
/* #undef HAVE_GETPASS_R */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getppid' function. */
|
||||||
|
#define HAVE_GETPPID 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getprotobyname' function. */
|
||||||
|
#define HAVE_GETPROTOBYNAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getpwuid' function. */
|
||||||
|
#define HAVE_GETPWUID 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getrlimit' function. */
|
||||||
|
#define HAVE_GETRLIMIT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the getservbyport_r function. */
|
||||||
|
/* #undef HAVE_GETSERVBYPORT_R */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gettimeofday' function. */
|
||||||
|
#define HAVE_GETTIMEOFDAY 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working glibc-style strerror_r function. */
|
||||||
|
/* #undef HAVE_GLIBC_STRERROR_R */
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working gmtime_r function. */
|
||||||
|
#define HAVE_GMTIME_R 1
|
||||||
|
|
||||||
|
/* if you have the gssapi libraries */
|
||||||
|
/* #undef HAVE_GSSAPI */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */
|
||||||
|
/* #undef HAVE_GSSAPI_GSSAPI_GENERIC_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <gssapi/gssapi.h> header file. */
|
||||||
|
/* #undef HAVE_GSSAPI_GSSAPI_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <gssapi/gssapi_krb5.h> header file. */
|
||||||
|
/* #undef HAVE_GSSAPI_GSSAPI_KRB5_H */
|
||||||
|
|
||||||
|
/* if you have the GNU gssapi libraries */
|
||||||
|
/* #undef HAVE_GSSGNU */
|
||||||
|
|
||||||
|
/* if you have the Heimdal gssapi libraries */
|
||||||
|
/* #undef HAVE_GSSHEIMDAL */
|
||||||
|
|
||||||
|
/* if you have the MIT gssapi libraries */
|
||||||
|
/* #undef HAVE_GSSMIT */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `idna_strerror' function. */
|
||||||
|
/* #undef HAVE_IDNA_STRERROR */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `idn_free' function. */
|
||||||
|
/* #undef HAVE_IDN_FREE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <idn-free.h> header file. */
|
||||||
|
/* #undef HAVE_IDN_FREE_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <ifaddrs.h> header file. */
|
||||||
|
#define HAVE_IFADDRS_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `inet_addr' function. */
|
||||||
|
#define HAVE_INET_ADDR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the inet_ntoa_r function. */
|
||||||
|
/* #undef HAVE_INET_NTOA_R */
|
||||||
|
|
||||||
|
/* inet_ntoa_r() takes 2 args */
|
||||||
|
/* #undef HAVE_INET_NTOA_R_2 */
|
||||||
|
|
||||||
|
/* inet_ntoa_r() takes 3 args */
|
||||||
|
/* #undef HAVE_INET_NTOA_R_3 */
|
||||||
|
|
||||||
|
/* Define to 1 if you have a IPv6 capable working inet_ntop function. */
|
||||||
|
/* #undef HAVE_INET_NTOP */
|
||||||
|
|
||||||
|
/* Define to 1 if you have a IPv6 capable working inet_pton function. */
|
||||||
|
/* #undef HAVE_INET_PTON */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#define HAVE_INTTYPES_H 1
|
||||||
|
|
||||||
|
/* use ioctlsocket() for non-blocking sockets */
|
||||||
|
/* #undef HAVE_IOCTLSOCKET */
|
||||||
|
|
||||||
|
/* use Ioctlsocket() for non-blocking sockets */
|
||||||
|
/* #undef HAVE_IOCTLSOCKET_CASE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <io.h> header file. */
|
||||||
|
/* #undef HAVE_IO_H */
|
||||||
|
|
||||||
|
/* if you have the Kerberos4 libraries (including -ldes) */
|
||||||
|
/* #undef HAVE_KRB4 */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `krb_get_our_ip_for_realm' function. */
|
||||||
|
/* #undef HAVE_KRB_GET_OUR_IP_FOR_REALM */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <krb.h> header file. */
|
||||||
|
/* #undef HAVE_KRB_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the lber.h header file. */
|
||||||
|
/* #undef HAVE_LBER_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ldapssl.h header file. */
|
||||||
|
/* #undef HAVE_LDAPSSL_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ldap.h header file. */
|
||||||
|
/* #undef HAVE_LDAP_H */
|
||||||
|
|
||||||
|
/* Use LDAPS implementation */
|
||||||
|
/* #undef HAVE_LDAP_SSL */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ldap_ssl.h header file. */
|
||||||
|
/* #undef HAVE_LDAP_SSL_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ldap_url_parse' function. */
|
||||||
|
/* #undef HAVE_LDAP_URL_PARSE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <libgen.h> header file. */
|
||||||
|
#define HAVE_LIBGEN_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `idn' library (-lidn). */
|
||||||
|
/* #undef HAVE_LIBIDN */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `resolv' library (-lresolv). */
|
||||||
|
/* #undef HAVE_LIBRESOLV */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `resolve' library (-lresolve). */
|
||||||
|
/* #undef HAVE_LIBRESOLVE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `socket' library (-lsocket). */
|
||||||
|
/* #undef HAVE_LIBSOCKET */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ssh2' library (-lssh2). */
|
||||||
|
/* #undef HAVE_LIBSSH2 */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <libssh2.h> header file. */
|
||||||
|
/* #undef HAVE_LIBSSH2_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ssl' library (-lssl). */
|
||||||
|
/* #undef HAVE_LIBSSL */
|
||||||
|
|
||||||
|
/* if zlib is available */
|
||||||
|
/* #undef HAVE_LIBZ */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
|
#define HAVE_LIMITS_H 1
|
||||||
|
|
||||||
|
/* if your compiler supports LL */
|
||||||
|
#define HAVE_LL 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <locale.h> header file. */
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working localtime_r function. */
|
||||||
|
#define HAVE_LOCALTIME_R 1
|
||||||
|
|
||||||
|
/* Define to 1 if the compiler supports the 'long long' data type. */
|
||||||
|
#define HAVE_LONGLONG 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the malloc.h header file. */
|
||||||
|
/* #undef HAVE_MALLOC_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#define HAVE_MEMORY_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the MSG_NOSIGNAL flag. */
|
||||||
|
/* #undef HAVE_MSG_NOSIGNAL */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <netdb.h> header file. */
|
||||||
|
#define HAVE_NETDB_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||||
|
#define HAVE_NETINET_IN_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <netinet/tcp.h> header file. */
|
||||||
|
#define HAVE_NETINET_TCP_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <net/if.h> header file. */
|
||||||
|
#define HAVE_NET_IF_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if NI_WITHSCOPEID exists and works. */
|
||||||
|
/* #undef HAVE_NI_WITHSCOPEID */
|
||||||
|
|
||||||
|
/* if you have an old MIT gssapi library, lacking GSS_C_NT_HOSTBASED_SERVICE
|
||||||
|
*/
|
||||||
|
/* #undef HAVE_OLD_GSSMIT */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/crypto.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_CRYPTO_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/engine.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_ENGINE_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/err.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_ERR_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/pem.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_PEM_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/pkcs12.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_PKCS12_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/rsa.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_RSA_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/ssl.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_SSL_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/x509.h> header file. */
|
||||||
|
/* #undef HAVE_OPENSSL_X509_H */
|
||||||
|
|
||||||
|
/* use O_NONBLOCK for non-blocking sockets */
|
||||||
|
#define HAVE_O_NONBLOCK 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <pem.h> header file. */
|
||||||
|
/* #undef HAVE_PEM_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `perror' function. */
|
||||||
|
#define HAVE_PERROR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `pipe' function. */
|
||||||
|
#define HAVE_PIPE 1
|
||||||
|
|
||||||
|
/* if you have the function PK11_CreateGenericObject */
|
||||||
|
/* #undef HAVE_PK11_CREATEGENERICOBJECT */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `poll' function. */
|
||||||
|
#define HAVE_POLL 1
|
||||||
|
|
||||||
|
/* If you have a fine poll */
|
||||||
|
/* #undef HAVE_POLL_FINE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <poll.h> header file. */
|
||||||
|
#define HAVE_POLL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working POSIX-style strerror_r function. */
|
||||||
|
#define HAVE_POSIX_STRERROR_R 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <pwd.h> header file. */
|
||||||
|
#define HAVE_PWD_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `RAND_egd' function. */
|
||||||
|
/* #undef HAVE_RAND_EGD */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `RAND_screen' function. */
|
||||||
|
/* #undef HAVE_RAND_SCREEN */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `RAND_status' function. */
|
||||||
|
/* #undef HAVE_RAND_STATUS */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the recv function. */
|
||||||
|
#define HAVE_RECV 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the recvfrom function. */
|
||||||
|
#define HAVE_RECVFROM 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <rsa.h> header file. */
|
||||||
|
/* #undef HAVE_RSA_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the select function. */
|
||||||
|
#define HAVE_SELECT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the send function. */
|
||||||
|
#define HAVE_SEND 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <setjmp.h> header file. */
|
||||||
|
#define HAVE_SETJMP_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setlocale' function. */
|
||||||
|
#define HAVE_SETLOCALE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setmode' function. */
|
||||||
|
#define HAVE_SETMODE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setrlimit' function. */
|
||||||
|
#define HAVE_SETRLIMIT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sgtty.h> header file. */
|
||||||
|
#define HAVE_SGTTY_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the sigaction function. */
|
||||||
|
#define HAVE_SIGACTION 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the siginterrupt function. */
|
||||||
|
#define HAVE_SIGINTERRUPT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the signal function. */
|
||||||
|
#define HAVE_SIGNAL 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <signal.h> header file. */
|
||||||
|
#define HAVE_SIGNAL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the sigsetjmp function or macro. */
|
||||||
|
#define HAVE_SIGSETJMP 1
|
||||||
|
|
||||||
|
/* Define to 1 if sig_atomic_t is an available typedef. */
|
||||||
|
#define HAVE_SIG_ATOMIC_T 1
|
||||||
|
|
||||||
|
/* Define to 1 if sig_atomic_t is already defined as volatile. */
|
||||||
|
/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `socket' function. */
|
||||||
|
#define HAVE_SOCKET 1
|
||||||
|
|
||||||
|
/* use SO_NONBLOCK for non-blocking sockets */
|
||||||
|
/* #undef HAVE_SO_NONBLOCK */
|
||||||
|
|
||||||
|
/* Define this if you have the SPNEGO library fbopenssl */
|
||||||
|
/* #undef HAVE_SPNEGO */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `SSL_get_shutdown' function. */
|
||||||
|
/* #undef HAVE_SSL_GET_SHUTDOWN */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <ssl.h> header file. */
|
||||||
|
/* #undef HAVE_SSL_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdbool.h> header file. */
|
||||||
|
#define HAVE_STDBOOL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#define HAVE_STDINT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdio.h> header file. */
|
||||||
|
#define HAVE_STDIO_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#define HAVE_STDLIB_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strcasecmp function. */
|
||||||
|
#define HAVE_STRCASECMP 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strcasestr function. */
|
||||||
|
#define HAVE_STRCASESTR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strcmpi function. */
|
||||||
|
/* #undef HAVE_STRCMPI */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strdup function. */
|
||||||
|
#define HAVE_STRDUP 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strerror_r function. */
|
||||||
|
#define HAVE_STRERROR_R 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the stricmp function. */
|
||||||
|
/* #undef HAVE_STRICMP */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#define HAVE_STRINGS_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strlcat function. */
|
||||||
|
#define HAVE_STRLCAT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strlcpy' function. */
|
||||||
|
/* #undef HAVE_STRLCPY */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strncasecmp function. */
|
||||||
|
#define HAVE_STRNCASECMP 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strncmpi function. */
|
||||||
|
/* #undef HAVE_STRNCMPI */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strnicmp function. */
|
||||||
|
/* #undef HAVE_STRNICMP */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strstr function. */
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strtok_r function. */
|
||||||
|
#define HAVE_STRTOK_R 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the strtoll function. */
|
||||||
|
#define HAVE_STRTOLL 1
|
||||||
|
|
||||||
|
/* if struct sockaddr_storage is defined */
|
||||||
|
#define HAVE_STRUCT_SOCKADDR_STORAGE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the timeval struct. */
|
||||||
|
#define HAVE_STRUCT_TIMEVAL 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/filio.h> header file. */
|
||||||
|
#define HAVE_SYS_FILIO_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||||
|
#define HAVE_SYS_IOCTL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
|
#define HAVE_SYS_PARAM_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/poll.h> header file. */
|
||||||
|
#define HAVE_SYS_POLL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/resource.h> header file. */
|
||||||
|
#define HAVE_SYS_RESOURCE_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/select.h> header file. */
|
||||||
|
#define HAVE_SYS_SELECT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||||
|
#define HAVE_SYS_SOCKET_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/sockio.h> header file. */
|
||||||
|
#define HAVE_SYS_SOCKIO_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#define HAVE_SYS_STAT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||||
|
#define HAVE_SYS_TIME_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/uio.h> header file. */
|
||||||
|
#define HAVE_SYS_UIO_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/un.h> header file. */
|
||||||
|
#define HAVE_SYS_UN_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/utime.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_UTIME_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <termios.h> header file. */
|
||||||
|
#define HAVE_TERMIOS_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <termio.h> header file. */
|
||||||
|
/* #undef HAVE_TERMIO_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <time.h> header file. */
|
||||||
|
#define HAVE_TIME_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <tld.h> header file. */
|
||||||
|
/* #undef HAVE_TLD_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `tld_strerror' function. */
|
||||||
|
/* #undef HAVE_TLD_STRERROR */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `uname' function. */
|
||||||
|
#define HAVE_UNAME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#define HAVE_UNISTD_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `utime' function. */
|
||||||
|
#define HAVE_UTIME 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <utime.h> header file. */
|
||||||
|
#define HAVE_UTIME_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if compiler supports C99 variadic macro style. */
|
||||||
|
#define HAVE_VARIADIC_MACROS_C99 1
|
||||||
|
|
||||||
|
/* Define to 1 if compiler supports old gcc variadic macro style. */
|
||||||
|
#define HAVE_VARIADIC_MACROS_GCC 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the winber.h header file. */
|
||||||
|
/* #undef HAVE_WINBER_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the windows.h header file. */
|
||||||
|
/* #undef HAVE_WINDOWS_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the winldap.h header file. */
|
||||||
|
/* #undef HAVE_WINLDAP_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the winsock2.h header file. */
|
||||||
|
/* #undef HAVE_WINSOCK2_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the winsock.h header file. */
|
||||||
|
/* #undef HAVE_WINSOCK_H */
|
||||||
|
|
||||||
|
/* Define this symbol if your OS supports changing the contents of argv */
|
||||||
|
#define HAVE_WRITABLE_ARGV 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the writev function. */
|
||||||
|
#define HAVE_WRITEV 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ws2tcpip.h header file. */
|
||||||
|
/* #undef HAVE_WS2TCPIP_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <x509.h> header file. */
|
||||||
|
/* #undef HAVE_X509_H */
|
||||||
|
|
||||||
|
/* if you have the zlib.h header file */
|
||||||
|
/* #undef HAVE_ZLIB_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you are building a native Windows target. */
|
||||||
|
/* #undef NATIVE_WINDOWS */
|
||||||
|
|
||||||
|
/* If you lack a fine basename() prototype */
|
||||||
|
/* #undef NEED_BASENAME_PROTO */
|
||||||
|
|
||||||
|
/* Define to 1 if you need the lber.h header file even with ldap.h */
|
||||||
|
/* #undef NEED_LBER_H */
|
||||||
|
|
||||||
|
/* Define to 1 if you need the malloc.h header file even with stdlib.h */
|
||||||
|
/* #undef NEED_MALLOC_H */
|
||||||
|
|
||||||
|
/* Define to 1 if _REENTRANT preprocessor symbol must be defined. */
|
||||||
|
/* #undef NEED_REENTRANT */
|
||||||
|
|
||||||
|
/* cpu-machine-OS */
|
||||||
|
#define OS "i386-apple-darwin13.0.0"
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#define PACKAGE "curl"
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#define PACKAGE_BUGREPORT "a suitable curl mailing list => http://curl.haxx.se/mail/"
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#define PACKAGE_NAME "curl"
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#define PACKAGE_STRING "curl -"
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#define PACKAGE_TARNAME "curl"
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#define PACKAGE_VERSION "-"
|
||||||
|
|
||||||
|
/* a suitable file to read random data from */
|
||||||
|
/* #undef RANDOM_FILE */
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG1 int
|
||||||
|
|
||||||
|
/* Define to the type pointed by arg 2 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG2 void
|
||||||
|
|
||||||
|
/* Define to 1 if the type pointed by arg 2 for recvfrom is void. */
|
||||||
|
#define RECVFROM_TYPE_ARG2_IS_VOID 1
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG3 size_t
|
||||||
|
|
||||||
|
/* Define to the type of arg 4 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG4 int
|
||||||
|
|
||||||
|
/* Define to the type pointed by arg 5 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG5 struct sockaddr
|
||||||
|
|
||||||
|
/* Define to 1 if the type pointed by arg 5 for recvfrom is void. */
|
||||||
|
/* #undef RECVFROM_TYPE_ARG5_IS_VOID */
|
||||||
|
|
||||||
|
/* Define to the type pointed by arg 6 for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_ARG6 socklen_t
|
||||||
|
|
||||||
|
/* Define to 1 if the type pointed by arg 6 for recvfrom is void. */
|
||||||
|
/* #undef RECVFROM_TYPE_ARG6_IS_VOID */
|
||||||
|
|
||||||
|
/* Define to the function return type for recvfrom. */
|
||||||
|
#define RECVFROM_TYPE_RETV ssize_t
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for recv. */
|
||||||
|
#define RECV_TYPE_ARG1 int
|
||||||
|
|
||||||
|
/* Define to the type of arg 2 for recv. */
|
||||||
|
#define RECV_TYPE_ARG2 void *
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for recv. */
|
||||||
|
#define RECV_TYPE_ARG3 size_t
|
||||||
|
|
||||||
|
/* Define to the type of arg 4 for recv. */
|
||||||
|
#define RECV_TYPE_ARG4 int
|
||||||
|
|
||||||
|
/* Define to the function return type for recv. */
|
||||||
|
#define RECV_TYPE_RETV ssize_t
|
||||||
|
|
||||||
|
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||||
|
#define RETSIGTYPE void
|
||||||
|
|
||||||
|
/* Define to the type qualifier of arg 5 for select. */
|
||||||
|
#define SELECT_QUAL_ARG5
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for select. */
|
||||||
|
#define SELECT_TYPE_ARG1 int
|
||||||
|
|
||||||
|
/* Define to the type of args 2, 3 and 4 for select. */
|
||||||
|
#define SELECT_TYPE_ARG234 fd_set *
|
||||||
|
|
||||||
|
/* Define to the type of arg 5 for select. */
|
||||||
|
#define SELECT_TYPE_ARG5 struct timeval *
|
||||||
|
|
||||||
|
/* Define to the function return type for select. */
|
||||||
|
#define SELECT_TYPE_RETV int
|
||||||
|
|
||||||
|
/* Define to the type qualifier of arg 2 for send. */
|
||||||
|
#define SEND_QUAL_ARG2 const
|
||||||
|
|
||||||
|
/* Define to the type of arg 1 for send. */
|
||||||
|
#define SEND_TYPE_ARG1 int
|
||||||
|
|
||||||
|
/* Define to the type of arg 2 for send. */
|
||||||
|
#define SEND_TYPE_ARG2 void *
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for send. */
|
||||||
|
#define SEND_TYPE_ARG3 size_t
|
||||||
|
|
||||||
|
/* Define to the type of arg 4 for send. */
|
||||||
|
#define SEND_TYPE_ARG4 int
|
||||||
|
|
||||||
|
/* Define to the function return type for send. */
|
||||||
|
#define SEND_TYPE_RETV ssize_t
|
||||||
|
|
||||||
|
/* The size of `int', as computed by sizeof. */
|
||||||
|
#define SIZEOF_INT 4
|
||||||
|
|
||||||
|
/* The size of `long', as computed by sizeof. */
|
||||||
|
#define SIZEOF_LONG 4
|
||||||
|
|
||||||
|
/* The size of `off_t', as computed by sizeof. */
|
||||||
|
#define SIZEOF_OFF_T 8
|
||||||
|
|
||||||
|
/* The size of `size_t', as computed by sizeof. */
|
||||||
|
#define SIZEOF_SIZE_T 4
|
||||||
|
|
||||||
|
/* The size of `time_t', as computed by sizeof. */
|
||||||
|
#define SIZEOF_TIME_T 4
|
||||||
|
|
||||||
|
/* The size of `void*', as computed by sizeof. */
|
||||||
|
#define SIZEOF_VOIDP 4
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
|
||||||
|
/* Define to the type of arg 3 for strerror_r. */
|
||||||
|
#define STRERROR_R_TYPE_ARG3 size_t
|
||||||
|
|
||||||
|
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||||
|
#define TIME_WITH_SYS_TIME 1
|
||||||
|
|
||||||
|
/* Define if you want to enable c-ares support */
|
||||||
|
/* #undef USE_ARES */
|
||||||
|
|
||||||
|
/* if GnuTLS is enabled */
|
||||||
|
/* #undef USE_GNUTLS */
|
||||||
|
|
||||||
|
/* if libSSH2 is in use */
|
||||||
|
/* #undef USE_LIBSSH2 */
|
||||||
|
|
||||||
|
/* If you want to build curl with the built-in manual */
|
||||||
|
#define USE_MANUAL 1
|
||||||
|
|
||||||
|
/* if NSS is enabled */
|
||||||
|
/* #undef USE_NSS */
|
||||||
|
|
||||||
|
/* if OpenSSL is in use */
|
||||||
|
/* #undef USE_OPENSSL */
|
||||||
|
|
||||||
|
/* if SSL is enabled */
|
||||||
|
/* #undef USE_SSLEAY */
|
||||||
|
|
||||||
|
/* Define to 1 if you are building a Windows target without large file
|
||||||
|
support. */
|
||||||
|
/* #undef USE_WIN32_LARGE_FILES */
|
||||||
|
|
||||||
|
/* to enable SSPI support */
|
||||||
|
/* #undef USE_WINDOWS_SSPI */
|
||||||
|
|
||||||
|
/* Define to 1 if using yaSSL in OpenSSL compatibility mode. */
|
||||||
|
/* #undef USE_YASSLEMUL */
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#define VERSION "7.19.2"
|
||||||
|
|
||||||
|
/* Define to avoid automatic inclusion of winsock.h */
|
||||||
|
/* #undef WIN32_LEAN_AND_MEAN */
|
||||||
|
|
||||||
|
/* Define to 1 if OS is AIX. */
|
||||||
|
#ifndef _ALL_SOURCE
|
||||||
|
/* # undef _ALL_SOURCE */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||||
|
/* #undef _FILE_OFFSET_BITS */
|
||||||
|
|
||||||
|
/* Define for large files, on AIX-style hosts. */
|
||||||
|
/* #undef _LARGE_FILES */
|
||||||
|
|
||||||
|
/* define this if you need it to compile thread-safe code */
|
||||||
|
/* #undef _THREAD_SAFE */
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
/* #undef const */
|
||||||
|
|
||||||
|
/* Type to use in place of in_addr_t when system does not provide it. */
|
||||||
|
/* #undef in_addr_t */
|
||||||
|
|
||||||
|
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||||
|
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||||
|
#ifndef __cplusplus
|
||||||
|
/* #undef inline */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
|
/* #undef size_t */
|
||||||
|
|
||||||
|
/* Type to use in place of socklen_t when system does not provide it. */
|
||||||
|
/* #undef socklen_t */
|
||||||
|
|
||||||
|
/* the signed version of size_t */
|
||||||
|
/* #undef ssize_t */
|
@ -48,6 +48,12 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __linux__
|
||||||
|
# include "config-sm-linux.h"
|
||||||
|
#elif defined(__APPLE__)
|
||||||
|
# include "config-sm-mac.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(macintosh) && defined(__MRC__)
|
#if defined(macintosh) && defined(__MRC__)
|
||||||
# include "config-mac.h"
|
# include "config-mac.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -31,6 +31,8 @@
|
|||||||
#ifndef HAVE_STRLCAT
|
#ifndef HAVE_STRLCAT
|
||||||
#define strlcat(x,y,z) Curl_strlcat(x,y,z)
|
#define strlcat(x,y,z) Curl_strlcat(x,y,z)
|
||||||
#endif
|
#endif
|
||||||
|
#if !defined(BUILTIN_STRLCAT)
|
||||||
size_t strlcat(char *dst, const char *src, size_t siz);
|
size_t strlcat(char *dst, const char *src, size_t siz);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -78,11 +78,11 @@ void CurlExt::SDK_OnUnload()
|
|||||||
|
|
||||||
const char *CurlExt::GetExtensionVerString()
|
const char *CurlExt::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *CurlExt::GetExtensionDateString()
|
const char *CurlExt::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
compiler = SM.DefaultExtCompiler('extensions/geoip')
|
import os
|
||||||
|
|
||||||
extension = AMBuild.AddJob('geoip.ext')
|
binary = SM.ExtLibrary(builder, 'geoip.ext')
|
||||||
binary = Cpp.LibraryBuilder('geoip.ext', AMBuild, extension, compiler)
|
if builder.target_platform is 'windows':
|
||||||
binary.AddSourceFiles('extensions/geoip', [
|
binary.compiler.postlink += ['wsock32.lib']
|
||||||
'extension.cpp',
|
|
||||||
'GeoIP.c',
|
binary.sources += [
|
||||||
'sdk/smsdk_ext.cpp'
|
'extension.cpp',
|
||||||
])
|
'GeoIP.c',
|
||||||
if AMBuild.target['platform'] == 'windows':
|
'sdk/smsdk_ext.cpp'
|
||||||
binary['POSTLINKFLAGS'].append('wsock32.lib')
|
]
|
||||||
SM.AutoVersion('extensions/geoip', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
SM.extensions += [builder.Add(binary)]
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
@ -70,12 +70,12 @@ void GeoIP_Extension::SDK_OnUnload()
|
|||||||
|
|
||||||
const char *GeoIP_Extension::GetExtensionVerString()
|
const char *GeoIP_Extension::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *GeoIP_Extension::GetExtensionDateString()
|
const char *GeoIP_Extension::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************
|
/*******************************
|
||||||
|
@ -1,39 +1,35 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultExtCompiler('extensions/mysql')
|
if SM.mysql_root:
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache['MYSQL5'], 'include'))
|
binary = SM.ExtLibrary(builder, 'dbi.mysql.ext')
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
binary.compiler.cxxincludes += [
|
||||||
|
os.path.join(SM.mysql_root, 'include'),
|
||||||
|
os.path.join(SM.mms_root, 'core', 'sourcehook')
|
||||||
|
]
|
||||||
|
|
||||||
extension = AMBuild.AddJob('dbi.mysql.ext')
|
if builder.target_platform is 'linux' or builder.target_platform is 'mac':
|
||||||
binary = Cpp.LibraryBuilder('dbi.mysql.ext', AMBuild, extension, compiler)
|
binary.compiler.postlink += [
|
||||||
|
os.path.join(SM.mysql_root, 'lib', 'libmysqlclient_r.a'),
|
||||||
|
'-lz',
|
||||||
|
'-lpthread',
|
||||||
|
'-lm'
|
||||||
|
]
|
||||||
|
elif builder.target_platform is 'windows':
|
||||||
|
binary.compiler.postlink += [
|
||||||
|
os.path.join(SM.mysql_root, 'lib', 'opt', 'mysqlclient.lib'),
|
||||||
|
os.path.join(SM.mysql_root, 'lib', 'opt', 'zlib.lib'),
|
||||||
|
'wsock32.lib'
|
||||||
|
]
|
||||||
|
|
||||||
if AMBuild.target['platform'] == 'linux' or AMBuild.target['platform'] == 'darwin':
|
binary.sources += [
|
||||||
lib = os.path.join(AMBuild.cache['MYSQL5'], 'lib', 'libmysqlclient_r.a')
|
'sdk/smsdk_ext.cpp',
|
||||||
link = [lib,
|
'mysql/MyBasicResults.cpp',
|
||||||
'-lz',
|
'mysql/MyBoundResults.cpp',
|
||||||
'-lpthread',
|
'mysql/MyDatabase.cpp',
|
||||||
'-lm']
|
'mysql/MyDriver.cpp',
|
||||||
binary.RelinkIfNewer(lib)
|
'mysql/MyStatement.cpp',
|
||||||
binary['POSTLINKFLAGS'].extend(link)
|
'extension.cpp'
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
]
|
||||||
mylib = os.path.join(AMBuild.cache['MYSQL5'], 'lib', 'opt', 'mysqlclient.lib')
|
SM.extensions += [builder.Add(binary)]
|
||||||
zlib = os.path.join(AMBuild.cache['MYSQL5'], 'lib', 'opt', 'zlib.lib')
|
|
||||||
binary.RelinkIfNewer(mylib)
|
|
||||||
binary.RelinkIfNewer(zlib)
|
|
||||||
binary['POSTLINKFLAGS'].extend([mylib, zlib, 'wsock32.lib'])
|
|
||||||
|
|
||||||
|
|
||||||
binary.AddSourceFiles('extensions/mysql', [
|
|
||||||
'sdk/smsdk_ext.cpp',
|
|
||||||
'mysql/MyBasicResults.cpp',
|
|
||||||
'mysql/MyBoundResults.cpp',
|
|
||||||
'mysql/MyDatabase.cpp',
|
|
||||||
'mysql/MyDriver.cpp',
|
|
||||||
'mysql/MyStatement.cpp',
|
|
||||||
'extension.cpp'
|
|
||||||
])
|
|
||||||
SM.AutoVersion('extensions/mysql', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
@ -62,11 +62,11 @@ void DBI_MySQL::SDK_OnUnload()
|
|||||||
|
|
||||||
const char *DBI_MySQL::GetExtensionVerString()
|
const char *DBI_MySQL::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *DBI_MySQL::GetExtensionDateString()
|
const char *DBI_MySQL::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,28 +1,24 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultExtCompiler('extensions/regex')
|
binary = SM.ExtLibrary(builder, 'regex.ext')
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
binary.compiler.cxxincludes += [
|
||||||
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
|
]
|
||||||
|
|
||||||
extension = AMBuild.AddJob('regex.ext')
|
if builder.target_platform is 'linux':
|
||||||
binary = Cpp.LibraryBuilder('regex.ext', AMBuild, extension, compiler)
|
path = os.path.join(builder.sourcePath, 'extensions', 'regex', 'lib_linux', 'libpcre.a')
|
||||||
|
elif builder.target_platform is 'windows':
|
||||||
|
path = os.path.join(builder.sourcePath, 'extensions', 'regex', 'lib_win', 'pcre.lib')
|
||||||
|
elif builder.target_platform is 'mac':
|
||||||
|
path = os.path.join(builder.sourcePath, 'extensions', 'regex', 'lib_darwin', 'libpcre.a')
|
||||||
|
binary.compiler.postlink += [binary.Dep(path)]
|
||||||
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
binary.sources += [
|
||||||
path = os.path.join(AMBuild.sourceFolder, 'extensions', 'regex', 'lib_linux', 'libpcre.a')
|
'extension.cpp',
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
'CRegEx.cpp',
|
||||||
path = os.path.join(AMBuild.sourceFolder, 'extensions', 'regex', 'lib_win', 'pcre.lib')
|
'sdk/smsdk_ext.cpp',
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
]
|
||||||
path = os.path.join(AMBuild.sourceFolder, 'extensions', 'regex', 'lib_darwin', 'libpcre.a')
|
|
||||||
|
|
||||||
binary.RelinkIfNewer(path)
|
SM.extensions += [builder.Add(binary)]
|
||||||
binary['POSTLINKFLAGS'].append(path)
|
|
||||||
|
|
||||||
binary.AddSourceFiles('extensions/regex', [
|
|
||||||
'extension.cpp',
|
|
||||||
'CRegEx.cpp',
|
|
||||||
'sdk/smsdk_ext.cpp',
|
|
||||||
])
|
|
||||||
SM.AutoVersion('extensions/regex', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
@ -65,12 +65,12 @@ void RegexExtension::SDK_OnUnload()
|
|||||||
|
|
||||||
const char *RegexExtension::GetExtensionVerString()
|
const char *RegexExtension::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *RegexExtension::GetExtensionDateString()
|
const char *RegexExtension::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell_t CompileRegex(IPluginContext *pCtx, const cell_t *params)
|
static cell_t CompileRegex(IPluginContext *pCtx, const cell_t *params)
|
||||||
|
@ -1,31 +1,21 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
for i in SM.sdkInfo:
|
for sdk_name in SM.sdks:
|
||||||
sdk = SM.sdkInfo[i]
|
sdk = SM.sdks[sdk_name]
|
||||||
if AMBuild.target['platform'] not in sdk['platform']:
|
|
||||||
continue
|
binary = SM.HL2Library(builder, 'sdkhooks.ext.' + sdk.ext, sdk)
|
||||||
|
binary.compiler.cxxincludes += [
|
||||||
compiler = SM.DefaultHL2Compiler('extensions/sdkhooks', i)
|
os.path.join(sdk.path, 'game', 'shared')
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'game', 'shared'))
|
]
|
||||||
|
if binary.compiler.cxx.behavior is 'gcc':
|
||||||
if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang':
|
binary.compiler.cxxflags += ['-Wno-invalid-offsetof']
|
||||||
compiler['CFLAGS'].append('-Wno-parentheses')
|
|
||||||
compiler['CXXFLAGS'].append('-Wno-invalid-offsetof')
|
|
||||||
|
|
||||||
name = 'sdkhooks.ext.' + sdk['ext']
|
|
||||||
extension = AMBuild.AddJob(name)
|
|
||||||
binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)
|
|
||||||
SM.PreSetupHL2Job(extension, binary, i)
|
|
||||||
binary.AddSourceFiles('extensions/sdkhooks', [
|
|
||||||
'extension.cpp',
|
|
||||||
'natives.cpp',
|
|
||||||
'takedamageinfohack.cpp',
|
|
||||||
'util.cpp',
|
|
||||||
'sdk/smsdk_ext.cpp',
|
|
||||||
])
|
|
||||||
SM.PostSetupHL2Job(extension, binary, i)
|
|
||||||
SM.AutoVersion('extensions/sdkhooks', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
binary.sources += [
|
||||||
|
'extension.cpp',
|
||||||
|
'natives.cpp',
|
||||||
|
'takedamageinfohack.cpp',
|
||||||
|
'util.cpp',
|
||||||
|
'sdk/smsdk_ext.cpp',
|
||||||
|
]
|
||||||
|
SM.extensions += [builder.Add(binary)]
|
||||||
|
@ -350,12 +350,12 @@ bool SDKHooks::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool
|
|||||||
|
|
||||||
const char *SDKHooks::GetExtensionVerString()
|
const char *SDKHooks::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *SDKHooks::GetExtensionDateString()
|
const char *SDKHooks::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDKHooks::OnPluginLoaded(IPlugin *plugin)
|
void SDKHooks::OnPluginLoaded(IPlugin *plugin)
|
||||||
|
@ -1,53 +1,45 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
for i in SM.sdkInfo:
|
for sdk_name in SM.sdks:
|
||||||
sdk = SM.sdkInfo[i]
|
sdk = SM.sdks[sdk_name]
|
||||||
if AMBuild.target['platform'] not in sdk['platform']:
|
|
||||||
continue
|
|
||||||
|
|
||||||
compiler = SM.DefaultHL2Compiler('extensions/sdktools', i)
|
binary = SM.HL2Library(builder, 'sdktools.ext.' + sdk.ext, sdk)
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit'))
|
binary.compiler.cxxincludes += [
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'jit', 'x86'))
|
os.path.join(sdk.path, 'game', 'shared'),
|
||||||
|
os.path.join(builder.sourcePath, 'public', 'jit'),
|
||||||
|
os.path.join(builder.sourcePath, 'public', 'jit', 'x86'),
|
||||||
|
]
|
||||||
|
|
||||||
if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang':
|
if sdk.name != 'ep1':
|
||||||
compiler['CFLAGS'].append('-Wno-parentheses')
|
binary.compiler.defines += ['HOOKING_ENABLED']
|
||||||
compiler['CXXFLAGS'].append('-Wno-invalid-offsetof')
|
|
||||||
|
|
||||||
if i != 'ep1':
|
if binary.compiler.cxx.behavior is 'gcc':
|
||||||
compiler['CDEFINES'].append('HOOKING_ENABLED')
|
binary.compiler.cxxflags += ['-Wno-invalid-offsetof']
|
||||||
|
|
||||||
name = 'sdktools.ext.' + sdk['ext']
|
|
||||||
extension = AMBuild.AddJob(name)
|
|
||||||
binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)
|
|
||||||
SM.PreSetupHL2Job(extension, binary, i)
|
|
||||||
binary.AddSourceFiles('extensions/sdktools', [
|
|
||||||
'extension.cpp',
|
|
||||||
'inputnatives.cpp',
|
|
||||||
'output.cpp',
|
|
||||||
'outputnatives.cpp',
|
|
||||||
'tempents.cpp',
|
|
||||||
'tenatives.cpp',
|
|
||||||
'teamnatives.cpp',
|
|
||||||
'trnatives.cpp',
|
|
||||||
'vcaller.cpp',
|
|
||||||
'vcallbuilder.cpp',
|
|
||||||
'vdecoder.cpp',
|
|
||||||
'vglobals.cpp',
|
|
||||||
'vhelpers.cpp',
|
|
||||||
'vnatives.cpp',
|
|
||||||
'voice.cpp',
|
|
||||||
'vsound.cpp',
|
|
||||||
'clientnatives.cpp',
|
|
||||||
'hooks.cpp',
|
|
||||||
'gamerulesnatives.cpp',
|
|
||||||
'vstringtable.cpp',
|
|
||||||
'CDetour/detours.cpp',
|
|
||||||
'sdk/smsdk_ext.cpp',
|
|
||||||
'asm/asm.c'
|
|
||||||
])
|
|
||||||
SM.PostSetupHL2Job(extension, binary, i)
|
|
||||||
SM.AutoVersion('extensions/sdktools', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
binary.sources += [
|
||||||
|
'extension.cpp',
|
||||||
|
'inputnatives.cpp',
|
||||||
|
'output.cpp',
|
||||||
|
'outputnatives.cpp',
|
||||||
|
'tempents.cpp',
|
||||||
|
'tenatives.cpp',
|
||||||
|
'teamnatives.cpp',
|
||||||
|
'trnatives.cpp',
|
||||||
|
'vcaller.cpp',
|
||||||
|
'vcallbuilder.cpp',
|
||||||
|
'vdecoder.cpp',
|
||||||
|
'vglobals.cpp',
|
||||||
|
'vhelpers.cpp',
|
||||||
|
'vnatives.cpp',
|
||||||
|
'voice.cpp',
|
||||||
|
'vsound.cpp',
|
||||||
|
'clientnatives.cpp',
|
||||||
|
'hooks.cpp',
|
||||||
|
'gamerulesnatives.cpp',
|
||||||
|
'vstringtable.cpp',
|
||||||
|
'CDetour/detours.cpp',
|
||||||
|
'sdk/smsdk_ext.cpp',
|
||||||
|
'asm/asm.c'
|
||||||
|
]
|
||||||
|
SM.extensions += [builder.Add(binary)]
|
||||||
|
@ -435,12 +435,12 @@ bool SDKTools::ProcessCommandTarget(cmd_target_info_t *info)
|
|||||||
|
|
||||||
const char *SDKTools::GetExtensionVerString()
|
const char *SDKTools::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *SDKTools::GetExtensionDateString()
|
const char *SDKTools::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDKTools::OnClientPutInServer(int client)
|
void SDKTools::OnClientPutInServer(int client)
|
||||||
|
@ -1,22 +1,28 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultExtCompiler('extensions/sqlite')
|
binary = SM.ExtLibrary(builder, 'dbi.sqlite.ext')
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
binary.compiler.cxxincludes += [
|
||||||
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
|
]
|
||||||
|
|
||||||
compiler['CDEFINES'].extend(['SQLITE_OMIT_LOAD_EXTENSION', 'SQLITE_THREADSAFE'])
|
binary.compiler.defines += [
|
||||||
if AMBuild.target['platform'] == 'linux':
|
'SQLITE_OMIT_LOAD_EXTENSION',
|
||||||
compiler['POSTLINKFLAGS'].extend(['-ldl', '-lpthread'])
|
'SQLITE_THREADSAFE'
|
||||||
|
]
|
||||||
|
if builder.target_platform is 'linux':
|
||||||
|
binary.compiler.postlink += ['-ldl', '-lpthread']
|
||||||
|
|
||||||
extension = AMBuild.AddJob('dbi.sqlite.ext')
|
binary.sources += [
|
||||||
binary = Cpp.LibraryBuilder('dbi.sqlite.ext', AMBuild, extension, compiler)
|
'sdk/smsdk_ext.cpp',
|
||||||
files = [
|
'sdk/sm_memtable.cpp',
|
||||||
'sdk/smsdk_ext.cpp', 'sdk/sm_memtable.cpp', 'extension.cpp',
|
'extension.cpp',
|
||||||
'driver/SqDatabase.cpp', 'driver/SqDriver.cpp', 'driver/SqQuery.cpp',
|
'driver/SqDatabase.cpp',
|
||||||
'driver/SqResults.cpp', 'sqlite-source/sqlite3.c'
|
'driver/SqDriver.cpp',
|
||||||
]
|
'driver/SqQuery.cpp',
|
||||||
binary.AddSourceFiles('extensions/sqlite', files)
|
'driver/SqResults.cpp',
|
||||||
SM.AutoVersion('extensions/sqlite', binary)
|
'sqlite-source/sqlite3.c'
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
]
|
||||||
binary.SendToJob()
|
|
||||||
|
SM.extensions += [builder.Add(binary)]
|
||||||
|
|
||||||
|
@ -74,11 +74,11 @@ size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...)
|
|||||||
|
|
||||||
const char *SqliteExt::GetExtensionVerString()
|
const char *SqliteExt::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *SqliteExt::GetExtensionDateString()
|
const char *SqliteExt::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,31 +1,22 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
sdk = SM.sdkInfo['tf2']
|
if 'tf2' in SM.sdks:
|
||||||
compiler = SM.DefaultHL2Compiler('extensions/tf2', 'tf2')
|
sdk = SM.sdks['tf2']
|
||||||
if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang':
|
|
||||||
compiler['CFLAGS'].append('-Wno-parentheses')
|
binary = SM.HL2Library(builder, 'game.tf2.ext.' + sdk.ext, sdk)
|
||||||
|
binary.sources += [
|
||||||
name = 'game.tf2.ext.' + sdk['ext']
|
'extension.cpp',
|
||||||
extension = AMBuild.AddJob(name)
|
'natives.cpp',
|
||||||
binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)
|
'RegNatives.cpp',
|
||||||
SM.PreSetupHL2Job(extension, binary, 'tf2')
|
'util.cpp',
|
||||||
binary.AddSourceFiles('extensions/tf2', [
|
'criticals.cpp',
|
||||||
'extension.cpp',
|
'holiday.cpp',
|
||||||
'natives.cpp',
|
'teleporter.cpp',
|
||||||
'RegNatives.cpp',
|
'gameplayrules.cpp',
|
||||||
'util.cpp',
|
'conditions.cpp',
|
||||||
'criticals.cpp',
|
'CDetour/detours.cpp',
|
||||||
'holiday.cpp',
|
'sdk/smsdk_ext.cpp',
|
||||||
'teleporter.cpp',
|
'asm/asm.c'
|
||||||
'gameplayrules.cpp',
|
]
|
||||||
'conditions.cpp',
|
SM.extensions += [builder.Add(binary)]
|
||||||
'CDetour/detours.cpp',
|
|
||||||
'sdk/smsdk_ext.cpp',
|
|
||||||
'asm/asm.c'
|
|
||||||
])
|
|
||||||
SM.PostSetupHL2Job(extension, binary, 'tf2')
|
|
||||||
SM.AutoVersion('extensions/tf2', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
@ -136,12 +136,12 @@ bool TF2Tools::SDK_OnLoad(char *error, size_t maxlength, bool late)
|
|||||||
|
|
||||||
const char *TF2Tools::GetExtensionVerString()
|
const char *TF2Tools::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *TF2Tools::GetExtensionDateString()
|
const char *TF2Tools::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TF2Tools::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool late)
|
bool TF2Tools::SDK_OnMetamodLoad(ISmmAPI *ismm, char *error, size_t maxlen, bool late)
|
||||||
|
@ -1,20 +1,18 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultExtCompiler('extensions/topmenus')
|
binary = SM.ExtLibrary(builder, 'topmenus.ext')
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
binary.compiler.cxxincludes += [
|
||||||
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
|
]
|
||||||
|
|
||||||
extension = AMBuild.AddJob('topmenus.ext')
|
binary.sources += [
|
||||||
binary = Cpp.LibraryBuilder('topmenus.ext', AMBuild, extension, compiler)
|
'extension.cpp',
|
||||||
binary.AddSourceFiles('extensions/topmenus', [
|
'smn_topmenus.cpp',
|
||||||
'extension.cpp',
|
'TopMenu.cpp',
|
||||||
'smn_topmenus.cpp',
|
'TopMenuManager.cpp',
|
||||||
'TopMenu.cpp',
|
'sdk/smsdk_ext.cpp',
|
||||||
'TopMenuManager.cpp',
|
'sdk/sm_memtable.cpp'
|
||||||
'sdk/smsdk_ext.cpp',
|
]
|
||||||
'sdk/sm_memtable.cpp'
|
|
||||||
])
|
|
||||||
SM.AutoVersion('extensions/topmenus', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
SM.extensions += [builder.Add(binary)]
|
||||||
|
@ -67,11 +67,11 @@ void TopMenuExtension::SDK_OnUnload()
|
|||||||
|
|
||||||
const char *TopMenuExtension::GetExtensionVerString()
|
const char *TopMenuExtension::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *TopMenuExtension::GetExtensionDateString()
|
const char *TopMenuExtension::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,19 +1,18 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultExtCompiler('extensions/updater')
|
binary = SM.ExtLibrary(builder, 'updater.ext')
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
binary.compiler.cxxincludes += [
|
||||||
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
|
]
|
||||||
|
|
||||||
extension = AMBuild.AddJob('updater.ext')
|
binary.sources += [
|
||||||
binary = Cpp.LibraryBuilder('updater.ext', AMBuild, extension, compiler)
|
'extension.cpp',
|
||||||
binary.AddSourceFiles('extensions/updater', [
|
'MemoryDownloader.cpp',
|
||||||
'extension.cpp',
|
'Updater.cpp',
|
||||||
'MemoryDownloader.cpp',
|
'md5.cpp',
|
||||||
'Updater.cpp',
|
'sdk/smsdk_ext.cpp'
|
||||||
'md5.cpp',
|
]
|
||||||
'sdk/smsdk_ext.cpp'
|
|
||||||
])
|
SM.extensions += [builder.Add(binary)]
|
||||||
SM.AutoVersion('extensions/updater', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
@ -356,7 +356,7 @@ void UpdateReader::PerformUpdate(const char *url)
|
|||||||
xfer = webternet->CreateSession();
|
xfer = webternet->CreateSession();
|
||||||
xfer->SetFailOnHTTPError(true);
|
xfer->SetFailOnHTTPError(true);
|
||||||
|
|
||||||
form->AddString("version", SM_VERSION_STRING);
|
form->AddString("version", SOURCEMOD_VERSION);
|
||||||
|
|
||||||
unsigned int num_files = 0;
|
unsigned int num_files = 0;
|
||||||
add_folders(form, "gamedata", num_files);
|
add_folders(form, "gamedata", num_files);
|
||||||
|
@ -249,11 +249,11 @@ void AddUpdateError(const char *fmt, ...)
|
|||||||
|
|
||||||
const char *SmUpdater::GetExtensionVerString()
|
const char *SmUpdater::GetExtensionVerString()
|
||||||
{
|
{
|
||||||
return SM_VERSION_STRING;
|
return SOURCEMOD_VERSION;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *SmUpdater::GetExtensionDateString()
|
const char *SmUpdater::GetExtensionDateString()
|
||||||
{
|
{
|
||||||
return SM_BUILD_TIMESTAMP;
|
return SOURCEMOD_BUILD_TIME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
compiler = SM.DefaultCompiler()
|
if builder.target_platform in ['windows', 'mac']:
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core'))
|
name = 'sourcemod_mm'
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
extra_ldflags = []
|
||||||
|
elif builder.target_platform is 'linux':
|
||||||
|
name = 'sourcemod_mm_i486'
|
||||||
|
extra_ldflags = ['-ldl']
|
||||||
|
|
||||||
if AMBuild.target['platform'] == 'windows' or AMBuild.target['platform'] == 'darwin':
|
binary = SM.Library(builder, name)
|
||||||
name = 'sourcemod_mm'
|
binary.compiler.cxxincludes += [
|
||||||
elif AMBuild.target['platform'] == 'linux':
|
os.path.join(SM.mms_root, 'core'),
|
||||||
name = 'sourcemod_mm_i486'
|
os.path.join(SM.mms_root, 'sourcehook')
|
||||||
compiler['POSTLINKFLAGS'].extend(['-ldl'])
|
]
|
||||||
|
binary.compiler.linkflags += extra_ldflags
|
||||||
loader = AMBuild.AddJob('loader')
|
binary.sources = [
|
||||||
binary = Cpp.LibraryBuilder(name, AMBuild, loader, compiler)
|
'loader.cpp'
|
||||||
binary.AddSourceFiles('loader', [
|
]
|
||||||
'loader.cpp'
|
|
||||||
])
|
|
||||||
SM.AutoVersion('loader', binary)
|
|
||||||
SM.ExtractDebugInfo(loader, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
nodes = builder.Add(binary)
|
||||||
|
SM.binaries += [nodes]
|
||||||
|
@ -1,53 +1,65 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
import os.path
|
|
||||||
import ambuild.osutil as osutil
|
|
||||||
import ambuild.command as command
|
|
||||||
|
|
||||||
files = [
|
files = [
|
||||||
'adminhelp.sp',
|
'adminhelp.sp',
|
||||||
'antiflood.sp',
|
'antiflood.sp',
|
||||||
'basecomm.sp',
|
'basecomm.sp',
|
||||||
'clientprefs.sp',
|
'clientprefs.sp',
|
||||||
'nextmap.sp',
|
'nextmap.sp',
|
||||||
'reservedslots.sp',
|
'reservedslots.sp',
|
||||||
'adminmenu.sp',
|
'adminmenu.sp',
|
||||||
'basebans.sp',
|
'basebans.sp',
|
||||||
'basetriggers.sp',
|
'basetriggers.sp',
|
||||||
'funcommands.sp',
|
'funcommands.sp',
|
||||||
'nominations.sp',
|
'nominations.sp',
|
||||||
'rockthevote.sp',
|
'rockthevote.sp',
|
||||||
'admin-sql-prefetch.sp',
|
'admin-sql-prefetch.sp',
|
||||||
'basechat.sp',
|
'basechat.sp',
|
||||||
'basevotes.sp',
|
'basevotes.sp',
|
||||||
'funvotes.sp',
|
'funvotes.sp',
|
||||||
'playercommands.sp',
|
'playercommands.sp',
|
||||||
'sounds.sp',
|
'sounds.sp',
|
||||||
'admin-sql-threaded.sp',
|
'admin-sql-threaded.sp',
|
||||||
'basecommands.sp',
|
'basecommands.sp',
|
||||||
'mapchooser.sp',
|
'mapchooser.sp',
|
||||||
'randomcycle.sp',
|
'randomcycle.sp',
|
||||||
'sql-admin-manager.sp'
|
'sql-admin-manager.sp'
|
||||||
]
|
]
|
||||||
|
|
||||||
plugins = AMBuild.AddJob('plugins')
|
spcomp_argv = [
|
||||||
|
os.path.join(builder.buildPath, SM.spcomp.binary.path),
|
||||||
|
'SM_GENERATED_BUILD=',
|
||||||
|
'-i' + os.path.relpath(os.path.join(builder.buildPath, 'includes'),
|
||||||
|
os.path.join(builder.buildPath, builder.buildFolder)),
|
||||||
|
'-i' + os.path.relpath(os.path.join(builder.sourcePath, 'plugins', 'include'),
|
||||||
|
os.path.join(builder.buildPath, builder.buildFolder)),
|
||||||
|
'-h',
|
||||||
|
]
|
||||||
|
|
||||||
spcomp = os.path.join(AMBuild.outputFolder, 'spcomp', 'spcomp')
|
def build_plugin(script_path, smx_file):
|
||||||
includes = os.path.relpath(os.path.join(AMBuild.sourceFolder, 'plugins', 'include'),
|
inputs = [
|
||||||
os.path.join(AMBuild.outputFolder, 'plugins'))
|
SM.spcomp.binary,
|
||||||
|
script_path,
|
||||||
versioninc = os.path.relpath(os.path.join(AMBuild.outputFolder, 'includes'),
|
]
|
||||||
os.path.join(AMBuild.outputFolder, 'plugins'))
|
outputs = [
|
||||||
|
smx_file
|
||||||
#This one has to be special
|
]
|
||||||
sp = os.path.join(AMBuild.sourceFolder, 'plugins', 'admin-flatfile', 'admin-flatfile.sp')
|
argv = spcomp_argv + [script_path]
|
||||||
args = [spcomp, 'SM_GENERATED_BUILD=', '-i' + versioninc, '-i' + includes, sp]
|
cmd_entry, (smx_entry,) = builder.AddCommand(
|
||||||
plugins.AddCommand(command.DirectCommand(args))
|
inputs = inputs,
|
||||||
|
argv = argv,
|
||||||
#Do the normal ones
|
outputs = outputs,
|
||||||
for file in files:
|
dep_type = 'msvc',
|
||||||
sp = os.path.join(AMBuild.sourceFolder, 'plugins', file)
|
weak_inputs = SM.generated_headers
|
||||||
args = [spcomp, 'SM_GENERATED_BUILD=', '-i' + versioninc, '-i' + includes, sp]
|
)
|
||||||
plugins.AddCommand(command.DirectCommand(args))
|
SM.smx_files[smx_file] = smx_entry
|
||||||
|
|
||||||
|
for script_file in files:
|
||||||
|
script_path = os.path.join(builder.currentSourcePath, script_file)
|
||||||
|
smx_file = os.path.splitext(script_file)[0] + '.smx'
|
||||||
|
build_plugin(script_path, smx_file)
|
||||||
|
|
||||||
|
# This one has to be special.
|
||||||
|
build_plugin(os.path.join(builder.currentSourcePath, 'admin-flatfile', 'admin-flatfile.sp'),
|
||||||
|
'admin-flatfile.smx')
|
||||||
|
@ -39,21 +39,34 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined SM_GENERATED_BUILD
|
#if defined SM_GENERATED_BUILD
|
||||||
#include <sourcemod_version_auto.h>
|
# if defined RC_COMPILE
|
||||||
|
# undef SM_USE_VERSIONLIB
|
||||||
|
# endif
|
||||||
|
# if defined SM_USE_VERSIONLIB
|
||||||
|
# include <versionlib.h>
|
||||||
|
# else
|
||||||
|
# include <sourcemod_version_auto.h>
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
#define SM_BUILD_TAG "manual"
|
#define SM_BUILD_TAG "manual"
|
||||||
#define SM_BUILD_REV "0"
|
#define SM_BUILD_REV "0"
|
||||||
#define SM_BUILD_CSET "0"
|
#define SM_BUILD_CSET "0"
|
||||||
#define SM_BUILD_MAJOR "1"
|
#define SM_BUILD_MAJOR "1"
|
||||||
#define SM_BUILD_MINOR "5"
|
#define SM_BUILD_MINOR "6"
|
||||||
#define SM_BUILD_RELEASE "0"
|
#define SM_BUILD_RELEASE "0"
|
||||||
|
|
||||||
#define SM_BUILD_UNIQUEID SM_BUILD_REV ":" SM_BUILD_CSET
|
#define SM_BUILD_UNIQUEID SM_BUILD_REV ":" SM_BUILD_CSET
|
||||||
|
|
||||||
#define SM_VERSION_STRING SM_BUILD_MAJOR "." SM_BUILD_MINOR "." SM_BUILD_RELEASE "-" SM_BUILD_TAG
|
#define SM_VERSION_STRING SM_BUILD_MAJOR "." SM_BUILD_MINOR "." SM_BUILD_RELEASE "-" SM_BUILD_TAG
|
||||||
#define SM_VERSION_FILE 1,5,0,0
|
#define SM_VERSION_FILE 1,6,0,0
|
||||||
#endif
|
#endif
|
||||||
#define SM_BUILD_TIMESTAMP __DATE__ " " __TIME__
|
#define SM_BUILD_TIMESTAMP __DATE__ " " __TIME__
|
||||||
|
|
||||||
|
#if !defined(SM_GENERATED_BUILD) || !defined(SM_USE_VERSIONLIB)
|
||||||
|
# define SOURCEMOD_VERSION SM_VERSION_STRING
|
||||||
|
# define SOURCEMOD_BUILD_ID SM_BUILD_UNIQUEID
|
||||||
|
# define SOURCEMOD_BUILD_TIME SM_BUILD_TIMESTAMP
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* _INCLUDE_SOURCEMOD_VERSION_INFORMATION_H_ */
|
#endif /* _INCLUDE_SOURCEMOD_VERSION_INFORMATION_H_ */
|
||||||
|
|
||||||
|
@ -1,72 +1,75 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultCompiler()
|
binary = SM.Program(builder, 'spcomp')
|
||||||
compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public'))
|
compiler = binary.compiler
|
||||||
compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'sourcepawn'))
|
compiler.includes += [
|
||||||
compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'sourcepawn', 'compiler'))
|
os.path.join(builder.sourcePath, 'public'),
|
||||||
compiler['CINCLUDES'].append(os.path.join(AMBuild.outputFolder, 'includes'))
|
os.path.join(builder.sourcePath, 'public', 'sourcepawn'),
|
||||||
|
os.path.join(builder.sourcePath, 'sourcepawn', 'compiler'),
|
||||||
if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang':
|
os.path.join(builder.buildPath, 'includes'),
|
||||||
compiler['CFLAGS'].extend(['-Wno-parentheses', '-Wno-format'])
|
]
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
compiler['POSTLINKFLAGS'].extend(['-lgcc', '-lm'])
|
if compiler.cc.behavior is 'gcc':
|
||||||
elif compiler.cc.name == 'msvc':
|
compiler.cflags += ['-Wno-format']
|
||||||
compiler['POSTLINKFLAGS'].remove('/SUBSYSTEM:WINDOWS')
|
if builder.target_platform is 'linux':
|
||||||
compiler['POSTLINKFLAGS'].append('/SUBSYSTEM:CONSOLE')
|
compiler.postlink += ['-lgcc', '-lm']
|
||||||
|
elif compiler.cc.behavior is 'msvc':
|
||||||
if AMBuild.target['platform'] == 'linux':
|
compiler.linkflags.remove('/SUBSYSTEM:WINDOWS')
|
||||||
compiler['CDEFINES'].extend(['LINUX', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC', '_GNU_SOURCE'])
|
compiler.linkflags.append('/SUBSYSTEM:CONSOLE')
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
|
||||||
compiler['CDEFINES'].extend(['DARWIN', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC'])
|
if builder.target_platform is 'linux':
|
||||||
|
compiler.defines += [
|
||||||
extension = AMBuild.AddJob('spcomp')
|
'LINUX',
|
||||||
binary = Cpp.ExecutableBuilder('spcomp', AMBuild, extension, compiler)
|
'HAVE_STDINT_H',
|
||||||
files = [
|
'AMX_ANSIONLY',
|
||||||
'libpawnc.c',
|
'ENABLE_BINRELOC',
|
||||||
'lstring.c',
|
'_GNU_SOURCE'
|
||||||
'memfile.c',
|
]
|
||||||
'pawncc.c',
|
elif builder.target_platform is 'mac':
|
||||||
'sc1.c',
|
compiler.defines += [
|
||||||
'sc2.c',
|
'DARWIN',
|
||||||
'sc3.c',
|
'HAVE_STDINT_H',
|
||||||
'sc4.c',
|
'AMX_ANSIONLY',
|
||||||
'sc5.c',
|
'ENABLE_BINRELOC',
|
||||||
'sc6.c',
|
'HAVE_SAFESTR'
|
||||||
'sc7.c',
|
]
|
||||||
'scexpand.c',
|
|
||||||
'sci18n.c',
|
binary.sources += [
|
||||||
'sclist.c',
|
'libpawnc.c',
|
||||||
'scmemfil.c',
|
'lstring.c',
|
||||||
'scstate.c',
|
'memfile.c',
|
||||||
'sctracker.c',
|
'pawncc.c',
|
||||||
'scvars.c',
|
'sc1.c',
|
||||||
'sp_file.c',
|
'sc2.c',
|
||||||
'zlib/adler32.c',
|
'sc3.c',
|
||||||
'zlib/compress.c',
|
'sc4.c',
|
||||||
'zlib/crc32.c',
|
'sc5.c',
|
||||||
'zlib/deflate.c',
|
'sc6.c',
|
||||||
'zlib/gzio.c',
|
'sc7.c',
|
||||||
'zlib/infback.c',
|
'scexpand.c',
|
||||||
'zlib/inffast.c',
|
'sci18n.c',
|
||||||
'zlib/inflate.c',
|
'sclist.c',
|
||||||
'zlib/inftrees.c',
|
'scmemfil.c',
|
||||||
'zlib/trees.c',
|
'scstate.c',
|
||||||
'zlib/uncompr.c',
|
'sctracker.c',
|
||||||
'zlib/zutil.c',
|
'scvars.c',
|
||||||
'sp_symhash.c'
|
'sp_file.c',
|
||||||
]
|
'zlib/adler32.c',
|
||||||
if AMBuild.target['platform'] == 'linux':
|
'zlib/compress.c',
|
||||||
files.append('binreloc.c')
|
'zlib/crc32.c',
|
||||||
binary.AddSourceFiles('sourcepawn/compiler', files)
|
'zlib/deflate.c',
|
||||||
|
'zlib/gzio.c',
|
||||||
if AMBuild.target['platform'] == 'windows':
|
'zlib/infback.c',
|
||||||
env = {'RCDEFINES': ['BINARY_NAME="' + binary.binaryFile + '"', 'SM_GENERATED_BUILD']}
|
'zlib/inffast.c',
|
||||||
binary.AddResourceFile('sourcepawn/compiler/libpawnc.rc', env)
|
'zlib/inflate.c',
|
||||||
elif AMBuild.target['platform'] == 'darwin' and isinstance(binary, Cpp.LibraryBuilder):
|
'zlib/inftrees.c',
|
||||||
binary.compiler['POSTLINKFLAGS'].extend(['-compatibility_version', '1.0.0'])
|
'zlib/trees.c',
|
||||||
binary.compiler['POSTLINKFLAGS'].extend(['-current_version', AMBuild.cache['version']])
|
'zlib/uncompr.c',
|
||||||
|
'zlib/zutil.c',
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
'sp_symhash.c'
|
||||||
binary.SendToJob()
|
]
|
||||||
|
if builder.target_platform is 'linux':
|
||||||
|
binary.sources.append('binreloc.c')
|
||||||
|
|
||||||
|
SM.spcomp = builder.Add(binary)
|
||||||
|
@ -809,6 +809,7 @@ SC_VDECL int sc_needsemicolon;/* semicolon required to terminate expressions? */
|
|||||||
SC_VDECL int sc_dataalign; /* data alignment value */
|
SC_VDECL int sc_dataalign; /* data alignment value */
|
||||||
SC_VDECL int sc_alignnext; /* must frame of the next function be aligned? */
|
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 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 int curseg; /* 1 if currently parsing CODE, 2 if parsing DATA */
|
||||||
SC_VDECL cell pc_stksize; /* stack size */
|
SC_VDECL cell pc_stksize; /* stack size */
|
||||||
SC_VDECL cell pc_amxlimit; /* abstract machine size limit (code + data, or only code) */
|
SC_VDECL cell pc_amxlimit; /* abstract machine size limit (code + data, or only code) */
|
||||||
|
@ -267,7 +267,9 @@ int pc_compile(int argc, char *argv[])
|
|||||||
tname=NULL;
|
tname=NULL;
|
||||||
sname=NULL;
|
sname=NULL;
|
||||||
#else
|
#else
|
||||||
tname=tempnam(NULL,"pawn");
|
char buffer[] = P_tmpdir "/pawn.XXXXXX";
|
||||||
|
close(mkstemp(buffer));
|
||||||
|
tname=buffer;
|
||||||
#endif
|
#endif
|
||||||
ftmp=(FILE*)pc_createsrc(tname);
|
ftmp=(FILE*)pc_createsrc(tname);
|
||||||
for (fidx=0; (sname=get_sourcefile(fidx))!=NULL; fidx++) {
|
for (fidx=0; (sname=get_sourcefile(fidx))!=NULL; fidx++) {
|
||||||
@ -851,11 +853,11 @@ static void parseoptions(int argc,char **argv,char *oname,char *ename,char *pnam
|
|||||||
int arg,i,isoption;
|
int arg,i,isoption;
|
||||||
|
|
||||||
for (arg=1; arg<argc; arg++) {
|
for (arg=1; arg<argc; arg++) {
|
||||||
#if DIRSEP_CHAR=='/'
|
#if DIRSEP_CHAR=='/'
|
||||||
isoption= argv[arg][0]=='-';
|
isoption= argv[arg][0]=='-';
|
||||||
#else
|
#else
|
||||||
isoption= argv[arg][0]=='/' || argv[arg][0]=='-';
|
isoption= argv[arg][0]=='/' || argv[arg][0]=='-';
|
||||||
#endif
|
#endif
|
||||||
if (isoption) {
|
if (isoption) {
|
||||||
ptr=&argv[arg][1];
|
ptr=&argv[arg][1];
|
||||||
switch (*ptr) {
|
switch (*ptr) {
|
||||||
@ -925,6 +927,9 @@ static void parseoptions(int argc,char **argv,char *oname,char *ename,char *pnam
|
|||||||
hwndFinish=(HWND)0;
|
hwndFinish=(HWND)0;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
case 'h':
|
||||||
|
sc_showincludes = 1;
|
||||||
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
strlcpy(str,option_value(ptr),sizeof str); /* set name of include directory */
|
strlcpy(str,option_value(ptr),sizeof str); /* set name of include directory */
|
||||||
i=strlen(str);
|
i=strlen(str);
|
||||||
@ -1233,7 +1238,7 @@ static void setconfig(char *root)
|
|||||||
|
|
||||||
static void setcaption(void)
|
static void setcaption(void)
|
||||||
{
|
{
|
||||||
pc_printf("SourcePawn Compiler " SM_VERSION_STRING "\n");
|
pc_printf("SourcePawn Compiler %s\n", SOURCEMOD_VERSION);
|
||||||
pc_printf("Copyright (c) 1997-2006, ITB CompuPhase, (C)2004-2008 AlliedModders, LLC\n\n");
|
pc_printf("Copyright (c) 1997-2006, ITB CompuPhase, (C)2004-2008 AlliedModders, LLC\n\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1263,6 +1268,7 @@ static void about(void)
|
|||||||
#if defined __WIN32__ || defined _WIN32 || defined _Windows
|
#if defined __WIN32__ || defined _WIN32 || defined _Windows
|
||||||
pc_printf(" -H<hwnd> window handle to send a notification message on finish\n");
|
pc_printf(" -H<hwnd> window handle to send a notification message on finish\n");
|
||||||
#endif
|
#endif
|
||||||
|
pc_printf(" -h show included file paths\n");
|
||||||
pc_printf(" -i<name> path for include files\n");
|
pc_printf(" -i<name> path for include files\n");
|
||||||
pc_printf(" -l create list file (preprocess only)\n");
|
pc_printf(" -l create list file (preprocess only)\n");
|
||||||
pc_printf(" -o<name> set base name of (P-code) output file\n");
|
pc_printf(" -o<name> set base name of (P-code) output file\n");
|
||||||
|
@ -153,6 +153,9 @@ static char *extensions[] = { ".inc", ".p", ".pawn" };
|
|||||||
*ext='\0'; /* restore filename */
|
*ext='\0'; /* restore filename */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
} /* if */
|
} /* if */
|
||||||
|
if (sc_showincludes && sc_status==statFIRST) {
|
||||||
|
fprintf(stdout, "Note: including file: %s\n", name);
|
||||||
|
}
|
||||||
PUSHSTK_P(inpf);
|
PUSHSTK_P(inpf);
|
||||||
PUSHSTK_P(inpfname); /* pointer to current file name */
|
PUSHSTK_P(inpfname); /* pointer to current file name */
|
||||||
PUSHSTK_P(curlibrary);
|
PUSHSTK_P(curlibrary);
|
||||||
|
@ -91,6 +91,7 @@ SC_VDEFINE char *pc_deprecate=NULL;/* if non-null, mark next declaration as depr
|
|||||||
SC_VDEFINE int sc_curstates=0; /* ID of the current state list */
|
SC_VDEFINE int sc_curstates=0; /* ID of the current state list */
|
||||||
SC_VDEFINE int pc_optimize=sOPTIMIZE_NOMACRO; /* (peephole) optimization level */
|
SC_VDEFINE int pc_optimize=sOPTIMIZE_NOMACRO; /* (peephole) optimization level */
|
||||||
SC_VDEFINE int pc_memflags=0; /* special flags for the stack/heap usage */
|
SC_VDEFINE int pc_memflags=0; /* special flags for the stack/heap usage */
|
||||||
|
SC_VDEFINE int sc_showincludes=0; /* show include files */
|
||||||
|
|
||||||
SC_VDEFINE constvalue sc_automaton_tab = { NULL, "", 0, 0}; /* automaton table */
|
SC_VDEFINE constvalue sc_automaton_tab = { NULL, "", 0, 0}; /* automaton table */
|
||||||
SC_VDEFINE constvalue sc_state_tab = { NULL, "", 0, 0}; /* state table */
|
SC_VDEFINE constvalue sc_state_tab = { NULL, "", 0, 0}; /* state table */
|
||||||
|
@ -1,45 +1,47 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
|
|
||||||
compiler = SM.DefaultCompiler()
|
binary = SM.Library(builder, 'sourcepawn.jit.x86')
|
||||||
base = AMBuild.sourceFolder
|
binary.compiler.includes += [
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(SM.mmsPath, 'core', 'sourcehook'))
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'sourcepawn', 'jit'))
|
os.path.join(builder.sourcePath, 'sourcepawn', 'jit'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'sourcepawn', 'jit', 'x86'))
|
os.path.join(builder.sourcePath, 'sourcepawn', 'jit', 'x86'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'public'))
|
os.path.join(builder.sourcePath, 'public'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'public', 'sourcepawn'))
|
os.path.join(builder.sourcePath, 'public', 'sourcepawn'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'public', 'jit'))
|
os.path.join(builder.sourcePath, 'public', 'amtl'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'public', 'jit', 'x86'))
|
os.path.join(builder.sourcePath, 'public', 'jit'),
|
||||||
compiler['CXXINCLUDES'].append(os.path.join(base, 'knight', 'shared'))
|
os.path.join(builder.sourcePath, 'public', 'jit', 'x86'),
|
||||||
|
os.path.join(builder.sourcePath, 'knight', 'shared'),
|
||||||
|
]
|
||||||
|
|
||||||
extension = AMBuild.AddJob('sourcepawn.jit.x86')
|
if builder.target_platform is 'linux':
|
||||||
binary = Cpp.LibraryBuilder('sourcepawn.jit.x86', AMBuild, extension, compiler)
|
binary.compiler.postlink += ['-lpthread', '-lrt']
|
||||||
binary.AddSourceFiles('sourcepawn/jit', [
|
elif builder.target_platform is 'darwin':
|
||||||
'BaseRuntime.cpp',
|
binary.compiler.postlink += ['-lpthread', '-ldl']
|
||||||
'engine2.cpp',
|
|
||||||
'dll_exports.cpp',
|
|
||||||
'jit_function.cpp',
|
|
||||||
'sp_vm_basecontext.cpp',
|
|
||||||
'sp_vm_engine.cpp',
|
|
||||||
'sp_vm_function.cpp',
|
|
||||||
'x86/jit_x86.cpp',
|
|
||||||
'x86/opcode_helpers.cpp',
|
|
||||||
'zlib/adler32.c',
|
|
||||||
'zlib/compress.c',
|
|
||||||
'zlib/crc32.c',
|
|
||||||
'zlib/deflate.c',
|
|
||||||
'zlib/gzio.c',
|
|
||||||
'zlib/infback.c',
|
|
||||||
'zlib/inffast.c',
|
|
||||||
'zlib/inflate.c',
|
|
||||||
'zlib/inftrees.c',
|
|
||||||
'zlib/trees.c',
|
|
||||||
'zlib/uncompr.c',
|
|
||||||
'zlib/zutil.c',
|
|
||||||
'md5/md5.cpp',
|
|
||||||
'../../knight/shared/KeCodeAllocator.cpp'
|
|
||||||
])
|
|
||||||
SM.AutoVersion('sourcepawn/jit', binary)
|
|
||||||
SM.ExtractDebugInfo(extension, binary)
|
|
||||||
binary.SendToJob()
|
|
||||||
|
|
||||||
|
binary.sources += [
|
||||||
|
'BaseRuntime.cpp',
|
||||||
|
'engine2.cpp',
|
||||||
|
'dll_exports.cpp',
|
||||||
|
'jit_function.cpp',
|
||||||
|
'sp_vm_basecontext.cpp',
|
||||||
|
'sp_vm_engine.cpp',
|
||||||
|
'sp_vm_function.cpp',
|
||||||
|
'x86/jit_x86.cpp',
|
||||||
|
'x86/opcode_helpers.cpp',
|
||||||
|
'zlib/adler32.c',
|
||||||
|
'zlib/compress.c',
|
||||||
|
'zlib/crc32.c',
|
||||||
|
'zlib/deflate.c',
|
||||||
|
'zlib/gzio.c',
|
||||||
|
'zlib/infback.c',
|
||||||
|
'zlib/inffast.c',
|
||||||
|
'zlib/inflate.c',
|
||||||
|
'zlib/inftrees.c',
|
||||||
|
'zlib/trees.c',
|
||||||
|
'zlib/uncompr.c',
|
||||||
|
'zlib/zutil.c',
|
||||||
|
'md5/md5.cpp',
|
||||||
|
'../../knight/shared/KeCodeAllocator.cpp',
|
||||||
|
]
|
||||||
|
SM.binaries += [builder.Add(binary)]
|
||||||
|
@ -1,31 +1,35 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
||||||
import os
|
import os, sys
|
||||||
try:
|
|
||||||
import urllib.request as urllib
|
|
||||||
except ImportError:
|
|
||||||
import urllib2 as urllib
|
|
||||||
from ambuild.command import Command
|
|
||||||
from ambuild.command import ShellCommand
|
|
||||||
|
|
||||||
class IterateDebugInfoCommand(Command):
|
builder.SetBuildFolder('symbols')
|
||||||
def run(self, master, job):
|
|
||||||
pdblog = open(os.path.join(AMBuild.outputFolder, 'pdblog.txt'), 'rt')
|
UPLOAD_SCRIPT = os.path.join(builder.sourcePath, 'tools', 'buildbot', 'upload_symbols.py')
|
||||||
for debug_info in pdblog:
|
|
||||||
debug_info = os.path.join(AMBuild.outputFolder, debug_info.strip())
|
cxx_tasks = SM.binaries + SM.extensions + [SM.spcomp]
|
||||||
job.AddCommand(SymbolCommand(debug_info, symbolServer))
|
for cxx_task in cxx_tasks:
|
||||||
pdblog.close()
|
if builder.target_platform in ['windows']:
|
||||||
|
debug_entry = cxx_task.debug
|
||||||
|
else:
|
||||||
|
debug_entry = cxx_task.binary
|
||||||
|
|
||||||
|
debug_file = os.path.join(builder.buildPath, debug_entry.path)
|
||||||
|
if builder.target_platform is 'linux':
|
||||||
|
argv = ['dump_syms', debug_file, os.path.dirname(debug_file)]
|
||||||
|
elif builder.target_platform is 'mac':
|
||||||
|
argv = ['dump_syms', debug_file]
|
||||||
|
elif builder.target_platform is 'windows':
|
||||||
|
argv = ['dump_syms.exe', debug_file]
|
||||||
|
|
||||||
|
base_file = os.path.splitext(os.path.basename(debug_file))[0]
|
||||||
|
symbol_file = base_file + '.breakpad'
|
||||||
|
|
||||||
|
argv = [sys.executable, UPLOAD_SCRIPT, symbol_file] + argv
|
||||||
|
builder.AddCommand(
|
||||||
|
inputs = [UPLOAD_SCRIPT, debug_entry],
|
||||||
|
argv = argv,
|
||||||
|
outputs = [symbol_file]
|
||||||
|
)
|
||||||
|
|
||||||
class SymbolCommand(ShellCommand):
|
|
||||||
def __init__(self, debugFile, symbolServer):
|
|
||||||
self.serverResponse = None
|
|
||||||
self.symbolServer = symbolServer
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
cmdstring = "dump_syms {0} {1}".format(debugFile, os.path.dirname(debugFile))
|
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
|
||||||
cmdstring = "dump_syms {0}".format(debugFile)
|
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
|
||||||
cmdstring = "dump_syms.exe {0}".format(debugFile)
|
|
||||||
ShellCommand.__init__(self, cmdstring)
|
|
||||||
def run(self, master, job):
|
def run(self, master, job):
|
||||||
ShellCommand.run(self, master, job)
|
ShellCommand.run(self, master, job)
|
||||||
if self.stdout != None and len(self.stdout) > 0:
|
if self.stdout != None and len(self.stdout) > 0:
|
||||||
@ -37,8 +41,3 @@ class SymbolCommand(ShellCommand):
|
|||||||
runner.PrintOut(self.stderr)
|
runner.PrintOut(self.stderr)
|
||||||
if self.serverResponse != None and len(self.serverResponse) > 0:
|
if self.serverResponse != None and len(self.serverResponse) > 0:
|
||||||
runner.PrintOut(self.serverResponse)
|
runner.PrintOut(self.serverResponse)
|
||||||
|
|
||||||
if 'BREAKPAD_SYMBOL_SERVER' in os.environ:
|
|
||||||
symbolServer = os.environ['BREAKPAD_SYMBOL_SERVER']
|
|
||||||
job = AMBuild.AddJob('breakpad-symbols')
|
|
||||||
job.AddCommand(IterateDebugInfoCommand())
|
|
||||||
|
@ -1,277 +1,442 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os
|
||||||
import shutil
|
|
||||||
import ambuild.osutil as osutil
|
|
||||||
from ambuild.command import Command
|
|
||||||
|
|
||||||
job = AMBuild.AddJob('package')
|
builder.SetBuildFolder('package')
|
||||||
|
|
||||||
class DestroyPath(Command):
|
folder_list = [
|
||||||
def __init__(self, folder):
|
'addons/sourcemod',
|
||||||
Command.__init__(self)
|
'addons/sourcemod/bin',
|
||||||
self.folder = folder
|
'addons/sourcemod/plugins',
|
||||||
|
'addons/sourcemod/plugins/disabled',
|
||||||
def destroy(self, path):
|
'addons/sourcemod/gamedata',
|
||||||
entries = os.listdir(path)
|
'addons/sourcemod/gamedata/core.games',
|
||||||
for entry in entries:
|
'addons/sourcemod/gamedata/sdkhooks.games',
|
||||||
newpath = os.path.join(path, entry)
|
'addons/sourcemod/gamedata/sdktools.games',
|
||||||
if os.path.isdir(newpath):
|
'addons/sourcemod/gamedata/sm-cstrike.games',
|
||||||
self.destroy(newpath)
|
'addons/sourcemod/configs',
|
||||||
os.rmdir(newpath)
|
'addons/sourcemod/configs/geoip',
|
||||||
elif os.path.isfile(newpath):
|
'addons/sourcemod/translations',
|
||||||
os.remove(newpath)
|
'addons/sourcemod/logs',
|
||||||
|
'addons/sourcemod/extensions',
|
||||||
def run(self, runner, job):
|
'addons/sourcemod/data',
|
||||||
runner.PrintOut('rm -rf {0}/*'.format(self.folder))
|
'addons/sourcemod/configs/sql-init-scripts',
|
||||||
self.destroy(self.folder)
|
'addons/sourcemod/configs/sql-init-scripts/mysql',
|
||||||
|
'addons/sourcemod/configs/sql-init-scripts/sqlite',
|
||||||
class CreateFolders(Command):
|
'addons/sourcemod/scripting',
|
||||||
def __init__(self, folders):
|
'addons/sourcemod/scripting/include',
|
||||||
Command.__init__(self)
|
'addons/sourcemod/scripting/admin-flatfile',
|
||||||
self.folders = folders
|
'addons/sourcemod/scripting/adminmenu',
|
||||||
|
'addons/sourcemod/scripting/testsuite',
|
||||||
def run(self, runner, job):
|
'addons/sourcemod/scripting/basecommands',
|
||||||
for folder in self.folders:
|
'addons/sourcemod/scripting/basecomm',
|
||||||
path = os.path.join(*folder)
|
'addons/sourcemod/scripting/funvotes',
|
||||||
runner.PrintOut('mkdir {0}'.format(path))
|
'addons/sourcemod/scripting/basevotes',
|
||||||
os.makedirs(path)
|
'addons/sourcemod/scripting/basebans',
|
||||||
|
'addons/sourcemod/scripting/funcommands',
|
||||||
#Shallow folder copy
|
'addons/sourcemod/scripting/playercommands',
|
||||||
class CopyFolder(Command):
|
'addons/metamod',
|
||||||
def __init__(self, fromList, toList, excludes = []):
|
'cfg/sourcemod',
|
||||||
Command.__init__(self)
|
|
||||||
self.fromPath = os.path.join(AMBuild.sourceFolder, *fromList)
|
|
||||||
self.toPath = os.path.join(*toList)
|
|
||||||
self.excludes = excludes
|
|
||||||
|
|
||||||
def run(self, runner, job):
|
|
||||||
entries = os.listdir(self.fromPath)
|
|
||||||
for entry in entries:
|
|
||||||
if entry in self.excludes:
|
|
||||||
continue
|
|
||||||
path = os.path.join(self.fromPath, entry)
|
|
||||||
if not os.path.isfile(path):
|
|
||||||
continue
|
|
||||||
runner.PrintOut('copy {0} to {1}'.format(path, self.toPath))
|
|
||||||
shutil.copy(path, self.toPath)
|
|
||||||
|
|
||||||
#Single file copy
|
|
||||||
class CopyFile(Command):
|
|
||||||
def __init__(self, fromFile, toPath):
|
|
||||||
Command.__init__(self)
|
|
||||||
self.fromFile = fromFile
|
|
||||||
self.toPath = toPath
|
|
||||||
|
|
||||||
def run(self, runner, job):
|
|
||||||
runner.PrintOut('copy {0} to {1}'.format(self.fromFile, self.toPath))
|
|
||||||
shutil.copy(self.fromFile, self.toPath)
|
|
||||||
|
|
||||||
|
|
||||||
folders = [['addons', 'sourcemod', 'bin'],
|
|
||||||
['addons', 'sourcemod', 'plugins', 'disabled'],
|
|
||||||
['addons', 'sourcemod', 'gamedata'],
|
|
||||||
['addons', 'sourcemod', 'gamedata', 'core.games'],
|
|
||||||
['addons', 'sourcemod', 'gamedata', 'sdkhooks.games'],
|
|
||||||
['addons', 'sourcemod', 'gamedata', 'sdktools.games'],
|
|
||||||
['addons', 'sourcemod', 'gamedata', 'sm-cstrike.games'],
|
|
||||||
['addons', 'sourcemod', 'configs', 'geoip'],
|
|
||||||
['addons', 'sourcemod', 'translations'],
|
|
||||||
['addons', 'sourcemod', 'logs'],
|
|
||||||
['addons', 'sourcemod', 'extensions'],
|
|
||||||
['addons', 'sourcemod', 'data'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'include'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'admin-flatfile'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'adminmenu'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'testsuite'],
|
|
||||||
['cfg', 'sourcemod'],
|
|
||||||
['addons', 'sourcemod', 'configs', 'sql-init-scripts'],
|
|
||||||
['addons', 'sourcemod', 'configs', 'sql-init-scripts', 'mysql'],
|
|
||||||
['addons', 'sourcemod', 'configs', 'sql-init-scripts', 'sqlite'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'basecommands'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'basecomm'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'funvotes'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'basevotes'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'basebans'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'funcommands'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'playercommands'],
|
|
||||||
['addons', 'metamod'],
|
|
||||||
]
|
|
||||||
|
|
||||||
#Setup
|
|
||||||
job.AddCommand(DestroyPath(os.path.join(AMBuild.outputFolder, 'package')))
|
|
||||||
job.AddCommand(CreateFolders(folders))
|
|
||||||
|
|
||||||
#Copy Folders
|
|
||||||
job.AddCommand(CopyFolder(['configs'], ['addons', 'sourcemod', 'configs']))
|
|
||||||
job.AddCommand(CopyFolder(['configs', 'geoip'], ['addons', 'sourcemod', 'configs', 'geoip']))
|
|
||||||
job.AddCommand(CopyFolder(['configs', 'cfg'], ['cfg', 'sourcemod']))
|
|
||||||
job.AddCommand(CopyFolder(['configs', 'metamod'], ['addons', 'metamod']))
|
|
||||||
job.AddCommand(CopyFolder(['configs', 'sql-init-scripts'],
|
|
||||||
['addons', 'sourcemod', 'configs', 'sql-init-scripts']))
|
|
||||||
job.AddCommand(CopyFolder(['configs', 'sql-init-scripts', 'mysql'],
|
|
||||||
['addons', 'sourcemod', 'configs', 'sql-init-scripts', 'mysql']))
|
|
||||||
job.AddCommand(CopyFolder(['configs', 'sql-init-scripts', 'sqlite'],
|
|
||||||
['addons', 'sourcemod', 'configs', 'sql-init-scripts', 'sqlite']))
|
|
||||||
job.AddCommand(CopyFolder(['gamedata'], ['addons', 'sourcemod', 'gamedata']))
|
|
||||||
job.AddCommand(CopyFolder(['gamedata', 'sdkhooks.games'],
|
|
||||||
['addons', 'sourcemod', 'gamedata', 'sdkhooks.games']))
|
|
||||||
job.AddCommand(CopyFolder(['gamedata', 'sdktools.games'],
|
|
||||||
['addons', 'sourcemod', 'gamedata', 'sdktools.games']))
|
|
||||||
job.AddCommand(CopyFolder(['gamedata', 'core.games'],
|
|
||||||
['addons', 'sourcemod', 'gamedata', 'core.games']))
|
|
||||||
job.AddCommand(CopyFolder(['gamedata', 'sm-cstrike.games'],
|
|
||||||
['addons', 'sourcemod', 'gamedata', 'sm-cstrike.games']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins'], ['addons', 'sourcemod', 'scripting'], ['AMBuilder']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'include'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'include']))
|
|
||||||
job.AddCommand(CopyFolder(['translations'], ['addons', 'sourcemod', 'translations']))
|
|
||||||
job.AddCommand(CopyFolder(['public', 'licenses'], ['addons', 'sourcemod']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'admin-flatfile'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'admin-flatfile']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'adminmenu'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'adminmenu']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'testsuite'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'testsuite']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'basecommands'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'basecommands']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'basecomm'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'basecomm']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'funvotes'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'funvotes']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'basevotes'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'basevotes']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'basebans'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'basebans']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'funcommands'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'funcommands']))
|
|
||||||
job.AddCommand(CopyFolder(['plugins', 'playercommands'],
|
|
||||||
['addons', 'sourcemod', 'scripting', 'playercommands']))
|
|
||||||
|
|
||||||
defPlugins = [
|
|
||||||
'admin-flatfile',
|
|
||||||
'adminhelp',
|
|
||||||
'antiflood',
|
|
||||||
'basecommands',
|
|
||||||
'reservedslots',
|
|
||||||
'basetriggers',
|
|
||||||
'nextmap',
|
|
||||||
'basechat',
|
|
||||||
'funcommands',
|
|
||||||
'basevotes',
|
|
||||||
'funvotes',
|
|
||||||
'basebans',
|
|
||||||
'basecomm',
|
|
||||||
'adminmenu',
|
|
||||||
'playercommands',
|
|
||||||
'clientprefs',
|
|
||||||
'sounds'
|
|
||||||
]
|
]
|
||||||
|
|
||||||
disPlugins = [
|
# Create the distribution folder hierarchy.
|
||||||
'admin-sql-prefetch',
|
folder_map = {}
|
||||||
'admin-sql-threaded',
|
for folder in folder_list:
|
||||||
'sql-admin-manager',
|
norm_folder = os.path.normpath(folder)
|
||||||
'mapchooser',
|
folder_map[folder] = builder.AddFolder(norm_folder)
|
||||||
'randomcycle',
|
|
||||||
'rockthevote',
|
|
||||||
'nominations'
|
|
||||||
]
|
|
||||||
|
|
||||||
commands = []
|
# Copy binaries.
|
||||||
for plugin in defPlugins:
|
for cxx_task in SM.binaries:
|
||||||
commands.append(CopyFile(os.path.join('..', 'plugins', plugin + '.smx'),
|
builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/bin'])
|
||||||
os.path.join('addons', 'sourcemod', 'plugins')))
|
for cxx_task in SM.extensions:
|
||||||
|
builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/extensions'])
|
||||||
|
builder.AddCopy(SM.spcomp.binary, folder_map['addons/sourcemod/scripting'])
|
||||||
|
|
||||||
for plugin in disPlugins:
|
# Copy version_auto.inc.
|
||||||
commands.append(CopyFile(os.path.join('..', 'plugins', plugin + '.smx'),
|
for header in SM.generated_headers:
|
||||||
os.path.join('addons', 'sourcemod', 'plugins', 'disabled')))
|
if 'version_auto.inc' in header.path:
|
||||||
job.AddCommandGroup(commands)
|
builder.AddCopy(header, folder_map['addons/sourcemod/scripting/include'])
|
||||||
|
|
||||||
job.AddCommand(CopyFile(os.path.join('..', 'includes', 'version_auto.inc'),
|
# Export PDB files. We write to a file in the build folder which is pretty
|
||||||
os.path.join('addons', 'sourcemod', 'scripting', 'include')))
|
# verboten, but it's okay if it's in the root since AMBuild will never try
|
||||||
|
# to rmdir the root.
|
||||||
|
full_binary_list = SM.binaries + SM.extensions + [SM.spcomp]
|
||||||
|
with open(os.path.join(builder.buildPath, 'pdblog.txt'), 'w') as fp:
|
||||||
|
for task in full_binary_list:
|
||||||
|
fp.write(task.debug.path + '\n')
|
||||||
|
|
||||||
bincopies = []
|
# Copy plugins.
|
||||||
|
disabled_plugins = set([
|
||||||
|
'admin-sql-prefetch.smx',
|
||||||
|
'admin-sql-threaded.smx',
|
||||||
|
'sql-admin-manager.smx',
|
||||||
|
'mapchooser.smx',
|
||||||
|
'randomcycle.smx',
|
||||||
|
'rockthevote.smx',
|
||||||
|
'nominations.smx',
|
||||||
|
])
|
||||||
|
|
||||||
def AddNormalLibrary(name, dest):
|
for smx_file in SM.smx_files:
|
||||||
dest = os.path.join('addons', 'sourcemod', dest)
|
smx_entry = SM.smx_files[smx_file]
|
||||||
bincopies.append(CopyFile(os.path.join('..', name, name + osutil.SharedLibSuffix()), dest))
|
if smx_file in disabled_plugins:
|
||||||
|
builder.AddCopy(smx_entry, folder_map['addons/sourcemod/plugins/disabled'])
|
||||||
# Each platform's version of dump_syms needs the path in a different format.
|
else:
|
||||||
if AMBuild.target['platform'] == 'linux':
|
builder.AddCopy(smx_entry, folder_map['addons/sourcemod/plugins'])
|
||||||
debug_info.append(name + '/' + name + '.so')
|
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
|
||||||
debug_info.append(name + '/' + name + '.dylib.dSYM')
|
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
|
||||||
debug_info.append(name + '\\' + name + '.pdb')
|
|
||||||
|
|
||||||
def AddHL2Library(name, dest):
|
# Do all straight-up file copies from the source tree.
|
||||||
for i in SM.sdkInfo:
|
def CopyFiles(src, dest, files):
|
||||||
sdk = SM.sdkInfo[i]
|
if not dest:
|
||||||
if AMBuild.target['platform'] not in sdk['platform']:
|
dest = src
|
||||||
continue
|
dest_entry = folder_map[dest]
|
||||||
AddNormalLibrary(name + '.' + sdk['ext'], dest)
|
for source_file in files:
|
||||||
|
source_path = os.path.join(builder.sourcePath, src, source_file)
|
||||||
debug_info = []
|
builder.AddCopy(source_path, dest_entry)
|
||||||
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
bincopies.append(CopyFile(os.path.join('..', 'loader', 'sourcemod_mm_i486.so'),
|
|
||||||
os.path.join('addons', 'sourcemod', 'bin')))
|
|
||||||
debug_info.append('loader/sourcemod_mm_i486.so')
|
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
|
||||||
bincopies.append(CopyFile(os.path.join('..', 'loader', 'sourcemod_mm.dylib'),
|
|
||||||
os.path.join('addons', 'sourcemod', 'bin')))
|
|
||||||
debug_info.append('loader/sourcemod_mm.dylib.dSYM')
|
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
|
||||||
bincopies.append(CopyFile(os.path.join('..', 'loader', 'sourcemod_mm.dll'),
|
|
||||||
os.path.join('addons', 'sourcemod', 'bin')))
|
|
||||||
debug_info.append('loader\\sourcemod_mm.pdb')
|
|
||||||
|
|
||||||
AddHL2Library('sourcemod', 'bin')
|
|
||||||
AddNormalLibrary('sourcemod.logic', 'bin')
|
|
||||||
AddNormalLibrary('sourcepawn.jit.x86', 'bin')
|
|
||||||
AddNormalLibrary('geoip.ext', 'extensions')
|
|
||||||
if SM.hasMySql:
|
|
||||||
AddNormalLibrary('dbi.mysql.ext', 'extensions')
|
|
||||||
AddNormalLibrary('dbi.sqlite.ext', 'extensions')
|
|
||||||
|
|
||||||
if 'css' in SM.sdkInfo:
|
|
||||||
AddNormalLibrary('game.cstrike.ext.2.css', 'extensions')
|
|
||||||
|
|
||||||
if 'csgo' in SM.sdkInfo:
|
|
||||||
AddNormalLibrary('game.cstrike.ext.2.csgo', 'extensions')
|
|
||||||
|
|
||||||
if 'tf2' in SM.sdkInfo:
|
|
||||||
AddNormalLibrary('game.tf2.ext.2.tf2', 'extensions')
|
|
||||||
|
|
||||||
AddNormalLibrary('topmenus.ext', 'extensions')
|
|
||||||
AddNormalLibrary('regex.ext', 'extensions')
|
|
||||||
AddNormalLibrary('webternet.ext', 'extensions')
|
|
||||||
AddNormalLibrary('clientprefs.ext', 'extensions')
|
|
||||||
AddNormalLibrary('updater.ext', 'extensions')
|
|
||||||
AddNormalLibrary('bintools.ext', 'extensions')
|
|
||||||
AddHL2Library('sdkhooks.ext', 'extensions')
|
|
||||||
AddHL2Library('sdktools.ext', 'extensions')
|
|
||||||
|
|
||||||
bincopies.append(CopyFile(os.path.join('..', 'spcomp', 'spcomp' + osutil.ExecutableSuffix()),
|
|
||||||
os.path.join('addons', 'sourcemod', 'scripting')))
|
|
||||||
|
|
||||||
# Each platform's version of dump_syms needs the path in a different format.
|
|
||||||
if AMBuild.target['platform'] == 'linux':
|
|
||||||
debug_info.append('spcomp' + '/' + 'spcomp')
|
|
||||||
elif AMBuild.target['platform'] == 'darwin':
|
|
||||||
debug_info.append('spcomp' + '/' + 'spcomp' + '.dSYM')
|
|
||||||
elif AMBuild.target['platform'] == 'windows':
|
|
||||||
debug_info.append('spcomp' + '\\' + 'spcomp' + '.pdb')
|
|
||||||
|
|
||||||
job.AddCommandGroup(bincopies)
|
|
||||||
|
|
||||||
if AMBuild.target['platform'] == 'windows':
|
|
||||||
job.AddCommand(CopyFile(
|
|
||||||
os.path.join(AMBuild.sourceFolder, 'sourcepawn', 'batchtool', 'compile.exe'),
|
|
||||||
os.path.join('addons', 'sourcemod', 'scripting')))
|
|
||||||
|
|
||||||
pdblog = open(os.path.join(AMBuild.outputFolder, 'pdblog.txt'), 'wt')
|
|
||||||
for pdb in debug_info:
|
|
||||||
pdblog.write(pdb + '\n')
|
|
||||||
pdblog.close()
|
|
||||||
|
|
||||||
|
CopyFiles('configs', 'addons/sourcemod/configs',
|
||||||
|
[ 'admin_groups.cfg',
|
||||||
|
'admin_levels.cfg',
|
||||||
|
'admin_overrides.cfg',
|
||||||
|
'adminmenu_cfgs.txt',
|
||||||
|
'adminmenu_custom.txt',
|
||||||
|
'adminmenu_grouping.txt',
|
||||||
|
'adminmenu_sorting.txt',
|
||||||
|
'admins.cfg',
|
||||||
|
'admins_simple.ini',
|
||||||
|
'core.cfg',
|
||||||
|
'databases.cfg',
|
||||||
|
'languages.cfg',
|
||||||
|
'maplists.cfg',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('configs/geoip', 'addons/sourcemod/configs/geoip', ['GeoIP.dat'])
|
||||||
|
CopyFiles('configs/cfg', 'cfg/sourcemod',
|
||||||
|
[ 'sm_warmode_off.cfg',
|
||||||
|
'sm_warmode_on.cfg',
|
||||||
|
'sourcemod.cfg',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('configs/metamod', 'addons/metamod', ['sourcemod.vdf'])
|
||||||
|
CopyFiles('configs/sql-init-scripts/mysql', 'addons/sourcemod/configs/sql-init-scripts/mysql',
|
||||||
|
[ 'clientprefs-mysql.sql',
|
||||||
|
'create_admins.sql',
|
||||||
|
'update_admins_r1409.sql',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('configs/sql-init-scripts/sqlite', 'addons/sourcemod/configs/sql-init-scripts/sqlite',
|
||||||
|
[ 'admins-sqlite.sq3',
|
||||||
|
'clientprefs-sqlite.sq3',
|
||||||
|
'clientprefs-sqlite.sql',
|
||||||
|
'create_admins.sql',
|
||||||
|
'update_admins-r1409.sql',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('gamedata', 'addons/sourcemod/gamedata', ['sm-tf2.games.txt'])
|
||||||
|
CopyFiles('gamedata/sdkhooks.games', 'addons/sourcemod/gamedata/sdkhooks.games',
|
||||||
|
[ 'common.games.txt',
|
||||||
|
'engine.csgo.txt',
|
||||||
|
'engine.darkm.txt',
|
||||||
|
'engine.ep2v.txt',
|
||||||
|
'engine.l4d.txt',
|
||||||
|
'game.ag2.txt',
|
||||||
|
'game.alienswarm.txt',
|
||||||
|
'game.aoc.txt',
|
||||||
|
'game.cspromod.txt',
|
||||||
|
'game.cstrike.txt',
|
||||||
|
'game.dinodday.txt',
|
||||||
|
'game.empires.txt',
|
||||||
|
'game.ff.txt',
|
||||||
|
'game.fof.txt',
|
||||||
|
'game.garrysmod.txt',
|
||||||
|
'game.gesource.txt',
|
||||||
|
'game.hidden.txt',
|
||||||
|
'game.hl2ctf.txt',
|
||||||
|
'game.insurgency.txt',
|
||||||
|
'game.l4d2.txt',
|
||||||
|
'game.neotokyo.txt',
|
||||||
|
'game.nmrih.txt',
|
||||||
|
'game.nucleardawn.txt',
|
||||||
|
'game.pvkii.txt',
|
||||||
|
'game.sgtls.txt',
|
||||||
|
'game.sourceforts.txt',
|
||||||
|
'game.synergy.txt',
|
||||||
|
'game.zm.txt',
|
||||||
|
'game.zpanic.txt',
|
||||||
|
'master.games.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('gamedata/sdktools.games', 'addons/sourcemod/gamedata/sdktools.games',
|
||||||
|
[ 'common.games.txt',
|
||||||
|
'engine.bgt.txt',
|
||||||
|
'engine.csgo.txt',
|
||||||
|
'engine.css.txt',
|
||||||
|
'engine.darkm.txt',
|
||||||
|
'engine.ep1.txt',
|
||||||
|
'engine.ep2.txt',
|
||||||
|
'engine.ep2valve.txt',
|
||||||
|
'engine.eye.txt',
|
||||||
|
'engine.l4d.txt',
|
||||||
|
'engine.l4d2.txt',
|
||||||
|
'engine.swarm.txt',
|
||||||
|
'game.ag2.txt',
|
||||||
|
'game.alienswarm.txt',
|
||||||
|
'game.aoc.txt',
|
||||||
|
'game.bg2.txt',
|
||||||
|
'game.cspromod.txt',
|
||||||
|
'game.cstrike.txt',
|
||||||
|
'game.dinodday.txt',
|
||||||
|
'game.dod.txt',
|
||||||
|
'game.dystopia.txt',
|
||||||
|
'game.empires.txt',
|
||||||
|
'game.esmod.txt',
|
||||||
|
'game.fas.txt',
|
||||||
|
'game.ff.txt',
|
||||||
|
'game.fof.txt',
|
||||||
|
'game.garrysmod.txt',
|
||||||
|
'game.gesource.txt',
|
||||||
|
'game.hidden.txt',
|
||||||
|
'game.hl2ctf.txt',
|
||||||
|
'game.hl2mp.txt',
|
||||||
|
'game.insurgency.txt',
|
||||||
|
'game.ios.txt',
|
||||||
|
'game.left4dead2.txt',
|
||||||
|
'game.neotokyo.txt',
|
||||||
|
'game.nmrih.txt',
|
||||||
|
'game.nucleardawn.txt',
|
||||||
|
'game.obsidian.txt',
|
||||||
|
'game.pvkii.txt',
|
||||||
|
'game.rnlbeta.txt',
|
||||||
|
'game.ship.txt',
|
||||||
|
'game.sourceforts.txt',
|
||||||
|
'game.synergy.txt',
|
||||||
|
'game.tf.txt',
|
||||||
|
'game.zm.txt',
|
||||||
|
'game.zpanic.txt',
|
||||||
|
'master.games.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('gamedata/core.games', 'addons/sourcemod/gamedata/core.games',
|
||||||
|
[ 'blacklist.plugins.txt',
|
||||||
|
'common.games.txt',
|
||||||
|
'engine.bgt.txt',
|
||||||
|
'engine.csgo.txt',
|
||||||
|
'engine.css.txt',
|
||||||
|
'engine.darkm.txt',
|
||||||
|
'engine.ep1.txt',
|
||||||
|
'engine.ep2.txt',
|
||||||
|
'engine.ep2valve.txt',
|
||||||
|
'engine.eye.txt',
|
||||||
|
'engine.l4d.txt',
|
||||||
|
'engine.l4d2.txt',
|
||||||
|
'engine.swarm.txt',
|
||||||
|
'master.games.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('gamedata/sm-cstrike.games', 'addons/sourcemod/gamedata/sm-cstrike.games',
|
||||||
|
[ 'game.csgo.txt',
|
||||||
|
'game.css.txt',
|
||||||
|
'master.games.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins', 'addons/sourcemod/scripting',
|
||||||
|
[ 'admin-sql-prefetch.sp',
|
||||||
|
'admin-sql-threaded.sp',
|
||||||
|
'adminhelp.sp',
|
||||||
|
'adminmenu.sp',
|
||||||
|
'antiflood.sp',
|
||||||
|
'basebans.sp',
|
||||||
|
'basechat.sp',
|
||||||
|
'basecomm.sp',
|
||||||
|
'basecommands.sp',
|
||||||
|
'basetriggers.sp',
|
||||||
|
'basevotes.sp',
|
||||||
|
'clientprefs.sp',
|
||||||
|
'compile.sh',
|
||||||
|
'funcommands.sp',
|
||||||
|
'funvotes.sp',
|
||||||
|
'mapchooser.sp',
|
||||||
|
'nextmap.sp',
|
||||||
|
'nominations.sp',
|
||||||
|
'playercommands.sp',
|
||||||
|
'randomcycle.sp',
|
||||||
|
'reservedslots.sp',
|
||||||
|
'rockthevote.sp',
|
||||||
|
'sounds.sp',
|
||||||
|
'sql-admin-manager.sp',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins/include', 'addons/sourcemod/scripting/include',
|
||||||
|
[ 'admin.inc',
|
||||||
|
'adminmenu.inc',
|
||||||
|
'adt.inc',
|
||||||
|
'adt_array.inc',
|
||||||
|
'adt_stack.inc',
|
||||||
|
'adt_trie.inc',
|
||||||
|
'banning.inc',
|
||||||
|
'basecomm.inc',
|
||||||
|
'bitbuffer.inc',
|
||||||
|
'clientprefs.inc',
|
||||||
|
'clients.inc',
|
||||||
|
'commandfilters.inc',
|
||||||
|
'console.inc',
|
||||||
|
'core.inc',
|
||||||
|
'cstrike.inc',
|
||||||
|
'datapack.inc',
|
||||||
|
'dbi.inc',
|
||||||
|
'entity.inc',
|
||||||
|
'entity_prop_stocks.inc',
|
||||||
|
'events.inc',
|
||||||
|
'files.inc',
|
||||||
|
'float.inc',
|
||||||
|
'functions.inc',
|
||||||
|
'geoip.inc',
|
||||||
|
'halflife.inc',
|
||||||
|
'handles.inc',
|
||||||
|
'helpers.inc',
|
||||||
|
'keyvalues.inc',
|
||||||
|
'lang.inc',
|
||||||
|
'logging.inc',
|
||||||
|
'mapchooser.inc',
|
||||||
|
'menus.inc',
|
||||||
|
'nextmap.inc',
|
||||||
|
'profiler.inc',
|
||||||
|
'protobuf.inc',
|
||||||
|
'regex.inc',
|
||||||
|
'sdkhooks.inc',
|
||||||
|
'sdktools.inc',
|
||||||
|
'sdktools_client.inc',
|
||||||
|
'sdktools_engine.inc',
|
||||||
|
'sdktools_entinput.inc',
|
||||||
|
'sdktools_entoutput.inc',
|
||||||
|
'sdktools_functions.inc',
|
||||||
|
'sdktools_gamerules.inc',
|
||||||
|
'sdktools_hooks.inc',
|
||||||
|
'sdktools_sound.inc',
|
||||||
|
'sdktools_stocks.inc',
|
||||||
|
'sdktools_stringtables.inc',
|
||||||
|
'sdktools_tempents.inc',
|
||||||
|
'sdktools_tempents_stocks.inc',
|
||||||
|
'sdktools_trace.inc',
|
||||||
|
'sdktools_voice.inc',
|
||||||
|
'sorting.inc',
|
||||||
|
'sourcemod.inc',
|
||||||
|
'string.inc',
|
||||||
|
'textparse.inc',
|
||||||
|
'tf2.inc',
|
||||||
|
'tf2_stocks.inc',
|
||||||
|
'timers.inc',
|
||||||
|
'topmenus.inc',
|
||||||
|
'usermessages.inc',
|
||||||
|
'vector.inc',
|
||||||
|
'version.inc',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('translations', 'addons/sourcemod/translations',
|
||||||
|
[ 'adminhelp.phrases.txt',
|
||||||
|
'adminmenu.phrases.txt',
|
||||||
|
'antiflood.phrases.txt',
|
||||||
|
'basebans.phrases.txt',
|
||||||
|
'basecomm.phrases.txt',
|
||||||
|
'basetriggers.phrases.txt',
|
||||||
|
'basevotes.phrases.txt',
|
||||||
|
'clientprefs.phrases.txt',
|
||||||
|
'common.phrases.txt',
|
||||||
|
'core.phrases.txt',
|
||||||
|
'funcommands.phrases.txt',
|
||||||
|
'funvotes.phrases.txt',
|
||||||
|
'mapchooser.phrases.txt',
|
||||||
|
'nextmap.phrases.txt',
|
||||||
|
'nominations.phrases.txt',
|
||||||
|
'playercommands.phrases.txt',
|
||||||
|
'plugin.basecommands.txt',
|
||||||
|
'reservedslots.phrases.txt',
|
||||||
|
'rockthevote.phrases.txt',
|
||||||
|
'sounds.phrases.txt',
|
||||||
|
'sqladmins.phrases.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('public/licenses', 'addons/sourcemod',
|
||||||
|
[ 'GPLv2.txt',
|
||||||
|
'GPLv3.txt',
|
||||||
|
'LICENSE.txt'
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins/admin-flatfile', 'addons/sourcemod/scripting/admin-flatfile',
|
||||||
|
[ 'admin-flatfile.sp',
|
||||||
|
'admin-groups.sp',
|
||||||
|
'admin-overrides.sp',
|
||||||
|
'admin-simple.sp',
|
||||||
|
'admin-users.sp',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins/adminmenu', 'addons/sourcemod/scripting/adminmenu', ['dynamicmenu.sp'])
|
||||||
|
CopyFiles('plugins/testsuite', 'addons/sourcemod/scripting/testsuite',
|
||||||
|
[ 'benchmark.sp',
|
||||||
|
'bug4059.sp',
|
||||||
|
'callfunctest.sp',
|
||||||
|
'capstest.sp',
|
||||||
|
'clientprefstest.sp',
|
||||||
|
'cstrike-test.sp',
|
||||||
|
'entpropelements.sp',
|
||||||
|
'fakenative1.sp',
|
||||||
|
'fakenative2.sp',
|
||||||
|
'filetest.sp',
|
||||||
|
'fwdtest1.sp',
|
||||||
|
'fwdtest2.sp',
|
||||||
|
'gamerules-props.sp',
|
||||||
|
'goto_test.sp',
|
||||||
|
'outputtest.sp',
|
||||||
|
'ptstest.sp',
|
||||||
|
'sorttest.sp',
|
||||||
|
'sqltest.sp',
|
||||||
|
'sqltest.sql',
|
||||||
|
'stacktest.sp',
|
||||||
|
'structtest.sp',
|
||||||
|
'tf2-test.sp',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins/basecommands', 'addons/sourcemod/scripting/basecommands',
|
||||||
|
[ 'cancelvote.sp',
|
||||||
|
'execcfg.sp',
|
||||||
|
'kick.sp',
|
||||||
|
'map.sp',
|
||||||
|
'reloadadmins.sp',
|
||||||
|
'who.sp',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins/basecomm', 'addons/sourcemod/scripting/basecomm',
|
||||||
|
[ 'forwards.sp',
|
||||||
|
'gag.sp',
|
||||||
|
'natives.sp',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins/funvotes', 'addons/sourcemod/scripting/funvotes',
|
||||||
|
[ 'votealltalk.sp',
|
||||||
|
'voteburn.sp',
|
||||||
|
'voteff.sp',
|
||||||
|
'votegravity.sp',
|
||||||
|
'voteslay.sp',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins/basevotes', 'addons/sourcemod/scripting/basevotes',
|
||||||
|
[ 'voteban.sp',
|
||||||
|
'votekick.sp',
|
||||||
|
'votemap.sp',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins/basebans', 'addons/sourcemod/scripting/basebans', ['ban.sp'])
|
||||||
|
CopyFiles('plugins/funcommands', 'addons/sourcemod/scripting/funcommands',
|
||||||
|
[ 'beacon.sp',
|
||||||
|
'blind.sp',
|
||||||
|
'drug.sp',
|
||||||
|
'fire.sp',
|
||||||
|
'gravity.sp',
|
||||||
|
'ice.sp',
|
||||||
|
'noclip.sp',
|
||||||
|
'timebomb.sp',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
CopyFiles('plugins/playercommands', 'addons/sourcemod/scripting/playercommands',
|
||||||
|
[ 'rename.sp',
|
||||||
|
'slap.sp',
|
||||||
|
'slay.sp',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
@ -1,89 +1,34 @@
|
|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python:
|
# vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:
|
||||||
import os
|
import os, sys
|
||||||
import re
|
|
||||||
import subprocess
|
|
||||||
from ambuild.cache import Cache
|
|
||||||
import ambuild.command as command
|
|
||||||
|
|
||||||
#Quickly try to ascertain the current repository revision
|
builder.SetBuildFolder('/')
|
||||||
def GetVersion():
|
|
||||||
args = ['hg', 'parent', '-R', AMBuild.sourceFolder]
|
|
||||||
p = command.RunDirectCommand(AMBuild, args)
|
|
||||||
m = re.match('changeset:\s+(\d+):(.+)', p.stdoutText)
|
|
||||||
if m == None:
|
|
||||||
raise Exception('Could not determine repository version')
|
|
||||||
return m.groups()
|
|
||||||
|
|
||||||
def PerformReversioning():
|
includes = builder.AddFolder('includes')
|
||||||
rev, cset = GetVersion()
|
|
||||||
cacheFile = os.path.join(AMBuild.outputFolder, '.ambuild', 'hgcache')
|
|
||||||
cache = Cache(cacheFile)
|
|
||||||
if os.path.isfile(cacheFile):
|
|
||||||
cache.LoadCache()
|
|
||||||
if cache.HasVariable('cset') and cache['cset'] == cset:
|
|
||||||
return False
|
|
||||||
cache.CacheVariable('cset', cset)
|
|
||||||
|
|
||||||
productFile = open(os.path.join(AMBuild.sourceFolder, 'product.version'), 'r')
|
argv = [
|
||||||
productContents = productFile.read()
|
sys.executable,
|
||||||
productFile.close()
|
os.path.join(builder.sourcePath, 'tools', 'buildbot', 'generate_headers.py'),
|
||||||
m = re.match('(\d+)\.(\d+)\.(\d+)-?(.*)', productContents)
|
os.path.join(builder.sourcePath),
|
||||||
if m == None:
|
os.path.join(builder.buildPath, 'includes'),
|
||||||
raise Exception('Could not detremine product version')
|
]
|
||||||
major, minor, release, tag = m.groups()
|
outputs = [
|
||||||
|
os.path.join(builder.buildFolder, 'includes', 'sourcemod_version_auto.h'),
|
||||||
fullstring = "{0}.{1}.{2}".format(major, minor, release)
|
os.path.join(builder.buildFolder, 'includes', 'version_auto.inc'),
|
||||||
if tag != "":
|
]
|
||||||
fullstring += "-{0}".format(tag)
|
|
||||||
if tag == "dev":
|
|
||||||
fullstring += "+{0}".format(rev)
|
|
||||||
|
|
||||||
incFolder = os.path.join(AMBuild.outputFolder, 'includes')
|
|
||||||
if not os.path.isdir(incFolder):
|
|
||||||
os.makedirs(incFolder)
|
|
||||||
incFile = open(os.path.join(incFolder, 'sourcemod_version_auto.h'), 'w')
|
|
||||||
incFile.write("""
|
|
||||||
#ifndef _SOURCEMOD_AUTO_VERSION_INFORMATION_H_
|
|
||||||
#define _SOURCEMOD_AUTO_VERSION_INFORMATION_H_
|
|
||||||
|
|
||||||
#define SM_BUILD_TAG \"{0}\"
|
sources = [
|
||||||
#define SM_BUILD_REV \"{1}\"
|
os.path.join(builder.sourcePath, 'product.version'),
|
||||||
#define SM_BUILD_CSET \"{2}\"
|
|
||||||
#define SM_BUILD_MAJOR \"{3}\"
|
|
||||||
#define SM_BUILD_MINOR \"{4}\"
|
|
||||||
#define SM_BUILD_RELEASE \"{5}\"
|
|
||||||
|
|
||||||
#define SM_BUILD_UNIQUEID SM_BUILD_REV \":\" SM_BUILD_CSET
|
# This is a hack, but we need some way to only run this script when HG changes.
|
||||||
|
os.path.join(builder.sourcePath, '.hg', 'dirstate'),
|
||||||
#define SM_VERSION_STRING \"{6}\"
|
|
||||||
#define SM_VERSION_FILE {7},{8},{9},0
|
|
||||||
|
|
||||||
#endif /* _SOURCEMOD_AUTO_VERSION_INFORMATION_H_ */
|
|
||||||
|
|
||||||
""".format(tag, rev, cset, major, minor, release, fullstring, major, minor, release))
|
|
||||||
incFile.close()
|
|
||||||
|
|
||||||
incFile = open(os.path.join(incFolder, 'version_auto.inc'), 'w')
|
|
||||||
incFile.write("""
|
|
||||||
#if defined _auto_version_included
|
|
||||||
#endinput
|
|
||||||
#endif
|
|
||||||
#define _auto_version_included
|
|
||||||
|
|
||||||
#define SOURCEMOD_V_TAG \"{0}\"
|
|
||||||
#define SOURCEMOD_V_REV {1}
|
|
||||||
#define SOURCEMOD_V_CSET \"{2}\"
|
|
||||||
#define SOURCEMOD_V_MAJOR {3}
|
|
||||||
#define SOURCEMOD_V_MINOR {4}
|
|
||||||
#define SOURCEMOD_V_RELEASE {5}
|
|
||||||
|
|
||||||
#define SOURCEMOD_VERSION \"{6}\"
|
|
||||||
|
|
||||||
""".format(tag, rev, cset, major, minor, release, fullstring))
|
|
||||||
incFile.close()
|
|
||||||
|
|
||||||
cache.WriteCache()
|
|
||||||
|
|
||||||
PerformReversioning()
|
|
||||||
|
|
||||||
|
# The script source is a dependency, of course...
|
||||||
|
argv[1]
|
||||||
|
]
|
||||||
|
cmd_node, output_nodes = builder.AddCommand(
|
||||||
|
inputs=sources,
|
||||||
|
argv=argv,
|
||||||
|
outputs=outputs
|
||||||
|
)
|
||||||
|
|
||||||
|
rvalue = output_nodes
|
||||||
|
@ -19,51 +19,27 @@ our ($root) = getcwd();
|
|||||||
|
|
||||||
my $reconf = 0;
|
my $reconf = 0;
|
||||||
|
|
||||||
#Create output folder if it doesn't exist.
|
if (!(-f 'OUTPUT/.ambuild2/graph') || !(-f 'OUTPUT/.ambuild2/vars')) {
|
||||||
if (!(-d 'OUTPUT')) {
|
|
||||||
$reconf = 1;
|
|
||||||
} else {
|
|
||||||
if (-f 'OUTPUT/sentinel') {
|
|
||||||
my @s = stat('OUTPUT/sentinel');
|
|
||||||
my $mtime = $s[9];
|
|
||||||
my @files = ('build/pushbuild.txt', 'build/AMBuildScript', 'build/product.version');
|
|
||||||
my ($i);
|
|
||||||
for ($i = 0; $i <= $#files; $i++) {
|
|
||||||
if (IsNewer($files[$i], $mtime)) {
|
|
||||||
$reconf = 1;
|
|
||||||
last;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$reconf = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($reconf) {
|
|
||||||
rmtree('OUTPUT');
|
rmtree('OUTPUT');
|
||||||
mkdir('OUTPUT') or die("Failed to create output folder: $!\n");
|
mkdir('OUTPUT') or die("Failed to create output folder: $!\n");
|
||||||
chdir('OUTPUT');
|
chdir('OUTPUT');
|
||||||
my ($result, $argn);
|
my ($result, $argn);
|
||||||
$argn = $#ARGV + 1;
|
$argn = $#ARGV + 1;
|
||||||
print "Attempting to reconfigure...\n";
|
print "Attempting to reconfigure...\n";
|
||||||
|
my $conf_args = '--enable-optimize --breakpad-dump';
|
||||||
if ($argn > 0 && $^O !~ /MSWin/) {
|
if ($argn > 0 && $^O !~ /MSWin/) {
|
||||||
$result = `CC=$ARGV[0] CXX=$ARGV[0] python3 ../build/configure.py --enable-optimize`;
|
$result = `CC=$ARGV[0] CXX=$ARGV[0] python ../build/configure.py $conf_args`;
|
||||||
} else {
|
} else {
|
||||||
if ($^O eq "linux") {
|
if ($^O =~ /MSWin/) {
|
||||||
$result = `CC=gcc-4.4 CXX=gcc-4.4 python3 ../build/configure.py --enable-optimize`;
|
$result = `C:\\Python27\\Python.exe ..\\build\\configure.py $conf_args`;
|
||||||
} elsif ($^O eq "darwin") {
|
|
||||||
$result = `CC=clang CXX=clang python3 ../build/configure.py --enable-optimize`;
|
|
||||||
} else {
|
} else {
|
||||||
$result = `C:\\Python32\\Python.exe ..\\build\\configure.py --enable-optimize`;
|
$result = `CC=clang CXX=clang python ../build/configure.py $conf_args`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print "$result\n";
|
print "$result\n";
|
||||||
if ($? != 0) {
|
if ($? != 0) {
|
||||||
die("Could not configure: $!\n");
|
die("Could not configure: $!\n");
|
||||||
}
|
}
|
||||||
open(FILE, '>sentinel');
|
|
||||||
print FILE "this is nothing.\n";
|
|
||||||
close(FILE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub IsNewer
|
sub IsNewer
|
||||||
|
87
tools/buildbot/generate_headers.py
Normal file
87
tools/buildbot/generate_headers.py
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# vim: set ts=8 sts=2 sw=2 tw=99 et:
|
||||||
|
import re
|
||||||
|
import os, sys
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
argv = sys.argv[1:]
|
||||||
|
if len(argv) < 2:
|
||||||
|
sys.stderr.write('Usage: generate_headers.py <source_path> <output_folder>\n')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
SourceFolder = os.path.abspath(os.path.normpath(argv[0]))
|
||||||
|
OutputFolder = os.path.normpath(argv[1])
|
||||||
|
|
||||||
|
def get_hg_version():
|
||||||
|
argv = ['hg', 'parent', '-R', SourceFolder]
|
||||||
|
|
||||||
|
# Python 2.6 doesn't have check_output.
|
||||||
|
if hasattr(subprocess, 'check_output'):
|
||||||
|
text = subprocess.check_output(argv)
|
||||||
|
if str != bytes:
|
||||||
|
text = str(text, 'utf-8')
|
||||||
|
else:
|
||||||
|
p = subprocess.Popen(argv, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
|
output, ignored = p.communicate()
|
||||||
|
rval = p.poll()
|
||||||
|
if rval:
|
||||||
|
raise subprocess.CalledProcessError(rval, argv)
|
||||||
|
text = output.decode('utf8')
|
||||||
|
|
||||||
|
m = re.match('changeset:\s+(\d+):(.+)', text)
|
||||||
|
if m == None:
|
||||||
|
raise Exception('Could not determine repository version')
|
||||||
|
return m.groups()
|
||||||
|
|
||||||
|
def output_version_headers():
|
||||||
|
rev, cset = get_hg_version()
|
||||||
|
|
||||||
|
with open(os.path.join(SourceFolder, 'product.version')) as fp:
|
||||||
|
contents = fp.read()
|
||||||
|
m = re.match('(\d+)\.(\d+)\.(\d+)-?(.*)', contents)
|
||||||
|
if m == None:
|
||||||
|
raise Exception('Could not detremine product version')
|
||||||
|
major, minor, release, tag = m.groups()
|
||||||
|
fullstring = "{0}.{1}.{2}".format(major, minor, release)
|
||||||
|
if tag != "":
|
||||||
|
fullstring += "-{0}".format(tag)
|
||||||
|
if tag == "dev":
|
||||||
|
fullstring += "+{0}".format(rev)
|
||||||
|
|
||||||
|
with open(os.path.join(OutputFolder, 'sourcemod_version_auto.h'), 'w') as fp:
|
||||||
|
fp.write("""
|
||||||
|
#ifndef _SOURCEMOD_AUTO_VERSION_INFORMATION_H_
|
||||||
|
#define _SOURCEMOD_AUTO_VERSION_INFORMATION_H_
|
||||||
|
|
||||||
|
#define SM_BUILD_TAG \"{0}\"
|
||||||
|
#define SM_BUILD_REV \"{1}\"
|
||||||
|
#define SM_BUILD_CSET \"{2}\"
|
||||||
|
#define SM_BUILD_MAJOR \"{3}\"
|
||||||
|
#define SM_BUILD_MINOR \"{4}\"
|
||||||
|
#define SM_BUILD_RELEASE \"{5}\"
|
||||||
|
|
||||||
|
#define SM_BUILD_UNIQUEID SM_BUILD_REV \":\" SM_BUILD_CSET
|
||||||
|
|
||||||
|
#define SM_VERSION_STRING \"{6}\"
|
||||||
|
#define SM_VERSION_FILE {7},{8},{9},0
|
||||||
|
|
||||||
|
#endif /* _SOURCEMOD_AUTO_VERSION_INFORMATION_H_ */
|
||||||
|
""".format(tag, rev, cset, major, minor, release, fullstring, major, minor, release))
|
||||||
|
|
||||||
|
with open(os.path.join(OutputFolder, 'version_auto.inc'), 'w') as fp:
|
||||||
|
fp.write("""
|
||||||
|
#if defined _auto_version_included
|
||||||
|
#endinput
|
||||||
|
#endif
|
||||||
|
#define _auto_version_included
|
||||||
|
|
||||||
|
#define SOURCEMOD_V_TAG \"{0}\"
|
||||||
|
#define SOURCEMOD_V_REV {1}
|
||||||
|
#define SOURCEMOD_V_CSET \"{2}\"
|
||||||
|
#define SOURCEMOD_V_MAJOR {3}
|
||||||
|
#define SOURCEMOD_V_MINOR {4}
|
||||||
|
#define SOURCEMOD_V_RELEASE {5}
|
||||||
|
|
||||||
|
#define SOURCEMOD_VERSION \"{6}\"
|
||||||
|
""".format(tag, rev, cset, major, minor, release, fullstring))
|
||||||
|
|
||||||
|
output_version_headers()
|
@ -10,12 +10,14 @@ require 'helpers.pm';
|
|||||||
|
|
||||||
chdir('../../../OUTPUT');
|
chdir('../../../OUTPUT');
|
||||||
|
|
||||||
if ($^O eq "linux" || $^O eq "darwin") {
|
my $argn = $#ARGV + 1;
|
||||||
system("python3 build.py 2>&1");
|
if ($argn > 0) {
|
||||||
} else {
|
$ENV{CC} = $ARGV[0];
|
||||||
system("C:\\Python31\\python.exe build.py 2>&1");
|
$ENV{CXX} = $ARGV[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
system("ambuild --no-color 2>&1");
|
||||||
|
|
||||||
if ($? != 0)
|
if ($? != 0)
|
||||||
{
|
{
|
||||||
die "Build failed: $!\n";
|
die "Build failed: $!\n";
|
||||||
|
38
tools/buildbot/upload_symbols.py
Normal file
38
tools/buildbot/upload_symbols.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# vim: ts=8 sts=2 sw=2 tw=99 et ft=python:
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
try:
|
||||||
|
import urllib.request as urllib
|
||||||
|
except ImportError:
|
||||||
|
import urllib2 as urllib
|
||||||
|
|
||||||
|
if len(sys.argv) < 3:
|
||||||
|
sys.stderr.write('Usage: <symbol-file> <dump-syms-cmd> <args...>\n')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
SYMBOL_SERVER = os.environ['BREAKPAD_SYMBOL_SERVER']
|
||||||
|
symbol_file = sys.argv[1]
|
||||||
|
cmd_argv = sys.argv[2:]
|
||||||
|
|
||||||
|
sys.stdout.write(' '.join(cmd_argv))
|
||||||
|
sys.stdout.write('\n')
|
||||||
|
|
||||||
|
p = subprocess.Popen(
|
||||||
|
args = cmd_argv,
|
||||||
|
stdout = subprocess.PIPE,
|
||||||
|
stderr = subprocess.PIPE,
|
||||||
|
shell = False
|
||||||
|
)
|
||||||
|
stdout, stderr = p.communicate()
|
||||||
|
out = stdout.decode('utf8')
|
||||||
|
err = stdout.decode('utf8')
|
||||||
|
|
||||||
|
with open(symbol_file, 'w') as fp:
|
||||||
|
fp.write(stdout)
|
||||||
|
fp.write(stderr)
|
||||||
|
|
||||||
|
request = urllib.Request(SYMBOL_SERVER, out)
|
||||||
|
request.add_header('Content-Type', 'text/plain')
|
||||||
|
server_response = urllib.urlopen(request).read().decode('utf8')
|
||||||
|
print(server_response)
|
15
versionlib/AMBuilder
Normal file
15
versionlib/AMBuilder
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# vim: sts=2 ts=8 sw=2 tw=99 et ft=python:
|
||||||
|
import os
|
||||||
|
|
||||||
|
lib = builder.compiler.StaticLibrary('version')
|
||||||
|
lib.compiler.includes += [
|
||||||
|
os.path.join(builder.sourcePath, 'public')
|
||||||
|
]
|
||||||
|
lib.compiler.defines.remove('SM_USE_VERSIONLIB')
|
||||||
|
lib.compiler.sourcedeps += SM.generated_headers
|
||||||
|
lib.sources += [
|
||||||
|
'versionlib.cpp'
|
||||||
|
]
|
||||||
|
task = builder.Add(lib)
|
||||||
|
|
||||||
|
rvalue = task.binary
|
34
versionlib/versionlib.cpp
Normal file
34
versionlib/versionlib.cpp
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/**
|
||||||
|
* vim: set ts=4 sw=4 tw=99 noet :
|
||||||
|
* =============================================================================
|
||||||
|
* SourceMod
|
||||||
|
* Copyright (C) 2004-2013 AlliedModders LLC. All rights reserved.
|
||||||
|
* =============================================================================
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it under
|
||||||
|
* the terms of the GNU General Public License, version 3.0, as published by the
|
||||||
|
* Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
* details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with
|
||||||
|
* this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* As a special exception, AlliedModders LLC gives you permission to link the
|
||||||
|
* code of this program (as well as its derivative works) to "Half-Life 2," the
|
||||||
|
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
|
||||||
|
* by the Valve Corporation. You must obey the GNU General Public License in
|
||||||
|
* all respects for all other code used. Additionally, AlliedModders LLC grants
|
||||||
|
* this exception to all derivative works. AlliedModders LLC defines further
|
||||||
|
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
|
||||||
|
* or <http://www.sourcemod.net/license.php>.
|
||||||
|
*/
|
||||||
|
#include <sourcemod_version.h>
|
||||||
|
#include <versionlib.h>
|
||||||
|
|
||||||
|
const char *SOURCEMOD_BUILD_ID = SM_BUILD_UNIQUEID;
|
||||||
|
const char *SOURCEMOD_VERSION = SM_VERSION_STRING;
|
||||||
|
const char *SOURCEMOD_BUILD_TIME = __DATE__ " " __TIME__;
|
49
versionlib/versionlib.h
Normal file
49
versionlib/versionlib.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/**
|
||||||
|
* vim: set ts=4 sw=4 tw=99 noet :
|
||||||
|
* =============================================================================
|
||||||
|
* SourceMod
|
||||||
|
* Copyright (C) 2004-2013 AlliedModders LLC. All rights reserved.
|
||||||
|
* =============================================================================
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it under
|
||||||
|
* the terms of the GNU General Public License, version 3.0, as published by the
|
||||||
|
* Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
* details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with
|
||||||
|
* this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* As a special exception, AlliedModders LLC gives you permission to link the
|
||||||
|
* code of this program (as well as its derivative works) to "Half-Life 2," the
|
||||||
|
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
|
||||||
|
* by the Valve Corporation. You must obey the GNU General Public License in
|
||||||
|
* all respects for all other code used. Additionally, AlliedModders LLC grants
|
||||||
|
* this exception to all derivative works. AlliedModders LLC defines further
|
||||||
|
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
|
||||||
|
* or <http://www.sourcemod.net/license.php>.
|
||||||
|
*/
|
||||||
|
#ifndef _INCLUDE_SOURCEMOD_VERSIONLIB_H_
|
||||||
|
#define _INCLUDE_SOURCEMOD_VERSIONLIB_H_
|
||||||
|
|
||||||
|
#if !defined(SM_USE_VERSIONLIB)
|
||||||
|
// These get defined in sourcemod_version.h since
|
||||||
|
// versionlib does not use versionlib.
|
||||||
|
# undef SOURCEMOD_BUILD_ID
|
||||||
|
# undef SOURCEMOD_VERSION
|
||||||
|
# undef SOURCEMOD_BUILD_TIME
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
# define EXTERN_C extern "C"
|
||||||
|
#else
|
||||||
|
# define EXTERN_C extern
|
||||||
|
#endif
|
||||||
|
EXTERN_C const char *SOURCEMOD_BUILD_ID;
|
||||||
|
EXTERN_C const char *SOURCEMOD_VERSION;
|
||||||
|
EXTERN_C const char *SOURCEMOD_BUILD_TIME;
|
||||||
|
|
||||||
|
#endif // _INCLUDE_SOURCEMOD_VERSIONLIB_H_
|
Loading…
Reference in New Issue
Block a user