diff options
author | gspencer@google.com <gspencer@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-02 19:00:07 +0000 |
---|---|---|
committer | gspencer@google.com <gspencer@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-02 19:00:07 +0000 |
commit | 7937c84250348ba25af03cfdc6d8d9d0a7098128 (patch) | |
tree | 9bf54cfa70cde313d00040d252c3105a2ecfb293 /o3d/installer | |
parent | 83aec62c726e56e6c5c0499c872aab03ff031a3c (diff) | |
download | chromium_src-7937c84250348ba25af03cfdc6d8d9d0a7098128.zip chromium_src-7937c84250348ba25af03cfdc6d8d9d0a7098128.tar.gz chromium_src-7937c84250348ba25af03cfdc6d8d9d0a7098128.tar.bz2 |
This change kills the SCons build, since we have switched completely
over to GYP. It also copies the contents of DEPS_gyp to DEPS, and
removes the DEPS_gyp file.
Review URL: http://codereview.chromium.org/354011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30729 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d/installer')
-rw-r--r-- | o3d/installer/linux/build.scons | 208 | ||||
-rw-r--r-- | o3d/installer/win/build.scons | 246 |
2 files changed, 0 insertions, 454 deletions
diff --git a/o3d/installer/linux/build.scons b/o3d/installer/linux/build.scons deleted file mode 100644 index 85e08c2..0000000 --- a/o3d/installer/linux/build.scons +++ /dev/null @@ -1,208 +0,0 @@ -# Copyright 2009, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import os -import subprocess -import SCons - -Import('env') - -# Check if Debian packaging tools are installed. If so, make a .deb package. -if subprocess.Popen(["which", "dpkg-buildpackage"], - stdout=open(os.devnull, "w")).wait() == 0: - - print('Found dpkg-buildpackage in PATH; will create Debian packages.'); - - current_source_dir = os.path.join(env['SCONSTRUCT_DIR'], 'installer/linux') - - def OutputFromShellCommand(command): - process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) - return process.communicate()[0].strip() - - def _InternalBuildDebianPackage(env, src_dir, obj_dir, debian_files, - package_files, output_dir=None, force_version=None): - """Creates build rules to build a Debian package from the specified sources. - - Args: - env: SCons Environment. - src_dir: Current source path, to which the debian_files are - relative. - obj_dir: Directory to place object files in. - debian_files: Array of the Debian control file sources that should be - copied into the package source tree, e.g., changelog, control, rules, - etc. Must be relative to current source dir. - package_files: An array of 2-tuples listing the files that should be - copied into the package source tree. - The first element is the path where the file should be placed for the - .install control file to find it, relative to the generated debian - package source directory. - The second element is the file source. - output_dir: An optional directory to place the files in. If omitted, the - current output directory is used. - force_version: Optional. Forces the version of the package to start with - this version string if specified. If the last entry in the changelog - is not for a version that starts with this then a dummy entry is - generated with this version and a ~prerelease suffix (so that the - final version will compare as greater). - - Return: - A list of the targets (at least two). - """ - # Read the control file and changelog file to determine the package name, - # version, and arch that the Debian build tools will use to name the - # generated files. - control_file = None - changelog_file = None - for file in debian_files: - if os.path.basename(file) == "control": - control_file = os.path.join(src_dir, file) - elif os.path.basename(file) == "changelog": - changelog_file = os.path.join(src_dir, file) - if control_file == None: - raise Exception("Need to have a control file") - if changelog_file == None: - raise Exception("Need to have a changelog file") - source = OutputFromShellCommand( - "awk '/^Source:/ { print $2; }' " + control_file) - packages = OutputFromShellCommand( - "awk '/^Package:/ { print $2; }' " + control_file).split("\n") - version = OutputFromShellCommand( - "sed -nr '1 { s/.*\\((.*)\\).*/\\1/; p }' " + changelog_file) - arch = OutputFromShellCommand( - "awk '/^Architecture:/ { print $2; }' %s | head -n 1" % control_file) - add_dummy_changelog_entry = False - if force_version != None and not version.startswith(force_version): - print('Warning: no entry in ' + changelog_file + ' for version ' + - force_version + ' (last is ' + version +'). A dummy entry will be ' + - 'generated. Remember to add the real changelog entry before ' + - 'releasing.'); - version = force_version + '~prerelease' - add_dummy_changelog_entry = True - source_dir_name = source + "_" + version + "_" + arch - target_file_names = [ source_dir_name + ".changes" ] - for package in packages: - package_file_name = package + "_" + version + "_" + arch + ".deb" - target_file_names.append(package_file_name) - # The targets - if output_dir != None: - targets = [os.path.join(output_dir, s) for s in target_file_names] - else: - targets = target_file_names - # Path to where we will construct the debian build tree. - deb_build_tree = os.path.join(obj_dir, source_dir_name, "deb_build_tree") - # First copy the files. - for file in package_files: - env.Command(os.path.join(deb_build_tree, file[0]), file[1], - SCons.Defaults.Copy('$TARGET', '$SOURCE')) - env.Depends(targets, os.path.join(deb_build_tree, file[0])) - # Now copy the Debian metadata sources. We have to do this all at once so - # that we can remove the target directory before copying, because there - # can't be any other stale files there or else dpkg-buildpackage may use - # them and give incorrect build output. - copied_debian_files_paths = [] - for file in debian_files: - copied_debian_files_paths.append(os.path.join(deb_build_tree, "debian", - os.path.basename(file))) - copy_commands = [ - """dir=$$(dirname $TARGET) && \ - rm -Rf $$dir && \ - mkdir -p $$dir && \ - cp $SOURCES $$dir && \ - chmod -R u+w $$dir""" - ] - if add_dummy_changelog_entry: - copy_commands += [ - """debchange -c $$(dirname $TARGET)/changelog --newversion %s \ - --distribution UNRELEASED \ - 'Developer preview build. (This entry was auto-generated.)'""" % - version - ] - env.Command(copied_debian_files_paths, debian_files, copy_commands) - env.Depends(targets, copied_debian_files_paths) - # TODO(tschmelcher): Change this to sign the package for Google builds once - # we start putting out Linux releases. - # Must explicitly specify -a because otherwise cross-builds won't work. - # Must explicitly specify -D because -a disables it. - # Must explicitly specify fakeroot because old dpkg tools don't assume that. - env.Command(targets, None, - """dir=%(dir)s && \ - cd $$dir && \ - dpkg-buildpackage -b -uc -a%(arch)s -D -rfakeroot && \ - cd $$OLDPWD && \ - for file in %(targets)s; do \ - mv $$dir/../$$file $$(dirname $TARGET); \ - done""" % - {'dir':env.Dir(deb_build_tree).path, - 'arch':arch, - 'targets':" ".join(target_file_names)}) - return targets - - def BuildDebianPackage(debian_files, package_files, output_dir=None, - force_version=None): - return _InternalBuildDebianPackage(env, current_source_dir, ".", - debian_files, package_files, output_dir, force_version) - - # Build amd64 package. - BuildDebianPackage(["debian_common/changelog", - "debian_amd64/control", - "debian_amd64/google-o3d.install", - "debian_common/links", - "debian_amd64/postinst", - "debian_amd64/prerm", - "debian_amd64/rules" - ], - [("libnpo3dautoplugin.so", - '$ARTIFACTS_DIR/libnpo3dautoplugin.so'), - ("libGLEW.so.1.5", '$ARTIFACTS_DIR/libGLEW.so.1.5'), - ("libCg.so", '$ARTIFACTS_DIR/libCg.so'), - ("libCgGL.so", '$ARTIFACTS_DIR/libCgGL.so') - ], - output_dir='$ARTIFACTS_DIR', - force_version=env.get('O3D_PLUGIN_VERSION')) - - # Build i386 package. - BuildDebianPackage(["debian_common/changelog", - "debian_i386/control", - "debian_i386/google-o3d.install", - "debian_common/links", - "debian_i386/rules" - ], - [("libnpo3dautoplugin.so", - '$ARTIFACTS_DIR/libnpo3dautoplugin.so'), - ("libCg.so", '$ARTIFACTS_DIR/libCg.so'), - ("libCgGL.so", '$ARTIFACTS_DIR/libCgGL.so') - ], - output_dir='$ARTIFACTS_DIR', - force_version=env.get('O3D_PLUGIN_VERSION')) - -else: - print('dpkg-buildpackage not found in PATH; Debian packages will not be ' - 'built.'); - -# TODO(tschmelcher): Also build an RPM and a tgz. diff --git a/o3d/installer/win/build.scons b/o3d/installer/win/build.scons deleted file mode 100644 index 2ec45be..0000000 --- a/o3d/installer/win/build.scons +++ /dev/null @@ -1,246 +0,0 @@ -# Copyright 2009, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -import os -Import('env') - -INPUTS = [ - 'custom_actions.cc', -] - -CUSTOM_ACTIONS_LIBS = [ - 'advapi32', - 'dxguid', - 'msi', - 'ole32', - 'oleaut32', - 'shell32', - 'shlwapi', - 'user32', -] - -# Build the dll, provide our own set of libraries to be linked with our dll. -# It is important to have full control of this since custom actions will run -# in a 'sandbox' and can't have external dependencies. -cactions = env.ComponentLibrary('cactions', INPUTS, LIBS=CUSTOM_ACTIONS_LIBS, - COMPONENT_STATIC=False) - -# copy to artifacts -env.Replicate('$ARTIFACTS_DIR', cactions[0]) - -# Unique guid for o3d namespace generated by www.guidgen.com -o3d_namespace_guid = 'B445DBAE-F5F9-435A-9A9B-088261CDF00A' - -# Pull out version numbers. -nppversion = env.get('O3D_PLUGIN_VERSION_COMMAS') -dotnppversion = env.get('O3D_PLUGIN_VERSION') -# We don't actually want the extras version to update by itself; it should -# change only when we actually add something to the installer or change the -# d3dx9 version. This version is therefore independent of the o3d plugin and -# sdk versions. -extrasversion ='0,1,1,0' -dotextrasversion = '0.1.1.0' - -# TODO: this should be a tool!! - -# Utility function for generating GUID's in the o3d namespace. -def gen_named_guid(namespace_guid, name, version): - nbguidgen_exe = env.File('$SCONSTRUCT_DIR/nbguidgen/win/nbguidgen.exe') - guid = os.popen('%s %s %s' % - (nbguidgen_exe.abspath, namespace_guid, - '%s-%s' % (name, version))).read() - return guid - -def get_guid_generator(namespace_guid, version): - return lambda name: gen_named_guid(namespace_guid, name, version) - -# TODO: These all return the same generator if their versions match. -# Is that a problem? Do we really need more than one of them? -plugin_guid_generator = \ - get_guid_generator(o3d_namespace_guid, nppversion) -extras_guid_generator = \ - get_guid_generator(o3d_namespace_guid, extrasversion) - -google_update_reg_path = 'Software\\Google\\Update\\Clients\\' -google_update_state_reg_path = 'Software\\Google\\Update\\ClientState\\' - -# Guids and other variables for the plugin installer: -o3d_npp_product_guid = plugin_guid_generator('o3d_product') -o3d_npp_package_guid = plugin_guid_generator('o3d_package') -dx_redist_guid = plugin_guid_generator('dx_redist') -d3dx_guid = plugin_guid_generator('d3dx') - -# Changing the following values would break upgrade paths, so we hard-code the -# values instead of generating them. The commands used to generate them are -# kept, so that we can avoid creating collisions accidentally. - -# bad_old_o3d_upgrade_code = gen_named_guid(o3d_namespace_guid, -# 'magicflute_upgrade', '') -# o3d_npp_upgrade_code = gen_named_guid(o3d_namespace_guid, -# 'plugin_upgrade', '') -# o3d_extras_upgrade_code = gen_named_guid(o3d_namespace_guid, -# 'extras_upgrade', '') -bad_old_o3d_upgrade_code = 'dc819ed6-4155-3cff-b580-45626aed5848' -o3d_npp_upgrade_code = '0f098121-2876-3c23-bd4c-501220ecbb42' -o3d_extras_upgrade_code = 'c271f2f0-c7ad-3bc9-8216-211436aa2244' - -# Keep these around for historical reasons; if we ever want to bring the SDK -# back, we might want to use the same GUIDs and Google Update project for -# simplicity. -#o3d_sdk_upgrade_code = 'd6b024ab-1784-348b-80c5-96ab43799d0a' -#o3d_sdk_google_update_guid = '{00764f6f-9998-4520-9c41-94a30e36565a}' - -o3d_npp_component_guid = plugin_guid_generator( - 'o3d_npplugin_component') -o3d_iep_component_guid = plugin_guid_generator( - 'o3d_ieplugin_component') -o3d_npp_google_update_reg_component_guid = plugin_guid_generator( - 'o3d_user_google_update_reg_component') -o3d_reporter_guid = plugin_guid_generator('o3d_reporter') -o3d_driver_blacklist_guid = plugin_guid_generator( - 'o3d_driver_blacklist') -o3d_software_renderer_guid = plugin_guid_generator( - 'o3d_software_renderer') -o3d_npp_google_update_guid = '{70308795-045C-42da-8F4E-D452381A7459}' -o3d_npp_reg_key = '%s%s' % (google_update_reg_path, o3d_npp_google_update_guid) -o3d_npp_state_reg_key = '%s%s' % ( - google_update_state_reg_path, o3d_npp_google_update_guid) - -# Guids and other variables for the extras installer: -o3d_extras_d3dx_component_guid = plugin_guid_generator( - 'o3d_extras_d3dx_component') -o3d_extras_product_guid = extras_guid_generator('o3d_extras_product') -o3d_extras_package_guid = extras_guid_generator('o3d_extras_package') -o3d_get_extras_guid = gen_named_guid(o3d_namespace_guid, - 'extras_installer', '') - -o3d_extras_google_update_guid = '{34B2805D-C72C-4f81-AED5-5A22D1E092F1}' -o3d_extras_reg_key = '%s%s' % (google_update_reg_path, o3d_extras_google_update_guid) - -# Wix tool needs to be in the PATH. -# TODO: the wix tool should not need this dance! -wix_path = env.Dir('$WIX_DIR') -path = os.environ['PATH'] -path += os.pathsep + wix_path.abspath -os.environ['PATH'] = path - -# Add the wix tool to the SCons environment. -env.Tool('wix') - -# Lookup the plugin to be installed -npplugin_path = env.File('$ARTIFACTS_DIR/npo3dautoplugin.dll') -ieplugin_path = env.File('$ARTIFACTS_DIR/o3d_host.dll') -conditioner_path = env.File('$ARTIFACTS_DIR/o3dConditioner.exe') -cglib1_path = env.File('$ARTIFACTS_DIR/cg.dll') -cglib2_path = env.File('$ARTIFACTS_DIR/cgGL.dll') -cgc_path = env.File('$ARTIFACTS_DIR/cgc.exe') -docs_path = env.File('$SCONSTRUCT_DIR/installer/win/docs.url') -rep_path = env.File('$ARTIFACTS_DIR/reporter.exe') -dbl_path = env.File('$SCONSTRUCT_DIR/installer/win/driver_blacklist.txt') -get_extras_path = env.File('$ARTIFACTS_DIR/getextras.exe') -custom_actions_path = env.File('$ARTIFACTS_DIR/cactions.dll') - -# Tell wix to include the software renderer IFF it's there. -software_renderer_path = \ - env.File('$SWIFTSHADER_DIR/swiftshader_d3d9.dll').abspath -include_software_renderer = os.path.exists(software_renderer_path) - -# Path to custom actions dll. -cactions_dll_path = env.File('$ARTIFACTS_DIR/cactions.dll') - -# Pass flags to the wix compiler. -env.Append(WIXCANDLEFLAGS = [ - '-dCustomActionsPath=' + custom_actions_path.abspath, - '-dD3DXGuid=' + d3dx_guid, - '-dDBLGuid=' + o3d_driver_blacklist_guid, - '-dDBLPath=' + dbl_path.abspath, - '-dDeprecatedUpgradeCode=' + bad_old_o3d_upgrade_code, - '-dGetExtrasGuid=' + o3d_get_extras_guid, - '-dGetExtrasPath=' + get_extras_path.abspath, - '-dIEPluginPath=' + ieplugin_path.abspath, - '-dIepComponentGuid=' + o3d_iep_component_guid, - '-dIncludeSoftwareRenderer=%s' % include_software_renderer, - '-dNPPluginPath=' + npplugin_path.abspath, - '-dNppComponentGuid=' + o3d_npp_component_guid, - '-dNppGoogleUpdateRegGuid=' + o3d_npp_google_update_reg_component_guid, - '-dNppGoogleUpdateRegKey=' + o3d_npp_reg_key, - '-dNppGoogleUpdateStateRegKey=' + o3d_npp_state_reg_key, - '-dNppPackageGuid=' + o3d_npp_package_guid, - '-dNppProductGuid=' + o3d_npp_product_guid, - '-dNppUpgradeCode=' + o3d_npp_upgrade_code, - '-dNppVersion=' + dotnppversion, - '-dRepGuid=' + o3d_reporter_guid, - '-dRepPath=' + rep_path.abspath, - '-dSoftwareRendererGuid=' + o3d_software_renderer_guid, - '-dSoftwareRendererPath=' + software_renderer_path, -]) - -# Build installer -installer_msi = env.WiX('o3d.msi', ['o3d.wxs']) - -# Make sure that the plugin dll has been built before building the installer. -# Make sure that the custom action dll has been built before building the -# installer. -# Relies on reporter.exe being built prior to installer. -env.Depends(installer_msi, - [npplugin_path, ieplugin_path, cactions_dll_path, rep_path, - get_extras_path]) - -# Copy to artifacts. -env.Replicate('$ARTIFACTS_DIR', installer_msi) - - - -# Path to DirectX redistribution files. -dx_redist_path = env.Dir('$DIRECTX_REDIST_DIR') - -# Only build o3dextras if we have the dx redistributables. -if os.path.exists(dx_redist_path.abspath): - # New WiX flags for the Extras package [currently just the d3dx9 dll]. Note - # that this DOESN'T make the above flags go away; it just adds new ones or - # overwrites name clashes. So we use distinctive names so as to avoid - # surprises. The only flag from above that's used in the extras installer is - # DxRedistPath. - env.Append(WIXCANDLEFLAGS = [ - '-dDxRedistPath=' + dx_redist_path.abspath, - '-dExtrasD3DXComponentGuid=' + o3d_extras_d3dx_component_guid, - '-dExtrasProductGuid=' + o3d_extras_product_guid, - '-dExtrasUpgradeCode=' + o3d_extras_upgrade_code, - '-dExtrasPackageGuid=' + o3d_extras_package_guid, - '-dExtrasVersion=' + dotextrasversion, - '-dExtrasGoogleUpdateRegGuid=' + o3d_extras_google_update_guid, - '-dExtrasGoogleUpdateRegKey=' + o3d_extras_reg_key, - ]) - - # Build the installer - extras_msi = env.WiX('o3dextras.msi', ['o3dextras.wxs']) - - # copy to artifacts - env.Replicate('$ARTIFACTS_DIR', extras_msi) |