From 54012523bc9004bc77ac4882b7efb9e4220a74ff Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Sun, 17 Mar 2013 02:40:04 -0500 Subject: [PATCH] Added --no-mysql option to configure script to make MySQL optional (bug 5661, r=dvander). --- AMBuildScript | 15 ++++++++++++--- configure.py | 2 ++ tools/buildbot/PackageScript | 3 ++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/AMBuildScript b/AMBuildScript index a39c9471..5a046020 100644 --- a/AMBuildScript +++ b/AMBuildScript @@ -51,12 +51,17 @@ class SM: if AMBuild.mode == 'config': #Detect compilers self.compiler.DetectAll(AMBuild) - - #Required paths + + self.hasMySql = AMBuild.options.hasMySql + AMBuild.cache.CacheVariable('hasMySql', self.hasMySql) + + #Environment variable paths to external headers envvars = { 'MMSOURCE19': 'mmsource-1.9', 'MYSQL5': 'mysql-5.0' } - #Look for Metamod:Source and MySQL directories + #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)) @@ -220,6 +225,7 @@ class SM: 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')) @@ -441,6 +447,9 @@ FileList = [ ['tools', 'buildbot', 'BreakpadSymbols'] ] +if not sm.hasMySql: + FileList.remove(['extensions', 'mysql', 'AMBuilder']) + for parts in FileList: AMBuild.Include(os.path.join(*parts), globals) diff --git a/configure.py b/configure.py index 5ae950a7..4c758b4c 100644 --- a/configure.py +++ b/configure.py @@ -7,6 +7,8 @@ run.options.add_option('--enable-debug', action='store_const', const='1', dest=' help='Enable debugging symbols') run.options.add_option('--enable-optimize', action='store_const', const='1', dest='opt', help='Enable optimization') +run.options.add_option('--no-mysql', action='store_false', default=True, dest='hasMySql', + help='Disable building MySQL extension') run.options.add_option('-s', '--sdks', default='all', dest='sdks', help='Build against specified SDKs; valid args are "all", "present", or ' 'comma-delimited list of engine names (default: %default)') diff --git a/tools/buildbot/PackageScript b/tools/buildbot/PackageScript index 95eedf6d..9f037483 100644 --- a/tools/buildbot/PackageScript +++ b/tools/buildbot/PackageScript @@ -230,7 +230,8 @@ AddHL2Library('sourcemod', 'bin') AddNormalLibrary('sourcemod.logic', 'bin') AddNormalLibrary('sourcepawn.jit.x86', 'bin') AddNormalLibrary('geoip.ext', 'extensions') -AddNormalLibrary('dbi.mysql.ext', 'extensions') +if SM.hasMySql: + AddNormalLibrary('dbi.mysql.ext', 'extensions') AddNormalLibrary('dbi.sqlite.ext', 'extensions') if 'css' in SM.sdkInfo: