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