# Copyright (c) 2012 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. { 'dependencies': [ '<@(chrome_dll_project)', '../chrome.gyp:chrome', '../chrome.gyp:chrome_nacl_win64', '../chrome.gyp:default_extensions', '../chrome.gyp:setup', ], 'include_dirs': [ '../..', '<(INTERMEDIATE_DIR)', '<(SHARED_INTERMEDIATE_DIR)/chrome', ], 'sources': [ 'mini_installer/appid.h', 'mini_installer/chrome.release', 'mini_installer/chrome_appid.cc', 'mini_installer/configuration.cc', 'mini_installer/configuration.h', 'mini_installer/decompress.cc', 'mini_installer/decompress.h', 'mini_installer/mini_installer.cc', 'mini_installer/mini_installer.h', 'mini_installer/mini_installer.ico', 'mini_installer/mini_installer.rc', 'mini_installer/mini_installer_exe_version.rc.version', 'mini_installer/mini_installer_resource.h', 'mini_installer/mini_string.cc', 'mini_installer/mini_string.h', 'mini_installer/pe_resource.cc', 'mini_installer/pe_resource.h', '<(INTERMEDIATE_DIR)/packed_files.rc', ], # Disable precompiled headers for this project, to avoid # linker errors when building with VS 2008. 'msvs_precompiled_header': '', 'msvs_precompiled_source': '', 'msvs_settings': { 'VCCLCompilerTool': { 'EnableIntrinsicFunctions': 'true', 'BufferSecurityCheck': 'false', 'BasicRuntimeChecks': '0', 'ExceptionHandling': '0', }, 'VCLinkerTool': { 'OutputFile': '<(output_dir)/mini_installer.exe', 'RandomizedBaseAddress': '1', 'DataExecutionPrevention': '0', 'AdditionalLibraryDirectories': [ '<(PRODUCT_DIR)/lib' ], 'DelayLoadDLLs': [], 'EntryPointSymbol': 'MainEntryPoint', 'IgnoreAllDefaultLibraries': 'true', 'OptimizeForWindows98': '1', 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 'AdditionalDependencies': [ 'shlwapi.lib', 'setupapi.lib', ], }, 'VCManifestTool': { 'AdditionalManifestFiles': [ '$(ProjectDir)\\mini_installer\\mini_installer.exe.manifest', ], }, }, 'configurations': { 'Debug_Base': { 'msvs_settings': { 'VCCLCompilerTool': { 'BasicRuntimeChecks': '0', 'BufferSecurityCheck': 'false', 'ExceptionHandling': '0', }, 'VCLinkerTool': { 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 'AdditionalOptions': [ '/safeseh:no', '/dynamicbase:no', '/ignore:4199', '/ignore:4221', '/nxcompat', ], }, }, }, 'Release_Base': { 'includes': ['../../build/internal/release_defaults.gypi'], 'msvs_settings': { 'VCCLCompilerTool': { 'EnableIntrinsicFunctions': 'true', 'BasicRuntimeChecks': '0', 'BufferSecurityCheck': 'false', 'ExceptionHandling': '0', }, 'VCLinkerTool': { 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 'Profile': 'false', # Conflicts with /FIXED 'AdditionalOptions': [ '/SAFESEH:NO', '/NXCOMPAT', '/DYNAMICBASE:NO', '/FIXED', ], }, }, }, }, 'rules': [ { 'rule_name': 'mini_installer_version', 'extension': 'version', 'variables': { 'template_input_path': 'mini_installer/mini_installer_exe_version.rc.version', }, 'inputs': [ '<(template_input_path)', '<(version_path)', '<(lastchange_path)', '<(branding_dir)/BRANDING', ], 'outputs': [ '<(INTERMEDIATE_DIR)/mini_installer_exe_version.rc', ], 'action': [ 'python', '<(version_py)', '-f', '<(version_path)', '-f', '<(lastchange_path)', '-f', '<(branding_dir)/BRANDING', '<(template_input_path)', '<@(_outputs)', ], 'process_outputs_as_sources': 1, 'message': 'Generating version information' }, { 'rule_name': 'installer_archive', 'extension': 'release', 'variables': { 'create_installer_archive_py_path': '../tools/build/win/create_installer_archive.py', }, 'conditions': [ ['enable_hidpi == 1', { 'variables': { 'enable_hidpi_flag': '--enable_hidpi=1', }, }, { 'variables': { 'enable_hidpi_flag': '', }, }], ['target_arch=="x64"', { 'inputs!': [ '<(PRODUCT_DIR)/nacl64.exe', '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe', ], 'variables': { 'target_arch_flag': '--target_arch=x64', }, }, { 'variables': { 'target_arch_flag': '--target_arch=x86', }, }], ['icu_use_data_file_flag == 0', { 'inputs': [ '<(PRODUCT_DIR)/icudt.dll', ], }, { # else icu_use_data_file_flag != 0 'inputs': [ '<(PRODUCT_DIR)/icudtl.dat', ], }], ], 'inputs': [ '<(create_installer_archive_py_path)', '<(PRODUCT_DIR)/chrome.exe', '<@(chrome_dll_path)', '<(PRODUCT_DIR)/nacl64.exe', '<(PRODUCT_DIR)/ppGoogleNaClPluginChrome.dll', '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe', '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe', '<(PRODUCT_DIR)/locales/en-US.pak', ], 'outputs': [ 'xxx.out', '<(output_dir)/<(RULE_INPUT_NAME).7z', '<(output_dir)/<(RULE_INPUT_NAME).packed.7z', '<(output_dir)/setup.ex_', '<(INTERMEDIATE_DIR)/packed_files.rc', ], 'action': [ 'python', '<(create_installer_archive_py_path)', '--build_dir=<(PRODUCT_DIR)', '--output_dir=<(output_dir)', '--staging_dir=<(INTERMEDIATE_DIR)', '--input_file=<(RULE_INPUT_PATH)', '--resource_file_path=<(INTERMEDIATE_DIR)/packed_files.rc', '<(enable_hidpi_flag)', '<(target_arch_flag)', # TODO(sgk): may just use environment variables #'--distribution=$(CHROMIUM_BUILD)', '--distribution=_google_chrome', # Optional arguments to generate diff installer #'--last_chrome_installer=C:/Temp/base', #'--setup_exe_format=DIFF', #'--diff_algorithm=COURGETTE', ], 'message': 'Create installer archive', }, ], # TODO(mark): <(branding_dir) should be defined by the # global condition block at the bottom of the file, but # this doesn't work due to the following issue: # # http://code.google.com/p/gyp/issues/detail?id=22 # # Remove this block once the above issue is fixed. 'conditions': [ [ 'branding == "Chrome"', { 'variables': { 'branding_dir': '../app/theme/google_chrome', }, }, { # else branding!="Chrome" 'variables': { 'branding_dir': '../app/theme/chromium', }, }], ], }