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 'variables': { 6 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome', 7 'about_credits_file': '<(SHARED_INTERMEDIATE_DIR)/about_credits.html', 8 'additional_modules_list_file': '<(SHARED_INTERMEDIATE_DIR)/chrome/browser/internal/additional_modules_list.txt', 9 'repack_locales_cmd': ['python', 'tools/build/repack_locales.py'], 10 }, 11 'targets': [ 12 { 13 'target_name': 'chrome_extra_resources', 14 'type': 'none', 15 # These resources end up in resources.pak because they are resources 16 # used by internal pages. Putting them in a separate pak file makes 17 # it easier for us to reference them internally. 18 'actions': [ 19 { 20 'action_name': 'memory_internals_resources', 21 'variables': { 22 'grit_grd_file': 'browser/resources/memory_internals_resources.grd', 23 }, 24 'includes': [ '../build/grit_action.gypi' ], 25 }, 26 { 27 'action_name': 'net_internals_resources', 28 'variables': { 29 'grit_grd_file': 'browser/resources/net_internals_resources.grd', 30 }, 31 'includes': [ '../build/grit_action.gypi' ], 32 }, 33 { 34 'action_name': 'signin_internals_resources', 35 'variables': { 36 'grit_grd_file': 'browser/resources/signin_internals_resources.grd', 37 }, 38 'includes': ['../build/grit_action.gypi' ], 39 }, 40 { 41 'action_name': 'sync_internals_resources', 42 'variables': { 43 'grit_grd_file': 'browser/resources/sync_internals_resources.grd', 44 }, 45 'includes': [ '../build/grit_action.gypi' ], 46 }, 47 { 48 'action_name': 'translate_internals_resources', 49 'variables': { 50 'grit_grd_file': 'browser/resources/translate_internals_resources.grd', 51 }, 52 'includes': [ '../build/grit_action.gypi' ], 53 }, 54 ], 55 'includes': [ '../build/grit_target.gypi' ], 56 'conditions': [ 57 ['OS != "ios"', { 58 'dependencies': [ 59 '../components/components.gyp:dom_distiller_resources', 60 '../content/browser/devtools/devtools_resources.gyp:devtools_resources', 61 '../content/browser/tracing/tracing_resources.gyp:tracing_resources', 62 ], 63 'actions': [ 64 { 65 'action_name': 'component_extension_resources', 66 'variables': { 67 'grit_grd_file': 'browser/resources/component_extension_resources.grd', 68 }, 69 'includes': [ '../build/grit_action.gypi' ], 70 }, 71 { 72 'action_name': 'options_resources', 73 'variables': { 74 'grit_grd_file': 'browser/resources/options_resources.grd', 75 }, 76 'includes': [ '../build/grit_action.gypi' ], 77 }, 78 { 79 'action_name': 'quota_internals_resources', 80 'variables': { 81 'grit_grd_file': 'browser/resources/quota_internals_resources.grd', 82 }, 83 'includes': [ '../build/grit_action.gypi' ], 84 }, 85 { 86 'action_name': 'devtools_discovery_page_resources', 87 'variables': { 88 'grit_grd_file': 89 'browser/devtools/frontend/devtools_discovery_page_resources.grd', 90 }, 91 'includes': [ '../build/grit_action.gypi' ] 92 }, 93 { 94 'action_name': 'sync_file_system_internals_resources', 95 'variables': { 96 'grit_grd_file': 'browser/resources/sync_file_system_internals_resources.grd', 97 }, 98 'includes': [ '../build/grit_action.gypi' ], 99 }, 100 ], 101 'copies': [ 102 { 103 'destination': '<(PRODUCT_DIR)/resources/extension/demo', 104 'files': [ 105 'browser/resources/extension_resource/demo/library.js', 106 ], 107 }, 108 ], 109 }], 110 ['chromeos==1 and disable_nacl==0 and disable_nacl_untrusted==0', { 111 'dependencies': [ 112 '../chrome/third_party/chromevox/chromevox.gyp:chromevox_resources', 113 ], 114 }], 115 ], 116 }, 117 { 118 'target_name': 'chrome_internal_resources_gen', 119 'type': 'none', 120 'conditions': [ 121 ['branding=="Chrome"', { 122 'actions': [ 123 { 124 'action_name': 'transform_additional_modules_list', 125 'variables': { 126 'additional_modules_input_path': 127 'browser/internal/resources/additional_modules_list.input', 128 'additional_modules_py_path': 129 'browser/internal/transform_additional_modules_list.py', 130 }, 131 'inputs': [ 132 '<(additional_modules_input_path)', 133 ], 134 'outputs': [ 135 '<(additional_modules_list_file)', 136 ], 137 'action': [ 138 'python', 139 '<(additional_modules_py_path)', 140 '<(additional_modules_input_path)', 141 '<@(_outputs)', 142 ], 143 'message': 'Transforming additional modules list.', 144 } 145 ], 146 }], 147 ], 148 }, 149 { 150 # TODO(mark): It would be better if each static library that needed 151 # to run grit would list its own .grd files, but unfortunately some 152 # of the static libraries currently have circular dependencies among 153 # generated headers. 154 'target_name': 'chrome_resources', 155 'type': 'none', 156 'dependencies': [ 157 'about_credits', 158 'chrome_internal_resources_gen', 159 ], 160 'actions': [ 161 # Data resources. 162 { 163 'action_name': 'browser_resources', 164 'variables': { 165 'grit_grd_file': 'browser/browser_resources.grd', 166 'grit_additional_defines': [ 167 '-E', 'about_credits_file=<(about_credits_file)', 168 '-E', 'additional_modules_list_file=<(additional_modules_list_file)', 169 ], 170 }, 171 'includes': [ '../build/grit_action.gypi' ], 172 }, 173 { 174 'action_name': 'common_resources', 175 'variables': { 176 'grit_grd_file': 'common/common_resources.grd', 177 }, 178 'includes': [ '../build/grit_action.gypi' ], 179 }, 180 { 181 'action_name': 'renderer_resources', 182 'variables': { 183 'grit_grd_file': 'renderer/resources/renderer_resources.grd', 184 }, 185 'includes': [ '../build/grit_action.gypi' ], 186 }, 187 ], 188 'conditions': [ 189 ['enable_extensions==1', { 190 'actions': [ 191 { 192 'action_name': 'extensions_api_resources', 193 'variables': { 194 'grit_grd_file': 'common/extensions_api_resources.grd', 195 }, 196 'includes': [ '../build/grit_action.gypi' ], 197 } 198 ], 199 }], 200 ], 201 'includes': [ '../build/grit_target.gypi' ], 202 }, 203 { 204 # TODO(mark): It would be better if each static library that needed 205 # to run grit would list its own .grd files, but unfortunately some 206 # of the static libraries currently have circular dependencies among 207 # generated headers. 208 'target_name': 'chrome_strings', 209 'type': 'none', 210 'actions': [ 211 # Localizable resources. 212 { 213 'action_name': 'locale_settings', 214 'variables': { 215 'grit_grd_file': 'app/resources/locale_settings.grd', 216 }, 217 'includes': [ '../build/grit_action.gypi' ], 218 }, 219 { 220 'action_name': 'chromium_strings.grd', 221 'variables': { 222 'grit_grd_file': 'app/chromium_strings.grd', 223 }, 224 'includes': [ '../build/grit_action.gypi' ], 225 }, 226 { 227 'action_name': 'generated_resources', 228 'variables': { 229 'grit_grd_file': 'app/generated_resources.grd', 230 }, 231 'includes': [ '../build/grit_action.gypi' ], 232 }, 233 { 234 'action_name': 'google_chrome_strings', 235 'variables': { 236 'grit_grd_file': 'app/google_chrome_strings.grd', 237 }, 238 'includes': [ '../build/grit_action.gypi' ], 239 }, 240 ], 241 'includes': [ '../build/grit_target.gypi' ], 242 }, 243 { 244 'target_name': 'platform_locale_settings', 245 'type': 'none', 246 'variables': { 247 'conditions': [ 248 ['OS=="win"', { 249 'platform_locale_settings_grd': 250 'app/resources/locale_settings_win.grd', 251 },], 252 ['OS=="linux"', { 253 'conditions': [ 254 ['chromeos==1', { 255 'conditions': [ 256 ['branding=="Chrome"', { 257 'platform_locale_settings_grd': 258 'app/resources/locale_settings_google_chromeos.grd', 259 }, { # branding!=Chrome 260 'platform_locale_settings_grd': 261 'app/resources/locale_settings_chromiumos.grd', 262 }], 263 ] 264 }, { # chromeos==0 265 'platform_locale_settings_grd': 266 'app/resources/locale_settings_linux.grd', 267 }], 268 ], 269 },], 270 ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "linux"', { 271 'platform_locale_settings_grd': 272 'app/resources/locale_settings_linux.grd', 273 },], 274 ['OS == "mac" or OS == "ios"', { 275 'platform_locale_settings_grd': 276 'app/resources/locale_settings_mac.grd', 277 }], 278 ], # conditions 279 }, # variables 280 'actions': [ 281 { 282 'action_name': 'platform_locale_settings', 283 'variables': { 284 'grit_grd_file': '<(platform_locale_settings_grd)', 285 }, 286 'includes': [ '../build/grit_action.gypi' ], 287 }, 288 ], 289 'includes': [ '../build/grit_target.gypi' ], 290 }, 291 { 292 'target_name': 'theme_resources_gen', 293 'type': 'none', 294 'actions': [ 295 { 296 'action_name': 'theme_resources', 297 'variables': { 298 'grit_grd_file': 'app/theme/theme_resources.grd', 299 }, 300 'includes': [ '../build/grit_action.gypi' ], 301 }, 302 ], 303 'includes': [ '../build/grit_target.gypi' ], 304 }, 305 { 306 'target_name': 'theme_resources', 307 'type': 'none', 308 'dependencies': [ 309 'chrome_unscaled_resources', 310 'theme_resources_gen', 311 '<(DEPTH)/ui/resources/ui_resources.gyp:ui_resources', 312 ], 313 }, 314 { 315 'target_name': 'packed_extra_resources', 316 'type': 'none', 317 'variables': { 318 'repack_path': '../tools/grit/grit/format/repack.py', 319 }, 320 'dependencies': [ 321 'chrome_extra_resources', 322 'packed_resources', 323 ], 324 'actions': [ 325 { 326 'includes': ['chrome_repack_resources.gypi'] 327 }, 328 ], 329 'conditions': [ 330 ['OS != "mac" and OS != "ios"', { 331 # We'll install the resource files to the product directory. The Mac 332 # copies the results over as bundle resources in its own special way. 333 'copies': [ 334 { 335 'destination': '<(PRODUCT_DIR)', 336 'files': [ 337 '<(SHARED_INTERMEDIATE_DIR)/repack/resources.pak' 338 ], 339 }, 340 ], 341 }], 342 ], 343 }, 344 { 345 'target_name': 'packed_resources', 346 'type': 'none', 347 'variables': { 348 'repack_path': '../tools/grit/grit/format/repack.py', 349 }, 350 'dependencies': [ 351 # MSVS needs the dependencies explictly named, Make is able to 352 # derive the dependencies from the output files. 353 'chrome_resources', 354 'chrome_strings', 355 'platform_locale_settings', 356 'theme_resources', 357 '<(DEPTH)/components/component_strings.gyp:component_strings', 358 '<(DEPTH)/net/net.gyp:net_resources', 359 '<(DEPTH)/ui/base/strings/ui_strings.gyp:ui_strings', 360 '<(DEPTH)/ui/resources/ui_resources.gyp:ui_resources', 361 ], 362 'actions': [ 363 { 364 'includes': ['chrome_repack_chrome.gypi'] 365 }, 366 { 367 'includes': ['chrome_repack_locales.gypi'] 368 }, 369 { 370 'includes': ['chrome_repack_pseudo_locales.gypi'] 371 }, 372 { 373 'includes': ['chrome_repack_chrome_100_percent.gypi'] 374 }, 375 { 376 'includes': ['chrome_repack_chrome_200_percent.gypi'] 377 }, 378 { 379 'includes': ['chrome_repack_chrome_touch_100_percent.gypi'] 380 }, 381 ], 382 'conditions': [ 383 ['OS != "ios"', { 384 'dependencies': [ 385 # TODO(zork): Protect this with if use_aura==1 386 '<(DEPTH)/ash/ash_strings.gyp:ash_strings', 387 '<(DEPTH)/content/content_resources.gyp:content_resources', 388 '<(DEPTH)/device/bluetooth/bluetooth_strings.gyp:device_bluetooth_strings', 389 '<(DEPTH)/webkit/webkit_resources.gyp:webkit_resources', 390 '<(DEPTH)/webkit/webkit_resources.gyp:webkit_strings', 391 ], 392 }], 393 ['use_ash==1', { 394 'dependencies': [ 395 '<(DEPTH)/ash/ash.gyp:ash_resources', 396 ], 397 }], 398 ['OS != "mac" and OS != "ios"', { 399 # Copy pak files to the product directory. These files will be picked 400 # up by the following installer scripts: 401 # - Windows: chrome/installer/mini_installer/chrome.release 402 # - Linux: chrome/installer/linux/internal/common/installer.include 403 # Ensure that the above scripts are updated when adding or removing 404 # pak files. 405 # Copying files to the product directory is not needed on the Mac 406 # since the framework build phase will copy them into the framework 407 # bundle directly. 408 'copies': [ 409 { 410 'destination': '<(PRODUCT_DIR)', 411 'files': [ 412 '<(SHARED_INTERMEDIATE_DIR)/repack/chrome.pak' 413 ], 414 }, 415 { 416 'destination': '<(PRODUCT_DIR)', 417 'files': [ 418 '<(SHARED_INTERMEDIATE_DIR)/repack/chrome_100_percent.pak' 419 ], 420 }, 421 { 422 'destination': '<(PRODUCT_DIR)/locales', 423 'files': [ 424 '<!@pymod_do_main(repack_locales -o -p <(OS) -g <(grit_out_dir) -s <(SHARED_INTERMEDIATE_DIR) -x <(SHARED_INTERMEDIATE_DIR) <(locales))' 425 ], 426 }, 427 { 428 'destination': '<(PRODUCT_DIR)/pseudo_locales', 429 'files': [ 430 '<!@pymod_do_main(repack_locales -o -p <(OS) -g <(grit_out_dir) -s <(SHARED_INTERMEDIATE_DIR) -x <(SHARED_INTERMEDIATE_DIR) <(pseudo_locales))' 431 ], 432 }, 433 ], 434 'conditions': [ 435 ['branding=="Chrome"', { 436 'copies': [ 437 { 438 # This location is for the Windows and Linux builds. For 439 # Windows, the chrome.release file ensures that these files 440 # are copied into the installer. Note that we have a separate 441 # section in chrome_dll.gyp to copy these files for Mac, as it 442 # needs to be dropped inside the framework. 443 'destination': '<(PRODUCT_DIR)/default_apps', 444 'files': ['<@(default_apps_list)'] 445 }, 446 ], 447 }], 448 ['enable_hidpi == 1 and OS!="win"', { 449 'copies': [ 450 { 451 'destination': '<(PRODUCT_DIR)', 452 'files': [ 453 '<(SHARED_INTERMEDIATE_DIR)/repack/chrome_200_percent.pak', 454 ], 455 }, 456 ], 457 }], 458 ['enable_touch_ui==1', { 459 'copies': [ 460 { 461 'destination': '<(PRODUCT_DIR)', 462 'files': [ 463 '<(SHARED_INTERMEDIATE_DIR)/repack/chrome_touch_100_percent.pak', 464 ], 465 }, 466 ], 467 }], 468 ], # conditions 469 }], # end OS != "mac" and OS != "ios" 470 ], # conditions 471 }, 472 { 473 'target_name': 'chrome_unscaled_resources', 474 'type': 'none', 475 'variables': { 476 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/chrome', 477 }, 478 'actions': [ 479 { 480 'action_name': 'chrome_unscaled_resources', 481 'variables': { 482 'grit_grd_file': 'app/theme/chrome_unscaled_resources.grd', 483 }, 484 'includes': [ '../build/grit_action.gypi' ], 485 }, 486 ], 487 'includes': [ '../build/grit_target.gypi' ], 488 }, 489 { 490 'target_name': 'about_credits', 491 'type': 'none', 492 'actions': [ 493 { 494 'variables': { 495 'generator_path': '../tools/licenses.py', 496 }, 497 'action_name': 'generate_about_credits', 498 'inputs': [ 499 # TODO(phajdan.jr): make licenses.py print inputs too. 500 '<(generator_path)', 501 ], 502 'outputs': [ 503 '<(about_credits_file)', 504 ], 505 'hard_dependency': 1, 506 'action': ['python', 507 '<(generator_path)', 508 'credits', 509 '<(about_credits_file)', 510 ], 511 'message': 'Generating about:credits', 512 }, 513 ], 514 }, 515 ], # targets 516} 517