| Index: goopdate/build.scons
|
| diff --git a/goopdate/build.scons b/goopdate/build.scons
|
| deleted file mode 100644
|
| index 33f2d8f9074a9dcdaf479d3fb2e4273a4608c091..0000000000000000000000000000000000000000
|
| --- a/goopdate/build.scons
|
| +++ /dev/null
|
| @@ -1,453 +0,0 @@
|
| -#!/usr/bin/python2.4
|
| -#
|
| -# Copyright 2009-2010 Google Inc.
|
| -#
|
| -# Licensed under the Apache License, Version 2.0 (the "License");
|
| -# you may not use this file except in compliance with the License.
|
| -# You may obtain a copy of the License at
|
| -#
|
| -# http://www.apache.org/licenses/LICENSE-2.0
|
| -#
|
| -# Unless required by applicable law or agreed to in writing, software
|
| -# distributed under the License is distributed on an "AS IS" BASIS,
|
| -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -# See the License for the specific language governing permissions and
|
| -# limitations under the License.
|
| -# ========================================================================
|
| -
|
| -
|
| -import omaha_version_utils
|
| -
|
| -Import('env')
|
| -
|
| -def BuildCOMForwarder(cmd_line_switch,
|
| - signed_exe_name):
|
| - com_forwarder_env = env.Clone()
|
| -
|
| - com_forwarder_env.FilterOut(CCFLAGS=['/GL', '/RTC1', '/GS'])
|
| - com_forwarder_env.FilterOut(LINKFLAGS=['/LTCG'])
|
| -
|
| - com_forwarder_env.Append(
|
| - CCFLAGS=[
|
| - '/GS-',
|
| - '/Zl',
|
| - ],
|
| - CPPDEFINES = [
|
| - 'CMD_LINE_SWITCH=_T(\\"%s\\")' % cmd_line_switch,
|
| - ],
|
| - LINKFLAGS=[
|
| - '/ENTRY:WinMainCRTStartup',
|
| - ],
|
| - LIBS=[
|
| - 'libcmt.lib',
|
| - 'shlwapi.lib',
|
| - ],
|
| - )
|
| - # The resource file used is the same as the one for GoogleUpdate.exe.
|
| - # The version resource used is the same as the one for goopdate.dll.
|
| - com_forwarder_inputs = [
|
| - com_forwarder_env.ComponentObject('%s.obj' % signed_exe_name,
|
| - 'com_forwarder.cc'),
|
| - com_forwarder_env.RES('%s.res' % signed_exe_name,
|
| - '../google_update/resource.rc'),
|
| - '$OBJ_ROOT/goopdate/goopdate_version.res',
|
| - ]
|
| -
|
| - unsigned_broker = com_forwarder_env.ComponentProgram(
|
| - prog_name='%s_unsigned' % signed_exe_name,
|
| - source=com_forwarder_inputs,
|
| - )
|
| - signed_broker = com_forwarder_env.SignedBinary(
|
| - target='%s.exe' % signed_exe_name,
|
| - source=unsigned_broker,
|
| - )
|
| - env.Replicate('$STAGING_DIR', signed_broker)
|
| -
|
| -
|
| -# Build the broker forwarder and legacy on-demand.
|
| -BuildCOMForwarder('/broker', 'GoogleUpdateBroker')
|
| -BuildCOMForwarder('/ondemand', 'GoogleUpdateOnDemand')
|
| -
|
| -#
|
| -# Build COM libraries and headers.
|
| -#
|
| -midl_env = env.Clone()
|
| -midl_env.Tool('midl')
|
| -midl_env['MIDLFLAGS'] += [
|
| - '/Oicf', # generate optimized stubless proxy/stub code
|
| - ]
|
| -
|
| -#
|
| -# Generate omaha3_idl.idl. The output is an IDL file with a variant CLSID
|
| -# for coclass GoogleComProxyMachineClass and GoogleComProxyUserClass.
|
| -#
|
| -generated_idl = env.Command(
|
| - target='omaha3_idl.idl',
|
| - source='$MAIN_DIR/goopdate/omaha3_idl.idl',
|
| - action=('python %s/tools/generate_omaha3_idl.py --idl_template_file '
|
| - '$SOURCE --idl_output_file $TARGET' % env['MAIN_DIR'])
|
| -)
|
| -
|
| -# Compile the .idl file into .tlb, .c & .h files
|
| -midl_input = 'omaha3_idl.idl'
|
| -midl_outputs = midl_env.TypeLibrary(generated_idl)
|
| -
|
| -# Save the .idl and the produced .tlb and .h files so we can provide
|
| -# them to clients.
|
| -env.Replicate('$STAGING_DIR/idls', midl_input)
|
| -for node in midl_outputs:
|
| - if not str(node).endswith('.c'):
|
| - env.Replicate('$STAGING_DIR/idls', node)
|
| -
|
| -midl_env.ComponentLibrary(
|
| - lib_name='omaha3_idl',
|
| - source='omaha3_idl_i.c',
|
| -)
|
| -
|
| -handler_common_env = env.Clone()
|
| -handler_common_env.Append(
|
| - CPPDEFINES = [
|
| - '_ATL_FREE_THREADED',
|
| - ],
|
| - CPPPATH = [
|
| - '$OBJ_ROOT', # Needed for generated files.
|
| - ],
|
| - LIBS = [
|
| - '$LIB_DIR/base.lib',
|
| - '$LIB_DIR/goopdate_lib.lib',
|
| - ('atls.lib', 'atlsd.lib')[env.Bit('debug')],
|
| - ('libcmt.lib', 'libcmtd.lib')[env.Bit('debug')],
|
| - ('libcpmt.lib', 'libcpmtd.lib')[env.Bit('debug')],
|
| - 'psapi.lib',
|
| - 'netapi32.lib',
|
| - 'rasapi32.lib',
|
| - 'shlwapi.lib',
|
| - 'userenv.lib',
|
| - 'version.lib',
|
| - 'wtsapi32.lib',
|
| - ],
|
| -)
|
| -
|
| -def BuildGoogleUpdateHandlerDll(omaha_version_info, is_machine_handler, psname):
|
| - version_string = omaha_version_info.GetVersionString()
|
| - prefix = omaha_version_info.filename_prefix
|
| - handler_env = handler_common_env.Clone(COMPONENT_STATIC = False)
|
| -
|
| - if prefix == 'TEST_':
|
| - handler_env['OBJPREFIX'] = handler_env.subst('test/$OBJPREFIX')
|
| - elif prefix:
|
| - raise Exception('ERROR: Unrecognized prefix "%s"' % prefix)
|
| -
|
| - handler_env.Append(
|
| - CPPDEFINES = [
|
| - 'IS_MACHINE_HANDLER=%d' % is_machine_handler,
|
| - ],
|
| - LIBS = [
|
| - '$LIB_DIR/common.lib',
|
| - 'wininet.lib',
|
| - 'rpcrt4.lib',
|
| - ],
|
| - RCFLAGS = [
|
| - '/DVERSION_MAJOR=%d' % omaha_version_info.version_major,
|
| - '/DVERSION_MINOR=%d' % omaha_version_info.version_minor,
|
| - '/DVERSION_BUILD=%d' % omaha_version_info.version_build,
|
| - '/DVERSION_PATCH=%d' % omaha_version_info.version_patch,
|
| - '/DVERSION_NUMBER_STRING=\\"%s\\"' % version_string,
|
| - ],
|
| - )
|
| -
|
| - resource = handler_env.RES(target='%s%s_resource.res' % (prefix, psname),
|
| - source='google_update_ps_resource.rc')
|
| -
|
| - handler_env.Depends(
|
| - resource,
|
| - ['$MAIN_DIR/VERSION',
|
| - '$MAIN_DIR/base/generic_reg_file_dll_handler.rgs'])
|
| -
|
| - target_name = '%s%s_unsigned' % (prefix, psname)
|
| -
|
| - inputs = [
|
| - 'google_update_ps.def',
|
| - resource,
|
| - prefix + 'goopdate_version.res',
|
| - ]
|
| - inputs += handler_env.Object('google_update_ps_%s.obj' % psname,
|
| - '$OBJ_ROOT/goopdate/google_update_ps.cc')
|
| - inputs += handler_env.Object('omaha3_idl_datax_%s.obj' % psname,
|
| - '$OBJ_ROOT/goopdate/omaha3_idl_datax.c')
|
| -
|
| - unsigned_dll = handler_env.ComponentLibrary(
|
| - lib_name=target_name,
|
| - source=inputs,
|
| - )
|
| -
|
| - signed_dll = handler_env.SignedBinary(
|
| - target='%s%s.dll' % (prefix, psname),
|
| - source=unsigned_dll,
|
| - )
|
| -
|
| - env.Replicate('$STAGING_DIR', signed_dll)
|
| - env.Replicate('$STAGING_DIR', [f for f in unsigned_dll if f.suffix == '.pdb'])
|
| -
|
| -
|
| -for omaha_version_info in env['omaha_versions_info']:
|
| - BuildGoogleUpdateHandlerDll(omaha_version_info, 1, 'psmachine')
|
| - BuildGoogleUpdateHandlerDll(omaha_version_info, 0, 'psuser')
|
| -
|
| -gd_env = env.Clone()
|
| -
|
| -# TODO(omaha3): Is it okay that other libs, such as common, do not define this.
|
| -gd_env['CPPDEFINES'] += [
|
| - '_ATL_FREE_THREADED',
|
| - ]
|
| -
|
| -# Need to look in output dir to find .h files generated by midl compiler.
|
| -gd_env['CPPPATH'] += [
|
| - '$OBJ_ROOT', # Needed for generated files.
|
| - '$MAIN_DIR/third_party/breakpad/src/',
|
| - ]
|
| -
|
| -target_name = 'goopdate_lib'
|
| -
|
| -gd_inputs = [
|
| - 'app.cc',
|
| - 'app_bundle.cc',
|
| - 'app_bundle_state.cc',
|
| - 'app_bundle_state_busy.cc',
|
| - 'app_bundle_state_init.cc',
|
| - 'app_bundle_state_initialized.cc',
|
| - 'app_bundle_state_paused.cc',
|
| - 'app_bundle_state_ready.cc',
|
| - 'app_bundle_state_stopped.cc',
|
| - 'app_command.cc',
|
| - 'app_manager.cc',
|
| - 'app_state.cc',
|
| - 'app_state_error.cc',
|
| - 'app_state_init.cc',
|
| - 'app_state_checking_for_update.cc',
|
| - 'app_state_download_complete.cc',
|
| - 'app_state_downloading.cc',
|
| - 'app_state_install_complete.cc',
|
| - 'app_state_installing.cc',
|
| - 'app_state_no_update.cc',
|
| - 'app_state_ready_to_install.cc',
|
| - 'app_state_update_available.cc',
|
| - 'app_state_waiting_to_check_for_update.cc',
|
| - 'app_state_waiting_to_download.cc',
|
| - 'app_state_waiting_to_install.cc',
|
| - 'app_version.cc',
|
| - 'application_usage_data.cc',
|
| - 'code_red_check.cc',
|
| - 'crash.cc',
|
| - 'cocreate_async.cc',
|
| - 'cred_dialog.cc',
|
| - 'current_state.cc',
|
| - 'download_complete_ping_event.cc',
|
| - 'download_manager.cc',
|
| - 'google_update.cc',
|
| - 'goopdate.cc',
|
| - 'goopdate_metrics.cc',
|
| - 'install_manager.cc',
|
| - 'installer_wrapper.cc',
|
| - 'job_observer.cc',
|
| - 'model.cc',
|
| - 'model_object.cc',
|
| - 'ondemand.cc',
|
| - 'oneclick_process_launcher.cc',
|
| - 'offline_utils.cc',
|
| - 'string_formatter.cc',
|
| - 'package.cc',
|
| - 'package_cache.cc',
|
| - 'process_launcher.cc',
|
| - 'resource_manager.cc',
|
| - 'update3web.cc',
|
| - 'update_request_utils.cc',
|
| - 'update_response_utils.cc',
|
| - 'worker.cc',
|
| - 'worker_utils.cc',
|
| - 'worker_metrics.cc',
|
| - ]
|
| -if env.Bit('use_precompiled_headers'):
|
| - gd_inputs += gd_env.EnablePrecompile(target_name)
|
| -
|
| -# Compile the library.
|
| -gd_env.ComponentLibrary(target_name, gd_inputs)
|
| -
|
| -
|
| -#
|
| -# Build Goopdate DLL
|
| -#
|
| -for omaha_version_info in env['omaha_versions_info']:
|
| - prefix = omaha_version_info.filename_prefix
|
| -
|
| - temp_env = env.Clone(COMPONENT_STATIC=False)
|
| -
|
| - if prefix == 'TEST_':
|
| - temp_env['OBJPREFIX'] = temp_env.subst('test/$OBJPREFIX')
|
| - elif prefix:
|
| - raise Exception('ERROR: Unrecognized prefix "%s"' % prefix)
|
| -
|
| - # Add languages that have version resources but are not fully supported.
|
| - translated_languages = omaha_version_utils.GetShellLanguagesForVersion(
|
| - omaha_version_info.GetVersion())
|
| -
|
| - temp_env.Append(
|
| - CPPPATH = [
|
| - '$MAIN_DIR/third_party/breakpad/src/',
|
| - '$OBJ_ROOT',
|
| - ],
|
| -
|
| - # Do not add static dependencies on system import libraries. Prefer delay
|
| - # loading when possible. Only what is necessary must be loaded in the
|
| - # memory space when long-running.
|
| - LIBS = [
|
| - '$LIB_DIR/base.lib',
|
| - '$LIB_DIR/breakpad.lib',
|
| - '$LIB_DIR/client.lib',
|
| - '$LIB_DIR/common.lib',
|
| - '$LIB_DIR/core.lib',
|
| - '$LIB_DIR/google_update_recovery.lib',
|
| - '$LIB_DIR/goopdate_lib.lib',
|
| - '$LIB_DIR/logging.lib',
|
| - '$LIB_DIR/net.lib',
|
| - '$LIB_DIR/omaha3_idl.lib',
|
| - '$LIB_DIR/security.lib',
|
| - '$LIB_DIR/service.lib',
|
| - '$LIB_DIR/setup.lib',
|
| - '$LIB_DIR/statsreport.lib',
|
| - '$LIB_DIR/ui.lib',
|
| - ('atls.lib', 'atlsd.lib')[temp_env.Bit('debug')],
|
| - ('libcmt.lib', 'libcmtd.lib')[temp_env.Bit('debug')],
|
| - ('libcpmt.lib', 'libcpmtd.lib')[temp_env.Bit('debug')],
|
| - # TODO(omaha3): This must be linked in because we have UI in the DLL.
|
| - 'bits.lib',
|
| - 'comctl32.lib',
|
| - 'crypt32.lib',
|
| - 'delayimp.lib',
|
| - 'iphlpapi.lib',
|
| - 'msi.lib',
|
| - 'msimg32.lib',
|
| - 'mstask.lib',
|
| - 'netapi32.lib',
|
| - 'psapi.lib',
|
| - 'rasapi32.lib',
|
| - 'rpcns4.lib',
|
| - 'rpcrt4.lib',
|
| - 'shlwapi.lib',
|
| - 'taskschd.lib',
|
| - 'version.lib',
|
| - 'userenv.lib',
|
| - 'wininet.lib',
|
| - 'wintrust.lib',
|
| - 'ws2_32.lib',
|
| - 'wtsapi32.lib',
|
| - ],
|
| - LINKFLAGS = [
|
| - '/DELAYLOAD:oleaut32.dll',
|
| - '/DELAYLOAD:psapi.dll',
|
| - '/DELAYLOAD:rasapi32.dll',
|
| - '/DELAYLOAD:shell32.dll',
|
| - '/DELAYLOAD:shlwapi.dll',
|
| - '/DELAYLOAD:userenv.dll',
|
| - '/DELAYLOAD:version.dll',
|
| - '/DELAYLOAD:wtsapi32.dll',
|
| -
|
| - # Forces the dependency on ws2_32.lib.
|
| - '/INCLUDE:_WSAStartup@8',
|
| -
|
| - # TODO(Omaha) - Choose a rebase address which does not conflict
|
| - # with other DLLs loaded in our process. For now, we just picked
|
| - # an arbitrary address.
|
| - '/BASE:0x18000000',
|
| - ],
|
| - RCFLAGS = [
|
| - '/DVERSION_MAJOR=%d' % omaha_version_info.version_major,
|
| - '/DVERSION_MINOR=%d' % omaha_version_info.version_minor,
|
| - '/DVERSION_BUILD=%d' % omaha_version_info.version_build,
|
| - '/DVERSION_PATCH=%d' % omaha_version_info.version_patch,
|
| - '/DVERSION_NUMBER_STRING=\\"%s\\"' % (
|
| - omaha_version_info.GetVersionString()),
|
| -
|
| - # goopdate.dll is resource neutral.
|
| - '/DLANGUAGE_STRING=\\"en\\"',
|
| - ],
|
| - )
|
| -
|
| - resource_res = temp_env.RES(
|
| - target=prefix + 'goopdate.res',
|
| - source='goopdate.rc',
|
| - )
|
| -
|
| - # Force a rebuild when the .tlb changes.
|
| - temp_env.Depends(resource_res, '$OBJ_ROOT/goopdate/omaha3_idl.tlb')
|
| -
|
| - version_res = temp_env.RES(
|
| - target=prefix + 'goopdate_version.res',
|
| - source='goopdate_version.rc'
|
| - )
|
| -
|
| - # Force a rebuild when the version changes.
|
| - env.Depends(version_res, '$MAIN_DIR/VERSION')
|
| -
|
| - target_name = prefix + 'goopdate_unsigned'
|
| -
|
| - # main.cc is included here because the linker gets confused if we try to
|
| - # create a DLL without an entry point. There's probably a more accurate
|
| - # description of the problem and thus a different solution, but this worked.
|
| - inputs = [
|
| - 'goopdate.def',
|
| - 'main.cc',
|
| - resource_res,
|
| - version_res,
|
| - ]
|
| - if env.Bit('use_precompiled_headers'):
|
| - inputs += temp_env.EnablePrecompile(target_name)
|
| -
|
| - for language in translated_languages:
|
| - lang_base_name = 'goopdate_dll/generated_resources_' + language
|
| - inputs += temp_env.RES(
|
| - target='resources/%s.res' % (prefix + lang_base_name),
|
| - source='resources/%s.rc' % lang_base_name,
|
| - )
|
| -
|
| - unsigned_dll = temp_env.ComponentLibrary(
|
| - lib_name=target_name,
|
| - source=inputs,
|
| - )
|
| -
|
| - signed_dll = temp_env.SignedBinary(
|
| - target=prefix + 'goopdate.dll',
|
| - source=unsigned_dll,
|
| - )
|
| -
|
| - env.Replicate('$STAGING_DIR', signed_dll)
|
| - env.Replicate('$STAGING_DIR', [f for f in unsigned_dll if f.suffix == '.pdb'])
|
| -
|
| -
|
| -customization_test_env = env.Clone()
|
| -
|
| -customization_test_env.Append(
|
| - LIBS = [
|
| - '$LIB_DIR/common.lib',
|
| - ],
|
| -)
|
| -
|
| -customization_test_env['CPPPATH'] += [
|
| - '$OBJ_ROOT', # Needed for generated files.
|
| - ]
|
| -customization_test = customization_test_env.OmahaUnittest(
|
| - name='omaha_customization_goopdate_apis_unittest',
|
| - source=[
|
| - 'omaha_customization_goopdate_apis_unittest.cc',
|
| - 'omaha3_idl_i.obj', # Needed for LIBID_*.
|
| - ],
|
| - all_in_one=False,
|
| - COMPONENT_TEST_SIZE='small',
|
| -)
|
| -
|
| -# The test uses the DLL for its TypeLib.
|
| -customization_test_env.Depends(customization_test, '$STAGING_DIR/goopdate.dll')
|
| -
|
| -
|
| -# Build all the resource dlls.
|
| -env.BuildSConscript('resources')
|
|
|