Index: plugins/update/build.scons |
diff --git a/plugins/update/build.scons b/plugins/update/build.scons |
deleted file mode 100644 |
index a48e914217ba3649e562170607b99799c83a89e0..0000000000000000000000000000000000000000 |
--- a/plugins/update/build.scons |
+++ /dev/null |
@@ -1,286 +0,0 @@ |
-#!/usr/bin/python2.4 |
-# |
-# Copyright 2009 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('env') |
- |
-# Need to do all these modifications to the non-default env because calling |
-# EnablePrecompile on the main environment, which customization_test_env clones. |
-# causes the opt build to fail. |
-# TODO(omaha): How much of this needs to be used by all libraries that get built |
-# and how much can be moved to BuildNpGoogleUpdateDll? |
-update_env = env.Clone() |
-update_env.Append( |
- CPPDEFINES = [ |
- # TODO(omaha): ActiveX plugins are usually apartment-threaded. There's |
- # no problem with compiling at a higher threading level than required, |
- # but there is a slight performance penalty for AddRef()/Release(). At |
- # some point, it may be desirable to switch back to apartment threaded, |
- # once the unit tests are fixed. |
- # We also take a 1KiB penalty for using _ATL_FREE_THREADED =) |
- '_ATL_FREE_THREADED', |
- ], |
- CPPFLAGS = [ |
- # TODO(omaha): use PCH so we get /Wall. Need to figure out why half of |
- # the old plugin builds with PCH, and the other half of it builds |
- # without... |
- '/Wall', |
- # omaha/third_party/base/basictypes.h |
- '/wd4310', # cast truncates constant value |
- # ATL |
- '/wd4263', # member function does not override any base class virtual |
- # member function |
- '/wd4264', # no override available for virtual member function; |
- # function is hidden |
- '/wd4265', # class has virtual functions, but destructor is not virtual |
- # vector |
- '/wd4548', # expression before comma has no effect; expected expression |
- # with side-effect |
- ], |
- CPPPATH = [ |
- '$OBJ_ROOT', # Needed for generated files. |
- ], |
- LIBS = [ |
- '$LIB_DIR/base.lib', |
- '$LIB_DIR/breakpad.lib', |
- '$LIB_DIR/client.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')[env.Bit('debug')], |
- ('libcmt.lib', 'libcmtd.lib')[env.Bit('debug')], |
- ('libcpmt.lib', 'libcpmtd.lib')[env.Bit('debug')], |
- 'bits.lib', |
- 'comctl32.lib', |
- 'crypt32.lib', |
- 'iphlpapi.lib', |
- 'msi.lib', |
- 'msimg32.lib', |
- 'mstask.lib', |
- 'psapi.lib', |
- 'netapi32.lib', |
- 'rasapi32.lib', |
- 'shlwapi.lib', |
- 'taskschd.lib', |
- 'userenv.lib', |
- 'version.lib', |
- 'wintrust.lib', |
- 'wtsapi32.lib', |
- ], |
- LINKFLAGS = [ |
- '/DYNAMICBASE', # Enable ASLR. |
- '/NXCOMPAT', # Enable NX support. |
- ], |
-) |
- |
- |
-# COM stuff. |
-midl_env = env.Clone() |
-midl_env.Tool('midl') |
-# Generate optimized, stubless proxy/stub code. |
-midl_env['MIDLFLAGS'] += [ '/Oicf', ] |
- |
-# For some reason, calling TypeLibrary() twice on the same environment causes a |
-# re-link of the test executable when alternating between "hammer" and |
-# "hammer run_all_tests". |
-# To work around this, clone the original environment and call TypeLibrary once |
-# on each. Note that: |
-# 1) Cloning midl_env BEFORE TypeLibrary() is called does not solve this |
-# problem. The environment must be cloned from the original env. |
-# 2) Moving the following code down near npapi_testing_midl_env.TypeLibrary |
-# does not solve the problem either. |
-# 3) This problem does not occur if 'update_npapi_testing.lib' is passed as |
-# a source to other builders instead of as a LIB. |
-npapi_testing_midl_env = env.Clone() |
-npapi_testing_midl_env.Tool('midl') |
-# Generate optimized, stubless proxy/stub code. |
-npapi_testing_midl_env['MIDLFLAGS'] += [ '/Oicf', ] |
- |
-midl_env.TypeLibrary('activex/update_control_idl.idl') |
- |
-# Generate the GUIDs with no precompile option set, otherwise we get an error. |
-update_control_idl_guids_lib = env.ComponentStaticLibrary( |
- lib_name='update_control_idl_guids_lib', |
- source='$OBJ_ROOT/plugins/update/activex/update_control_idl_i.c', |
- use_pch_default=False, |
-) |
- |
-# Built as library to enable unit testing. |
-inputs = [ |
- 'activex/update3web_control.cc', |
- 'activex/oneclick_control.cc', |
- 'npapi/dispatch_host.cc', |
- 'npapi/npfunction_host.cc', |
- 'npapi/urlpropbag.cc', |
- 'npapi/np_update.cc', |
- 'npapi/variant_utils.cc', |
- 'config.cc', |
- 'site_lock.cc', |
- ] |
-update_lib = update_env.ComponentStaticLibrary( |
- lib_name='update', |
- source=inputs, |
-) |
- |
- |
-def BuildNpGoogleUpdateDll(omaha_version_info): |
- version_string = omaha_version_info.GetVersionString() |
- prefix = omaha_version_info.filename_prefix |
- |
- plugin_env = update_env.Clone(COMPONENT_STATIC = False) |
- |
- if prefix == 'TEST_': |
- plugin_env['OBJPREFIX'] = plugin_env.subst('test/$OBJPREFIX') |
- elif prefix: |
- raise Exception('ERROR: Unrecognized prefix "%s"' % prefix) |
- |
- plugin_env.Append( |
- LIBS = [ |
- '$LIB_DIR/common.lib', |
- '$LIB_DIR/plugin_base.lib', |
- 'wininet.lib', |
- update_control_idl_guids_lib, |
- update_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 = plugin_env.RES(target='%sresource.res' % prefix, |
- source='resource.rc') |
- plugin_env.Depends( |
- resource, |
- ['$MAIN_DIR/VERSION', |
- '$OBJ_ROOT/plugins/update/activex/update_control_idl.tlb', |
- 'oneclick.rgs']) |
- |
- target_name = '%s%s' % ( |
- prefix, |
- omaha_version_info.plugin_signed_file_info.unsigned_filename_base) |
- |
- inputs = [ |
- 'module.def', |
- 'module.cc', |
- resource, |
- ] |
- |
- unsigned_dll = plugin_env.ComponentDll( |
- lib_name=target_name, |
- source=inputs, |
- ) |
- |
- signed_dll = plugin_env.SignedBinary( |
- target='%s%s' % (prefix, |
- omaha_version_info.plugin_signed_file_info.filename), |
- 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']: |
- BuildNpGoogleUpdateDll(omaha_version_info) |
- |
- |
-# |
-# Tests |
-# |
- |
-# NPAPI unit test helper library |
-npapi_testing_midl_env.TypeLibrary('npapi/testing/dispatch_host_test_idl.idl') |
-inputs = [ |
- 'npapi/testing/dispatch_host_test_interface.cc', |
- 'npapi/testing/stubs.cc', |
- ] |
-update_test_helpers_lib = update_env.ComponentStaticLibrary( |
- lib_name='update_test_helpers', |
- source=inputs, |
-) |
- |
-npapi_test_lib_resources = update_env.RES( |
- target='npapi/testing/dispatch_host_test.res', |
- source='npapi/testing/dispatch_host_test.rc'), |
-# TODO(omaha): we should really just make a proper .rc file scanner. |
-update_env.Depends( |
- npapi_test_lib_resources, |
- '$OBJ_ROOT/plugins/update/npapi/testing/dispatch_host_test_idl.tlb') |
- |
-# TODO(omaha): Fix OmahaUnittest() so that MODE=all does not break. |
-update_env.OmahaUnittest( |
- name='update_plugin_unittest', |
- source=[ |
- 'activex/update3web_control_unittest.cc', |
- 'npapi/dispatch_host_unittest.cc', |
- 'npapi/npfunction_host_unittest.cc', |
- 'npapi/variant_utils_unittest.cc', |
- 'site_lock_unittest.cc', |
- npapi_test_lib_resources, |
- ], |
- LIBS=[ |
- '$LIB_DIR/common.lib', |
- 'wininet', |
- update_control_idl_guids_lib, |
- update_lib, |
- update_test_helpers_lib, |
- ], |
- all_in_one=False, |
- COMPONENT_TEST_SIZE='small', |
-) |
- |
- |
-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_update_apis_unittest', |
- source=[ |
- 'omaha_customization_update_apis_unittest.cc', |
- 'omaha_customization_update_unittest.cc', |
- ], |
- LIBS=[ |
- update_control_idl_guids_lib, # Needed for LIBID_*. |
- update_lib, |
- ], |
- all_in_one=False, |
- COMPONENT_TEST_SIZE='small', |
-) |
- |
-# The test uses the DLL for its TypeLib. |
-customization_test_env.Depends( |
- customization_test, |
- '$STAGING_DIR/%s' % env['omaha_versions_info'][0].update_plugin_filename) |