From c9b18a3824573e503d99c6b0f14a1a7d2049b50e Mon Sep 17 00:00:00 2001 From: Mark Benvenuto Date: Wed, 24 Sep 2014 10:36:02 -0400 Subject: SERVER-15400: Create Windows Enterprise Zip File with vcredist and dependent dlls --- SConstruct | 2 ++ buildscripts/make_archive.py | 17 +++++++++++++++-- src/mongo/SConscript | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/SConstruct b/SConstruct index e398bba8712..1cb12012af6 100644 --- a/SConstruct +++ b/SConstruct @@ -668,9 +668,11 @@ extraLibPlaces = [] env['EXTRACPPPATH'] = [] env['EXTRALIBPATH'] = [] +env['EXTRABINPATH'] = [] def addExtraLibs( s ): for x in s.split(","): + env.Append( EXTRABINPATH=[ x + "/bin" ] ) env.Append( EXTRACPPPATH=[ x + "/include" ] ) env.Append( EXTRALIBPATH=[ x + "/lib" ] ) env.Append( EXTRALIBPATH=[ x + "/lib64" ] ) diff --git a/buildscripts/make_archive.py b/buildscripts/make_archive.py index 840b134e717..5df995b41e9 100755 --- a/buildscripts/make_archive.py +++ b/buildscripts/make_archive.py @@ -29,12 +29,23 @@ For a detailed usage example, see src/SConscript.client or src/mongo/SConscript. import optparse import os import sys +import shlex import shutil import zipfile from subprocess import (Popen, PIPE, STDOUT) def main(argv): - opts = parse_options(argv[1:]) + args = [] + for arg in argv[1:]: + if arg.startswith("@"): + file_name = arg[1:] + f_handle = open(file_name, "r") + args.extend(s1.strip('"') for s1 in shlex.split(f_handle.readline(), posix=False)) + f_handle.close() + else: + args.append(arg) + + opts = parse_options(args) if opts.archive_format in ('tar', 'tgz'): make_tar_archive(opts) elif opts.archive_format in ('zip'): @@ -170,7 +181,9 @@ def get_preferred_filename(input_filename, transformations): returns the substituted string ''' for match, replace in transformations: - if input_filename.startswith(match): + match_lower = match.lower() + input_filename_lower = input_filename.lower() + if input_filename_lower.startswith(match_lower): return replace + input_filename[len(match):] return input_filename diff --git a/src/mongo/SConscript b/src/mongo/SConscript index 16546f0ac39..3425dfaa82f 100644 --- a/src/mongo/SConscript +++ b/src/mongo/SConscript @@ -1321,7 +1321,7 @@ module_banner_transforms = ["--transform %s=$SERVER_DIST_BASENAME" % d for d in # within the archive (e.g. { "src/mongo/db/modules/enterprise/docs": "snmp"}) archive_addition_transforms = [] for full_dir, archive_dir in env["ARCHIVE_ADDITION_DIR_MAP"].items(): - archive_addition_transforms.append("--transform %s=$SERVER_DIST_BASENAME/%s" % + archive_addition_transforms.append("--transform \"%s=$SERVER_DIST_BASENAME/%s\"" % (full_dir, archive_dir)) env.Command( -- cgit v1.2.1