blob: 104f4a4d9d8dba21e8aa7a87cbcf01293df575a7 [file] [log] [blame]
# 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",
]
exe = env.ChromeProgram('mini_installer',
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/helper_unittest.cc',
'../util/install_util_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)