mini_installer.gypi revision 58537e28ecd584eab876aee8be7156509866d23a
1# Copyright (c) 2012 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4{ 5 'dependencies': [ 6 '<@(chrome_dll_project)', 7 '../chrome.gyp:chrome', 8 '../chrome.gyp:chrome_nacl_win64', 9 '../chrome.gyp:default_extensions', 10 '../chrome.gyp:setup', 11 ], 12 'include_dirs': [ 13 '../..', 14 '<(INTERMEDIATE_DIR)', 15 '<(SHARED_INTERMEDIATE_DIR)/chrome', 16 ], 17 'sources': [ 18 'mini_installer/appid.h', 19 'mini_installer/chrome.release', 20 'mini_installer/chrome_appid.cc', 21 'mini_installer/configuration.cc', 22 'mini_installer/configuration.h', 23 'mini_installer/decompress.cc', 24 'mini_installer/decompress.h', 25 'mini_installer/mini_installer.cc', 26 'mini_installer/mini_installer.h', 27 'mini_installer/mini_installer.ico', 28 'mini_installer/mini_installer.rc', 29 'mini_installer/mini_installer_exe_version.rc.version', 30 'mini_installer/mini_installer_resource.h', 31 'mini_installer/mini_string.cc', 32 'mini_installer/mini_string.h', 33 'mini_installer/pe_resource.cc', 34 'mini_installer/pe_resource.h', 35 '<(INTERMEDIATE_DIR)/packed_files.rc', 36 ], 37 # Disable precompiled headers for this project, to avoid 38 # linker errors when building with VS 2008. 39 'msvs_precompiled_header': '', 40 'msvs_precompiled_source': '', 41 'msvs_settings': { 42 'VCCLCompilerTool': { 43 'EnableIntrinsicFunctions': 'true', 44 'BufferSecurityCheck': 'false', 45 'BasicRuntimeChecks': '0', 46 'ExceptionHandling': '0', 47 }, 48 'VCLinkerTool': { 49 'OutputFile': '<(output_dir)/mini_installer.exe', 50 'RandomizedBaseAddress': '1', 51 'DataExecutionPrevention': '0', 52 'AdditionalLibraryDirectories': [ 53 '<(PRODUCT_DIR)/lib' 54 ], 55 'DelayLoadDLLs': [], 56 'EntryPointSymbol': 'MainEntryPoint', 57 'IgnoreAllDefaultLibraries': 'true', 58 'OptimizeForWindows98': '1', 59 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 60 'AdditionalDependencies': [ 61 'shlwapi.lib', 62 'setupapi.lib', 63 ], 64 'conditions': [ 65 ['MSVS_VERSION=="2005e"', { 66 'AdditionalDependencies': [ # Must explicitly link in VC2005E 67 'advapi32.lib', 68 'shell32.lib', 69 ], 70 }], 71 ], 72 }, 73 'VCManifestTool': { 74 'AdditionalManifestFiles': [ 75 '$(ProjectDir)\\mini_installer\\mini_installer.exe.manifest', 76 ], 77 }, 78 }, 79 'configurations': { 80 'Debug_Base': { 81 'msvs_settings': { 82 'VCCLCompilerTool': { 83 'BasicRuntimeChecks': '0', 84 'BufferSecurityCheck': 'false', 85 'ExceptionHandling': '0', 86 }, 87 'VCLinkerTool': { 88 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 89 'AdditionalOptions': [ 90 '/safeseh:no', 91 '/dynamicbase:no', 92 '/ignore:4199', 93 '/ignore:4221', 94 '/nxcompat', 95 ], 96 }, 97 }, 98 }, 99 'Release_Base': { 100 'includes': ['../../build/internal/release_defaults.gypi'], 101 'msvs_settings': { 102 'VCCLCompilerTool': { 103 'EnableIntrinsicFunctions': 'true', 104 'BasicRuntimeChecks': '0', 105 'BufferSecurityCheck': 'false', 106 'ExceptionHandling': '0', 107 }, 108 'VCLinkerTool': { 109 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 110 'Profile': 'false', # Conflicts with /FIXED 111 'AdditionalOptions': [ 112 '/SAFESEH:NO', 113 '/NXCOMPAT', 114 '/DYNAMICBASE:NO', 115 '/FIXED', 116 ], 117 }, 118 }, 119 }, 120 }, 121 'rules': [ 122 { 123 'rule_name': 'mini_installer_version', 124 'extension': 'version', 125 'variables': { 126 'template_input_path': 127 'mini_installer/mini_installer_exe_version.rc.version', 128 }, 129 'inputs': [ 130 '<(template_input_path)', 131 '<(version_path)', 132 '<(lastchange_path)', 133 '<(branding_dir)/BRANDING', 134 ], 135 'outputs': [ 136 '<(INTERMEDIATE_DIR)/mini_installer_exe_version.rc', 137 ], 138 'action': [ 139 'python', '<(version_py)', 140 '-f', '<(version_path)', 141 '-f', '<(lastchange_path)', 142 '-f', '<(branding_dir)/BRANDING', 143 '<(template_input_path)', 144 '<@(_outputs)', 145 ], 146 'process_outputs_as_sources': 1, 147 'message': 'Generating version information' 148 }, 149 { 150 'rule_name': 'installer_archive', 151 'extension': 'release', 152 'variables': { 153 'create_installer_archive_py_path': 154 '../tools/build/win/create_installer_archive.py', 155 }, 156 'conditions': [ 157 ['enable_hidpi == 1', { 158 'variables': { 159 'enable_hidpi_flag': '--enable_hidpi=1', 160 }, 161 }, { 162 'variables': { 163 'enable_hidpi_flag': '', 164 }, 165 }], 166 ['enable_touch_ui == 1', { 167 'variables': { 168 'enable_touch_ui_flag': '--enable_touch_ui=1', 169 }, 170 }, { 171 'variables': { 172 'enable_touch_ui_flag': '', 173 }, 174 }], 175 ['target_arch=="x64"', { 176 'inputs!': [ 177 '<(PRODUCT_DIR)/nacl64.exe', 178 '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe', 179 ], 180 'variables': { 181 'target_arch_flag': '--target_arch=x64', 182 }, 183 }, { 184 'variables': { 185 'target_arch_flag': '--target_arch=x86', 186 }, 187 }], 188 ], 189 'inputs': [ 190 '<(create_installer_archive_py_path)', 191 '<(PRODUCT_DIR)/chrome.exe', 192 '<@(chrome_dll_path)', 193 '<(PRODUCT_DIR)/nacl64.exe', 194 '<(PRODUCT_DIR)/ppGoogleNaClPluginChrome.dll', 195 '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe', 196 '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe', 197 '<(PRODUCT_DIR)/locales/en-US.pak', 198 '<(PRODUCT_DIR)/icudt.dll', 199 ], 200 'outputs': [ 201 'xxx.out', 202 '<(output_dir)/<(RULE_INPUT_NAME).7z', 203 '<(output_dir)/<(RULE_INPUT_NAME).packed.7z', 204 '<(output_dir)/setup.ex_', 205 '<(INTERMEDIATE_DIR)/packed_files.rc', 206 ], 207 'action': [ 208 'python', 209 '<(create_installer_archive_py_path)', 210 '--build_dir=<(PRODUCT_DIR)', 211 '--output_dir=<(output_dir)', 212 '--staging_dir=<(INTERMEDIATE_DIR)', 213 '--input_file=<(RULE_INPUT_PATH)', 214 '--resource_file_path=<(INTERMEDIATE_DIR)/packed_files.rc', 215 '<(enable_hidpi_flag)', 216 '<(enable_touch_ui_flag)', 217 '<(target_arch_flag)', 218 # TODO(sgk): may just use environment variables 219 #'--distribution=$(CHROMIUM_BUILD)', 220 '--distribution=_google_chrome', 221 # Optional arguments to generate diff installer 222 #'--last_chrome_installer=C:/Temp/base', 223 #'--setup_exe_format=DIFF', 224 #'--diff_algorithm=COURGETTE', 225 ], 226 'message': 'Create installer archive' 227 }, 228 ], 229 # TODO(mark): <(branding_dir) should be defined by the 230 # global condition block at the bottom of the file, but 231 # this doesn't work due to the following issue: 232 # 233 # http://code.google.com/p/gyp/issues/detail?id=22 234 # 235 # Remove this block once the above issue is fixed. 236 'conditions': [ 237 [ 'branding == "Chrome"', { 238 'variables': { 239 'branding_dir': '../app/theme/google_chrome', 240 }, 241 }, { # else branding!="Chrome" 242 'variables': { 243 'branding_dir': '../app/theme/chromium', 244 }, 245 }], 246 ], 247} 248