diff options
Diffstat (limited to 'o3d/installer/win/build.scons')
-rw-r--r-- | o3d/installer/win/build.scons | 246 |
1 files changed, 0 insertions, 246 deletions
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) |