mini_installer.gyp revision ca12bfac764ba476d6cd062bf1dde12cc64c3f40
1{ 2 'variables': { 3 'version_py': '../../chrome/tools/build/version.py', 4 'version_path': '../../chrome/VERSION', 5 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE', 6 # 'branding_dir' is set in the 'conditions' section at the bottom. 7 'msvs_use_common_release': 0, 8 'msvs_use_common_linker_extras': 0, 9 'mini_installer_internal_deps%': 0, 10 'mini_installer_official_deps%': 0, 11 }, 12 'includes': [ 13 '../../build/win_precompile.gypi', 14 ], 15 'conditions': [ 16 ['OS=="win"', { 17 'target_defaults': { 18 'dependencies': [ 19 '../chrome.gyp:app_host', 20 '../chrome.gyp:chrome', 21 '../chrome.gyp:chrome_nacl_win64', 22 '../chrome.gyp:chrome_dll', 23 '../chrome.gyp:default_extensions', 24 '../chrome.gyp:setup', 25 ], 26 'include_dirs': [ 27 '../..', 28 '<(INTERMEDIATE_DIR)', 29 '<(SHARED_INTERMEDIATE_DIR)/chrome', 30 ], 31 'sources': [ 32 'mini_installer/appid.h', 33 'mini_installer/configuration.cc', 34 'mini_installer/configuration.h', 35 'mini_installer/decompress.cc', 36 'mini_installer/decompress.h', 37 'mini_installer/mini_installer.cc', 38 'mini_installer/mini_installer.h', 39 'mini_installer/mini_installer.ico', 40 'mini_installer/mini_installer.rc', 41 'mini_installer/mini_installer_exe_version.rc.version', 42 'mini_installer/mini_installer_resource.h', 43 'mini_installer/mini_string.cc', 44 'mini_installer/mini_string.h', 45 'mini_installer/pe_resource.cc', 46 'mini_installer/pe_resource.h', 47 '<(INTERMEDIATE_DIR)/packed_files.rc', 48 ], 49 'msvs_settings': { 50 'VCCLCompilerTool': { 51 'EnableIntrinsicFunctions': 'true', 52 'BufferSecurityCheck': 'false', 53 'BasicRuntimeChecks': '0', 54 'ExceptionHandling': '0', 55 }, 56 'VCLinkerTool': { 57 'RandomizedBaseAddress': '1', 58 'DataExecutionPrevention': '0', 59 'AdditionalLibraryDirectories': [ 60 '<(PRODUCT_DIR)/lib' 61 ], 62 'DelayLoadDLLs': [], 63 'EntryPointSymbol': 'MainEntryPoint', 64 'GenerateMapFile': 'true', 65 'IgnoreAllDefaultLibraries': 'true', 66 'OptimizeForWindows98': '1', 67 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 68 'AdditionalDependencies': [ 69 'shlwapi.lib', 70 'setupapi.lib', 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': 'mini_installer/mini_installer_exe_version.rc.version', 127 }, 128 'inputs': [ 129 '<(template_input_path)', 130 '<(version_path)', 131 '<(lastchange_path)', 132 '<(branding_dir)/BRANDING', 133 ], 134 'outputs': [ 135 '<(PRODUCT_DIR)/mini_installer_exe_version.rc', 136 ], 137 'action': [ 138 'python', '<(version_py)', 139 '-f', '<(version_path)', 140 '-f', '<(lastchange_path)', 141 '-f', '<(branding_dir)/BRANDING', 142 '<(template_input_path)', 143 '<@(_outputs)', 144 ], 145 'process_outputs_as_sources': 1, 146 'message': 'Generating version information' 147 }, 148 ], 149 # TODO(mark): <(branding_dir) should be defined by the 150 # global condition block at the bottom of the file, but 151 # this doesn't work due to the following issue: 152 # 153 # http://code.google.com/p/gyp/issues/detail?id=22 154 # 155 # Remove this block once the above issue is fixed. 156 'conditions': [ 157 [ 'branding == "Chrome"', { 158 'variables': { 159 'branding_dir': '../app/theme/google_chrome', 160 }, 161 }, { # else branding!="Chrome" 162 'variables': { 163 'branding_dir': '../app/theme/chromium', 164 }, 165 }], 166 ], 167 }, 168 'targets': [ 169 { 170 'target_name': 'mini_installer', 171 'type': 'executable', 172 173 # Disable precompiled headers for this project, to avoid 174 # linker errors when building with VS 2008. 175 'msvs_precompiled_header': '', 176 'msvs_precompiled_source': '', 177 178 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 179 'msvs_disabled_warnings': [ 4267, ], 180 181 'sources': [ 182 'mini_installer/chrome.release', 183 'mini_installer/chrome_appid.cc', 184 ], 185 'rules': [ 186 { 187 'rule_name': 'installer_archive', 188 'extension': 'release', 189 'variables': { 190 'create_installer_archive_py_path': 191 '../tools/build/win/create_installer_archive.py', 192 }, 193 'conditions': [ 194 ['enable_hidpi == 1', { 195 'variables': { 196 'enable_hidpi_flag': '--enable_hidpi=1', 197 }, 198 }, { 199 'variables': { 200 'enable_hidpi_flag': '', 201 }, 202 }], 203 ['enable_touch_ui == 1', { 204 'variables': { 205 'enable_touch_ui_flag': '--enable_touch_ui=1', 206 }, 207 }, { 208 'variables': { 209 'enable_touch_ui_flag': '', 210 }, 211 }], 212 ['component == "shared_library"', { 213 'variables': { 214 'component_build_flag': '--component_build=1', 215 }, 216 }, { 217 'variables': { 218 'component_build_flag': '', 219 }, 220 'outputs': [ 221 '<(PRODUCT_DIR)/<(RULE_INPUT_NAME).packed.7z', 222 ], 223 }], 224 ['disable_nacl==1', { 225 'inputs!': [ 226 '<(PRODUCT_DIR)/nacl64.exe', 227 '<(PRODUCT_DIR)/ppGoogleNaClPluginChrome.dll', 228 '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe', 229 '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe', 230 ], 231 }], 232 ['target_arch=="x64"', { 233 'inputs!': [ 234 '<(PRODUCT_DIR)/nacl64.exe', 235 '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe', 236 ], 237 'variables': { 238 'target_arch_flag': '--target_arch=x64', 239 }, 240 }, { 241 'variables': { 242 'target_arch_flag': '--target_arch=x86', 243 }, 244 }], 245 ], 246 'inputs': [ 247 '<(create_installer_archive_py_path)', 248 '<(PRODUCT_DIR)/app_host.exe', 249 '<(PRODUCT_DIR)/chrome.exe', 250 '<(PRODUCT_DIR)/chrome.dll', 251 '<(PRODUCT_DIR)/nacl64.exe', 252 '<(PRODUCT_DIR)/ppGoogleNaClPluginChrome.dll', 253 '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe', 254 '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe', 255 '<(PRODUCT_DIR)/locales/en-US.pak', 256 '<(PRODUCT_DIR)/icudt.dll', 257 ], 258 'outputs': [ 259 # Also note that chrome.packed.7z is defined as an output in a 260 # conditional above. 261 'xxx2.out', 262 '<(PRODUCT_DIR)/<(RULE_INPUT_NAME).7z', 263 '<(PRODUCT_DIR)/setup.ex_', 264 '<(INTERMEDIATE_DIR)/packed_files.rc', 265 ], 266 'action': [ 267 'python', 268 '<(create_installer_archive_py_path)', 269 '--build_dir', '<(PRODUCT_DIR)', 270 '--staging_dir', '<(INTERMEDIATE_DIR)', 271 '--input_file', '<(RULE_INPUT_PATH)', 272 '--resource_file_path', '<(INTERMEDIATE_DIR)/packed_files.rc', 273 '<(enable_hidpi_flag)', 274 '<(enable_touch_ui_flag)', 275 '<(component_build_flag)', 276 '<(target_arch_flag)', 277 # TODO(sgk): may just use environment variables 278 #'--distribution=$(CHROMIUM_BUILD)', 279 '--distribution=_google_chrome', 280 # Optional arguments to generate diff installer 281 #'--last_chrome_installer=C:/Temp/base', 282 #'--setup_exe_format=DIFF', 283 #'--diff_algorithm=COURGETTE', 284 ], 285 'message': 'Create installer archive', 286 'msvs_cygwin_shell': 1, 287 }, 288 ], 289 }, 290 ], 291 }], 292 [ 'branding == "Chrome"', { 293 'variables': { 294 'branding_dir': '../app/theme/google_chrome', 295 }, 296 }, { # else branding!="Chrome" 297 'variables': { 298 'branding_dir': '../app/theme/chromium', 299 }, 300 }], 301 ], 302} 303