# Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. Import('env') env = env.Clone() env.ApplySConscript([ '$BASE_DIR/using_base.scons', '$BSPATCH_DIR/using_bspatch.scons', '$ICU38_DIR/using_icu38.scons', '$LZMA_SDK_DIR/using_lzma_sdk.scons', ]) if env.Bit('windows'): env_res = env.Clone() env_res.Append( CPPPATH = [ ".", "$CHROME_SRC_DIR", "$CHROME_DIR/installer/util", ], RCFLAGS = [ ["/l", "0x409"], ], ) resources = env_res.RES('setup.rc') # TODO(sgk): implicit dependency should be picked up automatically env_res.Depends(resources, '$CHROME_DIR/installer/util/installer_util_strings.rc') env.Prepend( CPPPATH = [ '../util', '.', '$CHROME_SRC_DIR', ], LIBS = [ 'common', 'util', ], ) if env.Bit('windows'): env.Prepend( LINKFLAGS = [ '/INCREMENTAL', '/DEBUG', '/DELAYLOAD:"dwmapi.dll"', '/DELAYLOAD:"uxtheme.dll"', '/OPT:NOWIN98', '/SUBSYSTEM:WINDOWS', '/MACHINE:X86', '/FIXED:No', '/safeseh', '/dynamicbase', '/ignore:4199', '/nxcompat', '/PDB:${TARGETS[1]}', ], LIBS = [ 'msi', ], ) input_files = ChromeFileList([ # TODO(sgk): violate standard indentation so we don't have to # reindent too much when we remove the explicit MSVSFilter() calls # in favor of generating the hierarchy to reflect the file system. MSVSFilter('resources', [ 'setup.ico', 'setup.rc', 'setup_exe_version.rc.version', 'setup_resource.h', ]), 'install.cc', 'main.cc', 'setup.cc', 'setup.h', 'setup_constants.cc', 'setup_constants.h', 'uninstall.cc', 'uninstall.h', ]) # TODO(port): if env.Bit('windows'): env.ChromeProgram('setup', resources + input_files[1:]) p = env.ChromeMSVSProject('setup.vcproj', dest=('$CHROME_SRC_DIR/chrome/' + 'installer/setup/setup.vcproj'), guid='{21C76E6E-8B38-44D6-8148-B589C13B9554}', keyword='Win32Proj', dependencies = [ '$BASE_DIR/build/base.vcproj', '$CHROME_DIR/common/common.vcproj', '$ICU38_DIR/build/icu.vcproj', '$LZMA_SDK_DIR/7z_C.vcproj', '$BSPATCH_DIR/bspatch.vcproj', '$CHROME_DIR/installer/util/util.vcproj', ], # TODO(sgk): when we can intuit the hierarchy # from the built targets. #buildtargets=TODO, files=input_files, relative_path_prefix='./', tools=[ 'Version', 'VCCLCompilerTool', 'VCResourceCompilerTool', 'VCLinkerTool', 'VCManifestTool', ], ConfigurationType='1') p.AddToolFile('$CHROME_DIR/tools/build/win/version.rules') p.AddConfig('Debug|Win32', InheritedPropertySheets=[ './setup_debug.vsprops', '$(SolutionDir)installer/util/using_util.vsprops', ]) p.AddConfig('Release|Win32', InheritedPropertySheets=[ './setup_release.vsprops', '$(SolutionDir)installer/util/using_util.vsprops', ]) # TODO(port): if env.Bit('windows'): exe_version_rc = env.ChromeVersionRC('setup_exe_version.rc', 'setup_exe_version.rc.version', PWD = env.Dir('.')) # TODO(sgk): implicit dependency should be picked up automatically env_res.Depends(resources, exe_version_rc)