# 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([ '$GTEST_DIR/../using_gtest.scons', ]) # TODO(port): Don't be too fooled by the presence of all the # if env.Bit('windows') tests in this file into thinking # this is necessarily portable. They're just there to wall off the # obviously windows-specific things if env.Bit('windows'): env_res = env.Clone() env_res.Append( CPPPATH = [ "$DESTINATION_ROOT", ".", "$CHROME_SRC_DIR", ], RCFLAGS = [ ["/l", "0x409"], ], ) resources = env_res.RES('mini_installer.rc') env.Prepend( CPPPATH = [ '$CHROME_SRC_DIR', ], LIBS = [ 'chrome', ], ) if env.Bit('windows'): env.FilterOut( LIBS = ['DelayImp.lib'], CCFLAGS = ['/RTC1'], ) env.Prepend( 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', ], ) 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', [ 'mini_installer.ico', 'mini_installer.rc', 'mini_installer_exe_version.rc.version', 'mini_installer_resource.h', ]), 'chrome.release', 'mini_installer.cc', 'mini_installer.h', 'pe_resource.cc', 'pe_resource.h', ]) if env.Bit('windows'): additional_dependencies = [ "$VISUAL_STUDIO/VC/crt/src/intel/mt_lib/memset.obj", "$VISUAL_STUDIO/VC/crt/src/intel/mt_lib/P4_memset.obj", ] # TODO(port): if env.Bit('windows'): env.ChromeProgram('mini_installer', input_files + additional_dependencies + resources) env.AppendENVPath('PATH', r'C:\WINDOWS\system32') # TODO(port): if env.Bit('windows'): packed = env.Command('$DESTINATION_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, '$DESTINATION_ROOT/setup.exe') # mini_installer.rc depends on the generated packed_files.txt # TODO(sgk): implicit dependency should be picked up automatically env.Depends(resources, packed) # TODO(port): if env.Bit('windows'): exe_version_rc = env.ChromeVersionRC('mini_installer_exe_version.rc', 'mini_installer_exe_version.rc.version', PWD=Dir('.')) # TODO(sgk): implicit dependency should be picked up automatically env_res.Depends(resources, exe_version_rc) p = env.ChromeMSVSProject('mini_installer.vcproj', dest=('$CHROME_SRC_DIR/chrome/installer/' + 'mini_installer/mini_installer.vcproj'), guid='{24A5AC7C-280B-4899-9153-6BA570A081E7}', keyword='Win32Proj', dependencies = [ '$CHROME_DIR/app/locales/et.vcproj', '$CHROME_DIR/app/locales/pt-PT.vcproj', '$CHROME_DIR/app/locales/fr.vcproj', '$CHROME_DIR/app/locales/uk.vcproj', '$CHROME_DIR/installer/setup/setup.vcproj', '$CHROME_DIR/app/locales/th.vcproj', '$CHROME_DIR/app/locales/hi.vcproj', '$CHROME_DIR/app/locales/gu.vcproj', '$CHROME_DIR/app/locales/it.vcproj', '$CHROME_DIR/app/locales/pt-BR.vcproj', '$CHROME_DIR/app/locales/sr.vcproj', '$CHROME_DIR/app/locales/ko.vcproj', '$CHROME_DIR/app/locales/en-GB.vcproj', '$CHROME_DIR/app/locales/fil.vcproj', '$CHROME_DIR/app/locales/ar.vcproj', '$CHROME_DIR/app/locales/kn.vcproj', '$CHROME_DIR/app/locales/bn.vcproj', '$CHROME_DIR/app/locales/es.vcproj', '$CHROME_DIR/app/locales/bg.vcproj', '$CHROME_DIR/app/locales/nl.vcproj', '$CHROME_DIR/app/locales/fi.vcproj', '$CHROME_DIR/app/locales/tr.vcproj', '$CHROME_DIR/app/locales/ta.vcproj', '$CHROME_DIR/app/chrome_exe.vcproj', '$CHROME_DIR/app/locales/ru.vcproj', '$CHROME_DIR/app/locales/cs.vcproj', '$CHROME_DIR/app/locales/lt.vcproj', '$CHROME_DIR/app/locales/sk.vcproj', ('$CHROME_DIR/tools/crash_service/' + 'crash_service.vcproj'), '$CHROME_DIR/app/locales/te.vcproj', '$CHROME_DIR/app/locales/pl.vcproj', '$ICU38_DIR/build/icudt.vcproj', '$CHROME_DIR/app/locales/he.vcproj', '$CHROME_DIR/app/locales/mr.vcproj', '$CHROME_DIR/app/locales/da.vcproj', '$CHROME_DIR/app/locales/lv.vcproj', '$CHROME_DIR/app/locales/hu.vcproj', '$CHROME_DIR/app/locales/sv.vcproj', '$CHROME_DIR/app/locales/ja.vcproj', '$CHROME_DIR/app/locales/nb.vcproj', '$CHROME_DIR/app/locales/de.vcproj', '$RLZ_DIR/rlz.vcproj', '$CHROME_DIR/app/chrome_dll.vcproj', '$CHROME_DIR/app/locales/zh-CN.vcproj', '$CHROME_DIR/app/locales/sl.vcproj', '$CHROME_DIR/app/locales/ro.vcproj', '$CHROME_DIR/app/locales/ml.vcproj', '$CHROME_DIR/app/locales/en-US.vcproj', '$CHROME_DIR/app/locales/hr.vcproj', '$CHROME_DIR/app/locales/el.vcproj', '$CHROME_DIR/app/locales/vi.vcproj', '$CHROME_DIR/app/locales/or.vcproj', '$BSDIFF_DIR/bsdiff.vcproj', '$CHROME_DIR/app/locales/id.vcproj', '$CHROME_DIR/app/locales/zh-TW.vcproj', '$CHROME_DIR/app/locales/ca.vcproj', '$CHROME_DIR/app/locales/es-419.vcproj', '$CHROME_DIR/app/theme/theme_dll.vcproj', ], # TODO(sgk): when we can intuit the hierarchy # from the built targets. #buildtargets=TODO, files=input_files, relative_path_prefix='./', tools=[ MSVSTool('create installer archive', LastChromeInstaller='$(LAST_CHROME_INSTALLER)', LastChromeVersion='$(LAST_CHROME_VERSION)', SkipRebuildArchive='$(SKIP_REBUILD_CHROME_ARCHIVE)' ), 'Version', 'VCCLCompilerTool', 'VCResourceCompilerTool', 'VCLinkerTool', 'VCManifestTool', ], ConfigurationType='1') p.AddToolFile('$CHROME_DIR/tools/build/win/release.rules') p.AddToolFile('$CHROME_DIR/tools/build/win/version.rules') p.AddConfig('Debug|Win32', InheritedPropertySheets=[ './mini_installer_debug.vsprops', '$(SolutionDir)../testing/using_gtest.vsprops', ]) p.AddConfig('Release|Win32', InheritedPropertySheets=[ './mini_installer_release.vsprops', '$(SolutionDir)../testing/using_gtest.vsprops', ])