# Copyright 2008, 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('env', 'env_res', 'env_test') env = env.Clone() env['LIBS'].remove('DelayImp.lib') env_res = env_res.Clone() env_test = env_test.Clone() env_res.Append( CPPPATH = [ "$TARGET_ROOT", ".", "#/..", ], RCFLAGS = [ ["/l", "0x409"], ], ) resources = env_res.RES('mini_installer.rc') env.Prepend( CPPPATH = [ '$GTEST_DIR/include', '$GTEST_DIR', '#/..', ], CCFLAGS = [ '/TP', '/GS-', # because we link with /NODEFAULTLIB ], LINKFLAGS = [ '/INCREMENTAL', '/NODEFAULTLIB', '/DEBUG', '/SUBSYSTEM:WINDOWS', '/OPT:NOWIN98', '/ENTRY:"MainEntryPoint"', '/MACHINE:X86', '/FIXED:No', '/SAFESEH:NO', '/NXCOMPAT', '/DYNAMICBASE:NO', '/PDB:${TARGETS[1]}', '/MAP:${TARGETS[2]}', ], LIBS = [ 'shlwapi.lib', ], ) env['CCFLAGS'].remove('/RTC1') components = [ "$VISUAL_STUDIO/VC/crt/src/intel/mt_lib/memset.obj", "$VISUAL_STUDIO/VC/crt/src/intel/mt_lib/P4_memset.obj", "$TARGET_ROOT/chrome_dll.lib", ] input_files = [ "mini_installer.cc", "pe_resource.cc", ] if env['PLATFORM'] == 'win32': targets = [ 'mini_installer.exe', 'mini_installer.pdb', 'mini_installer.map', ] else: targets = ['mini_installer'] exe = env.ChromeProgram(targets, components + resources + input_files) i = env.Install('$TARGET_ROOT', exe) env.Alias('chrome', i) env.AppendENVPath('PATH', r'C:\WINDOWS\system32') packed = env.Command('$TARGET_ROOT/packed_files.txt', ['$CHROME_DIR/tools/build/win/create_installer_archive.py', '$CHROME_DIR/installer/mini_installer/chrome.release'], ('$PYTHON ${SOURCES[0]}' ' --output_dir=${TARGET.dir}' ' --input_file=${SOURCES[1]}')) env.Depends(packed, '$TARGET_ROOT/setup.exe') env.ChromeVersionRC('mini_installer_exe_version.rc', 'mini_installer_exe_version.rc.version', PWD=Dir('.')) env_test.Prepend( CPPDEFINES = [ 'UNIT_TEST', ], CPPPATH = [ '$GTEST_DIR/include', '$GTEST_DIR', '#/..', ], LIBS = [ 'gtest', 'icuuc', 'common', 'base', ], ) env_test.Prepend( LINKFLAGS = [ '/INCREMENTAL', '/DEBUG', '/DELAYLOAD:"dwmapi.dll"', '/DELAYLOAD:"uxtheme.dll"', '/MACHINE:X86', '/FIXED:No', '/safeseh', '/dynamicbase', '/ignore:4199', '/nxcompat', ], LIBS = [ 'comsupp.lib', 'oleacc.lib', 'rpcrt4.lib', 'shlwapi.lib', ], ) input_files = [ '../setup/setup_constants$OBJSUFFIX', '../util/copy_tree_work_item_unittest.cc', '../util/create_dir_work_item_unittest.cc', '../util/create_reg_key_work_item_unittest.cc', '../util/delete_tree_work_item_unittest.cc', '../util/google_chrome_distribution_unittest.cc', '../util/helper_unittest.cc', '../util/run_all_unittests.cc', '../util/set_reg_value_work_item_unittest.cc', '../util/work_item_list_unittest.cc', ] libs = [ '../util/util.lib', ] exe = env_test.ChromeTestProgram('installer_unittests', input_files + libs) i = env_test.Install('$TARGET_ROOT', exe) env.Alias('chrome', i)