summaryrefslogtreecommitdiffstats
path: root/src/core/configure/BUILD.root.gn.in
blob: 2ba599e45c4b682bf24e93e0b25aa602075ee898 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
import("//build/config/features.gni")
import("//build/config/ui.gni")
import("//chrome/common/features.gni")
import("//components/spellcheck/spellcheck_build_features.gni")
import("//pdf/features.gni")
import("//ppapi/buildflags/buildflags.gni")
import("//printing/buildflags/buildflags.gni")
import("//extensions/buildflags/buildflags.gni")
import("//tools/grit/repack.gni")
import("//build/config/locales.gni")
import("//chrome/chrome_repack_locales.gni")
import("//extensions/buildflags/buildflags.gni")
import("//ui/ozone/ozone.gni")

# Workaround for cmake configure_file command. Words wrapped with @ characters are
# handled as variables in this file.
chromium_version_template = string_replace("atMAJORat.atMINORat.atBUILDat.atPATCHat", "at", "@")
chromium_version = exec_script("//build/util/version.py",
  [ "-f", rebase_path("//chrome/VERSION"), "-t", chromium_version_template], "list lines")

moc_source_h_files = exec_script("@WEBENGINE_ROOT_SOURCE_DIR@/tools/scripts/gn_find_mocables.py",
  [
  @GN_HEADERS@
  ], "list lines", ["@WEBENGINE_ROOT_SOURCE_DIR@/src/core/CMakeLists.txt"]
)
moc_source_cpp_files = exec_script("@WEBENGINE_ROOT_SOURCE_DIR@/tools/scripts/gn_find_mocables.py",
  [
  @GN_SOURCES@
  ], "list lines", ["@WEBENGINE_ROOT_SOURCE_DIR@/src/core/CMakeLists.txt"]
)
if (moc_source_h_files != []) {
  action_foreach("generate_h_mocs") {
    script = "@WEBENGINE_ROOT_SOURCE_DIR@/tools/scripts/gn_run_binary.py"
    sources =  moc_source_h_files
    outputs = [ "${target_gen_dir}/.moc/moc_{{source_name_part}}.cpp" ]
    inputs = [ "@WEBENGINE_ROOT_SOURCE_DIR@/CMakeLists.txt" ]
    args = [
      @GN_ARGS_MOC_BIN@,
      @GN_ARGS_DEFINES@,
      @GN_ARGS_INCLUDES@,
      "{{source}}",
      "-o",
      rebase_path("${target_gen_dir}/.moc/moc_{{source_name_part}}.cpp")
    ]
  }
}

if (moc_source_cpp_files != []) {
  action_foreach("generate_cpp_mocs") {
    script = "@WEBENGINE_ROOT_SOURCE_DIR@/tools/scripts/gn_run_binary.py"
    sources =  moc_source_cpp_files
    outputs = [ "${target_gen_dir}/.moc/{{source_name_part}}.moc" ]
    inputs = [ "@WEBENGINE_ROOT_SOURCE_DIR@/src/core/CMakeLists.txt" ]
    args = [
      @GN_ARGS_MOC_BIN@,
      @GN_ARGS_DEFINES@,
      @GN_ARGS_INCLUDES@,
      "{{source}}",
      "-o",
      rebase_path("${target_gen_dir}/.moc/{{source_name_part}}.moc")
    ]
  }
}

config("QtWebEngineCore_config") {
  cflags = [
    @GN_CFLAGS_C@,
  ]
  cflags_cc = [
    @GN_CFLAGS_CC@,
  ]
  defines = [
    @GN_DEFINES@,
  ]
  include_dirs = [
    @GN_INCLUDE_DIRS@,
    rebase_path("${target_gen_dir}/.moc/")
  ]
}

config("cpp17_config") {
  # static initialized constexpr expressions must be compiled always as c++14 or always as c++17
  # and our qtwebengine core sources use them as c++17
  if (is_win) {
    cflags_cc = [ "/std:c++17" ]
  } else {
    cflags_cc = [ "-std=c++17" ]
  }
}

shared_library("QtWebEngineCore") {
  rsp_types = [ "objects", "archives", "libs" ]
  configs += [
    ":cpp17_config",
    ":QtWebEngineCore_config",
    "//build/config:precompiled_headers"
  ]
  include_dirs = [
    "//skia/config",
    "//third_party",
    "//third_party/boringssl/src/include",
    "//third_party/skia/include/core"
  ]
  defines = [ "CHROMIUM_VERSION=\"" + chromium_version[0] + "\"" ]
  deps = [
    "//base",
    "//components/cdm/renderer",
    "//components/error_page/common",
    "//components/favicon/content",
    "//components/history/content/browser",
    "//components/keyed_service/content",
    "//components/navigation_interception",
    "//components/network_hints/browser",
    "//components/network_hints/common:mojo_bindings",
    "//components/network_hints/renderer",
    "//components/visitedlink/browser",
    "//components/visitedlink/renderer",
    "//components/web_cache/browser",
    "//components/web_cache/renderer",
    "//components/spellcheck:buildflags",
    "//components/proxy_config",
    "//components/user_prefs",
    "//content/public/app",
    "//content",
    "//media:media_buildflags",
    "//net",
    "//services/proxy_resolver:lib",
    "//skia",
    "//third_party/blink/public:blink",
    "//ui/accessibility",
    "//ui/gl",
    "//qtwebengine/browser:interfaces",
    "//qtwebengine/userscript",
    "//qtwebengine/browser:service_manifests",
    "//qtwebengine/common:mojo_bindings",
    ":qtwebengine_sources",
    ":qtwebengine_resources",
  ]

  if (use_ozone) {
    _ozone_extra_directory = get_path_info(ozone_extra_path, "dir")
    deps += [ "$_ozone_extra_directory:qt" ]
  }

  if (enable_webrtc) {
    deps += [ "//third_party/webrtc_overrides:webrtc_component" ]
  }

  if (use_xscrnsaver) {
    deps += [ "//ui/base/x" ]
  }

  if (is_win) {
    data_deps = [ ":QtWebEngineCoreSandbox" ]
  }

  sources = [
  @GN_HEADERS@,
  @GN_SOURCES@
  ]
  if (moc_source_h_files != []) {
    deps += [
        ":generate_h_mocs",
    ]
    sources += get_target_outputs(":generate_h_mocs")
  }
  if (moc_source_cpp_files != []) {
    deps += [
        ":generate_cpp_mocs",
    ]
  }
}

source_set("qtwebengine_spellcheck_sources") {
  include_dirs = [ "@WEBENGINE_ROOT_SOURCE_DIR@/src/core/service" ]
  configs += [ "//third_party/boringssl:external_config" ]
  sources = [
    "//chrome/browser/spellchecker/spell_check_host_chrome_impl.cc",
    "//chrome/browser/spellchecker/spell_check_host_chrome_impl.h",
    "//chrome/browser/spellchecker/spellcheck_custom_dictionary.cc",
    "//chrome/browser/spellchecker/spellcheck_custom_dictionary.h",
    "//chrome/browser/spellchecker/spellcheck_factory.cc",
    "//chrome/browser/spellchecker/spellcheck_factory.h",
    "//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc",
    "//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h",
    "//chrome/browser/spellchecker/spellcheck_service.cc",
    "//chrome/browser/spellchecker/spellcheck_service.h",
    "//components/language/core/browser/pref_names.cc",
    "//components/language/core/browser/pref_names.h",
  ]
  deps = [
    "//components/spellcheck/browser",
    "//components/spellcheck/renderer",
    "//third_party/blink/public:blink",
    "//third_party/hunspell",
  ]
  if (is_mac && use_browser_spellchecker) {
    sources += [
        "//chrome/browser/spellchecker/spell_check_host_chrome_impl_mac.cc",
    ]
  }
}

source_set("qtwebengine_sources") {
  configs += [
    ":cpp17_config",
    "//skia:skia_config",
    "//third_party/boringssl:external_config",
  ]
  deps = [
    "//build:branding_buildflags",
    "//chrome/browser:dev_ui_browser_resources_grit",
    "//chrome/browser/resources/net_internals:resources",
    "//chrome/browser/resources/quota_internals:resources",
    "//chrome/common:buildflags",
    "//components/nacl/common:buildflags",
    "//components/performance_manager",
    "//components/plugins/renderer/",
    "//extensions/buildflags:buildflags",
    "//qtwebengine/common:mojo_bindings",
    "//rlz/buildflags:buildflags",
    "//third_party/blink/public/mojom:mojom_platform",
  ]
  sources = [
    "//chrome/browser/accessibility/accessibility_ui.cc",
    "//chrome/browser/accessibility/accessibility_ui.h",
    "//chrome/browser/custom_handlers/protocol_handler_registry.cc",
    "//chrome/browser/custom_handlers/protocol_handler_registry.h",
    "//chrome/browser/custom_handlers/protocol_handler_registry_factory.cc",
    "//chrome/browser/custom_handlers/protocol_handler_registry_factory.h",
    "//chrome/browser/devtools/devtools_eye_dropper.cc",
    "//chrome/browser/devtools/devtools_eye_dropper.h",
    "//chrome/browser/media/webrtc/desktop_media_list.h",
    "//chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc",
    "//chrome/browser/net/chrome_mojo_proxy_resolver_factory.h",
    "//chrome/browser/prefs/chrome_command_line_pref_store.cc",
    "//chrome/browser/prefs/chrome_command_line_pref_store.h",
    "//chrome/browser/profiles/profile.cc",
    "//chrome/browser/profiles/profile.h",
    "//chrome/browser/tab_contents/form_interaction_tab_helper.cc",
    "//chrome/browser/tab_contents/form_interaction_tab_helper.h",
    "//chrome/browser/tab_contents/web_contents_collection.cc",
    "//chrome/browser/tab_contents/web_contents_collection.h",
    "//chrome/browser/ui/webui/device_log_ui.cc",
    "//chrome/browser/ui/webui/device_log_ui.h",
    "//chrome/browser/ui/webui/devtools_ui.cc",
    "//chrome/browser/ui/webui/devtools_ui.h",
    "//chrome/browser/ui/webui/devtools_ui_data_source.cc",
    "//chrome/browser/ui/webui/devtools_ui_data_source.h",
    "//chrome/browser/ui/webui/net_internals/net_internals_ui.cc",
    "//chrome/browser/ui/webui/net_internals/net_internals_ui.h",
    "//chrome/browser/ui/webui/quota_internals/quota_internals_handler.cc",
    "//chrome/browser/ui/webui/quota_internals/quota_internals_handler.h",
    "//chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc",
    "//chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h",
    "//chrome/browser/ui/webui/quota_internals/quota_internals_types.cc",
    "//chrome/browser/ui/webui/quota_internals/quota_internals_types.h",
    "//chrome/browser/ui/webui/quota_internals/quota_internals_ui.cc",
    "//chrome/browser/ui/webui/quota_internals/quota_internals_ui.h",
    "//chrome/browser/ui/webui/user_actions/user_actions_ui.cc",
    "//chrome/browser/ui/webui/user_actions/user_actions_ui.h",
    "//chrome/browser/ui/webui/user_actions/user_actions_ui_handler.cc",
    "//chrome/browser/ui/webui/user_actions/user_actions_ui_handler.h",
    "//chrome/common/custom_handlers/protocol_handler.cc",
    "//chrome/common/custom_handlers/protocol_handler.h",
    "//chrome/browser/ui/webui/webui_util.cc",
    "//chrome/browser/ui/webui/webui_util.h",
    "//chrome/common/chrome_switches.cc",
    "//chrome/common/chrome_switches.h",
    "//chrome/common/pref_names.cc",
    "//chrome/common/pref_names.h",
    "//chrome/common/url_constants.cc",
    "//chrome/common/url_constants.h",
    "//chrome/common/webui_url_constants.cc",
    "//chrome/common/webui_url_constants.h",
  ]
  if (enable_extensions) {
    deps += [
      ":qtwebengine_extensions_features",
      "//chrome/app:generated_resources",
      "//chrome/browser/extensions/api:api_registration",
      "//chrome/browser/resources:component_extension_resources_grit",
      "//chrome/common/extensions/api",
      "//chrome/common/extensions/api:api",
      "//chrome/common/extensions/api:extensions_features",
      "//components/crx_file",
      "//components/crx_file:crx_creator",
      "//components/spellcheck:buildflags",
      "//extensions/buildflags:buildflags",
      "//extensions/common",
      "//extensions/common/api",
      "//extensions/common:core_api_provider",
      "//extensions/browser",
      "//extensions/browser/api",
      "//extensions/browser:core_api_provider",
      "//extensions/renderer",
      "//extensions:extensions_resources",
      "//extensions/strings",
      "//qtwebengine/browser/extensions/api:api_registration",
      "//qtwebengine/common/extensions/api:api",
    ]
    sources += [
      "//chrome/browser/extensions/api/streams_private/streams_private_api.cc",
      "//chrome/browser/extensions/api/streams_private/streams_private_api.h",
      "//chrome/browser/extensions/api/enterprise_hardware_platform/enterprise_hardware_platform_api.cc",
      "//chrome/browser/extensions/api/enterprise_hardware_platform/enterprise_hardware_platform_api.h",
      "//chrome/common/extensions/permissions/chrome_api_permissions.cc",
      "//chrome/common/extensions/permissions/chrome_api_permissions.h",
      "//chrome/common/extensions/permissions/chrome_permission_message_provider.cc",
      "//chrome/common/extensions/permissions/chrome_permission_message_provider.h",
      "//chrome/common/extensions/permissions/chrome_permission_message_rules.cc",
      "//chrome/common/extensions/permissions/chrome_permission_message_rules.h",
    ]
  } else {
    deps += [
      "//extensions/common:common_constants",
    ]
    sources += [
      "//extensions/common/url_pattern.cc",
      "//extensions/common/url_pattern.h",
    ]
  }
  if (is_linux) {
    sources += [
      "//chrome/browser/ui/webui/sandbox/sandbox_internals_ui.cc",
      "//chrome/browser/ui/webui/sandbox/sandbox_internals_ui.h",
    ]
  }
  if (enable_spellcheck) {
    deps += [
      ":qtwebengine_spellcheck_sources",
      "//chrome/tools/convert_dict:lib",
      "//third_party/hunspell",
    ]
  }
  if (enable_plugins) {
      sources += [
        "//chrome/renderer/pepper/pepper_flash_font_file_host.cc",
        "//chrome/renderer/pepper/pepper_flash_font_file_host.h",
        "//chrome/renderer/pepper/pepper_shared_memory_message_filter.cc",
        "//chrome/renderer/pepper/pepper_shared_memory_message_filter.h",
      ]
  }
  if (enable_basic_printing || enable_print_preview) {
    sources += [
      "//chrome/browser/printing/printer_query.cc",
      "//chrome/browser/printing/printer_query.h",
      "//chrome/browser/printing/print_job.cc",
      "//chrome/browser/printing/print_job.h",
      "//chrome/browser/printing/print_job_manager.cc",
      "//chrome/browser/printing/print_job_manager.h",
      "//chrome/browser/printing/print_job_worker.cc",
      "//chrome/browser/printing/print_job_worker.h",
    ]
    deps += [
      "//printing/buildflags:buildflags",
    ]
  }
  if (enable_pdf) {
      deps += [
         "//pdf",
         "//pdf:buildflags",
         "//pdf:pdf_ppapi",
         "//chrome/browser/resources/pdf:resources",
         "//components/pdf/browser:browser",
         "//components/pdf/renderer:renderer",
         "//components/printing/browser",
         "//components/printing/renderer",
      ]
  }

  if (enable_webrtc && enable_extensions) {
    deps += [
      "//chrome/browser/resources/media:webrtc_logs_resources",
      "//components/upload_list",
      "//components/webrtc_logging/browser",
      "//components/webrtc_logging/common",
    ]

    sources += [
      "//chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc",
      "//chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.h",
      "//chrome/browser/media/webrtc/audio_debug_recordings_handler.cc",
      "//chrome/browser/media/webrtc/audio_debug_recordings_handler.h",
      "//chrome/browser/media/webrtc/webrtc_event_log_history.cc",
      "//chrome/browser/media/webrtc/webrtc_event_log_history.h",
      "//chrome/browser/media/webrtc/webrtc_event_log_manager.cc",
      "//chrome/browser/media/webrtc/webrtc_event_log_manager.h",
      "//chrome/browser/media/webrtc/webrtc_event_log_manager_common.cc",
      "//chrome/browser/media/webrtc/webrtc_event_log_manager_common.h",
      "//chrome/browser/media/webrtc/webrtc_event_log_manager_local.cc",
      "//chrome/browser/media/webrtc/webrtc_event_log_manager_local.h",
      "//chrome/browser/media/webrtc/webrtc_event_log_manager_remote.cc",
      "//chrome/browser/media/webrtc/webrtc_event_log_manager_remote.h",
      "//chrome/browser/media/webrtc/webrtc_event_log_uploader.cc",
      "//chrome/browser/media/webrtc/webrtc_event_log_uploader.h",
      "//chrome/browser/media/webrtc/webrtc_log_buffer.cc",
      "//chrome/browser/media/webrtc/webrtc_log_buffer.h",
      "//chrome/browser/media/webrtc/webrtc_log_uploader.cc",
      "//chrome/browser/media/webrtc/webrtc_log_uploader.h",
      "//chrome/browser/media/webrtc/webrtc_logging_controller.cc",
      "//chrome/browser/media/webrtc/webrtc_logging_controller.h",
      "//chrome/browser/media/webrtc/webrtc_rtp_dump_handler.cc",
      "//chrome/browser/media/webrtc/webrtc_rtp_dump_handler.h",
      "//chrome/browser/media/webrtc/webrtc_rtp_dump_writer.cc",
      "//chrome/browser/media/webrtc/webrtc_rtp_dump_writer.h",
      "//chrome/browser/media/webrtc/webrtc_text_log_handler.cc",
      "//chrome/browser/media/webrtc/webrtc_text_log_handler.h",
      "//chrome/browser/ui/webui/media/webrtc_logs_ui.cc",
      "//chrome/browser/ui/webui/media/webrtc_logs_ui.h",
      "//chrome/renderer/media/webrtc_logging_agent_impl.cc",
      "//chrome/renderer/media/webrtc_logging_agent_impl.h",
    ]
  }
}

if (is_win) {
  static_library("QtWebEngineCoreSandbox") {
    complete_static_lib = true
    configs += [ ":cpp17_config",
                 ":QtWebEngineCore_config",
                 "//build/config:precompiled_headers"
    ]
    output_dir = "$root_out_dir"
    sources = [
      "@GN_SOURCE_ROOT@/sandbox_win.cpp"
    ]
    public_deps = [ "//sandbox/win:sandbox" ]
  }
}

group("qtwebengine_resources") {
  deps = [
      "//chrome/app:generated_resources",
      "//chrome/browser:resources",
      "//chrome/browser/resources:component_extension_resources",
      "//chrome/common:resources",
      "//components/resources:components_resources",
      ":qtwebengine_repack_resources",
      ":qtwebengine_repack_resources_100",
      ":qtwebengine_repack_resources_200",
      ":qtwebengine_repack_resources_devtools",
      ":qtwebengine_repack_locales_pack"
   ]
}

repack("qtwebengine_repack_resources") {
  sources = [
    "$root_gen_dir/qtwebengine/qt_webengine_resources.pak",
    "$root_gen_dir/chrome/common_resources.pak",
    "$root_gen_dir/chrome/dev_ui_browser_resources.pak",
    "$root_gen_dir/chrome/net_internals_resources.pak",
    "$root_gen_dir/chrome/quota_internals_resources.pak",
    "$root_gen_dir/components/components_resources.pak",
    "$root_gen_dir/components/dev_ui_components_resources.pak",
    "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
    "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
    "$root_gen_dir/content/content_resources.pak",
    "$root_gen_dir/content/dev_ui_content_resources.pak",
    "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
    "$root_gen_dir/net/net_resources.pak",
    "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
    "$root_gen_dir/ui/resources/webui_resources.pak",
    "$root_gen_dir/ui/resources/webui_generated_resources.pak",
  ]
  output = "$root_out_dir/qtwebengine_resources.pak"
  deps = [
     "//qtwebengine/browser:qt_webengine_resources",
     "//chrome/browser:dev_ui_browser_resources_grit",
     "//chrome/browser/resources/net_internals:resources",
     "//chrome/browser/resources/quota_internals:resources",
     "//chrome/common:resources_grit",
     "//components/resources:components_resources_grit",
     "//components/resources:dev_ui_components_resources_grit",
     "//content/browser/resources/media:resources",
     "//content/browser/tracing:resources",
     "//content:content_resources_grit",
     "//content:dev_ui_content_resources_grit",
     "//mojo/public/js:resources",
     "//net:net_resources_grit",
     "//third_party/blink/public:resources_grit",
     "//ui/resources:webui_resources_grd_grit",
     "//ui/resources:webui_generated_resources_grd",
  ]
  if (enable_extensions) {
    sources += [
      "$root_gen_dir/chrome/component_extension_resources.pak",
      "$root_gen_dir/extensions/extensions_renderer_resources.pak",
      "$root_gen_dir/extensions/extensions_resources.pak",
    ]
    deps += [
      "//chrome/browser/resources:component_extension_resources_grit",
      "//extensions:extensions_renderer_resources_grit",
      "//extensions:extensions_resources_grd_grit",
    ]
  }
  if (enable_webrtc) {
    sources += [
      "$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak",
    ]
    deps += [
      "//content/browser/webrtc/resources",
    ]
  }
  if (enable_webrtc && enable_extensions) {
    sources += [
      "$root_gen_dir/chrome/webrtc_logs_resources.pak",
    ]
    deps += [
      "//chrome/browser/resources/media:webrtc_logs_resources",
    ]
  }
  if (enable_pdf) {
    sources += [
      "$root_gen_dir/chrome/pdf_resources.pak",
    ]
    deps += [
      "//chrome/browser/resources/pdf:resources",
    ]
  }
}

repack("qtwebengine_repack_resources_100") {
  sources = [
    "$root_gen_dir/chrome/renderer_resources_100_percent.pak",
    "$root_gen_dir/components/components_resources_100_percent.pak",
    "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
    "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_100_percent.pak",
    "$root_gen_dir/ui/resources/ui_resources_100_percent.pak",
  ]
  output = "$root_out_dir/qtwebengine_resources_100p.pak"
  deps = [
    "//chrome/renderer:resources_grit",
    "//components/resources:components_scaled_resources_grit",
    "//content/app/resources:resources_grit",
    "//third_party/blink/public:scaled_resources_100_percent",
    "//ui/resources:ui_resources_grd_grit"
  ]
  if (enable_extensions) {
    sources += [
      "$root_gen_dir/extensions/extensions_browser_resources_100_percent.pak"
    ]
    deps += [
      "//extensions:extensions_browser_resources_grit"
    ]
  }
}

repack("qtwebengine_repack_resources_200") {
  sources = [
    "$root_gen_dir/chrome/renderer_resources_200_percent.pak",
    "$root_gen_dir/components/components_resources_200_percent.pak",
    "$root_gen_dir/content/app/resources/content_resources_200_percent.pak",
    "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_200_percent.pak",
    "$root_gen_dir/ui/resources/ui_resources_200_percent.pak",
  ]
  output = "$root_out_dir/qtwebengine_resources_200p.pak"
  deps = [
    "//chrome/renderer:resources_grit",
    "//components/resources:components_scaled_resources_grit",
    "//content/app/resources:resources_grit",
    "//third_party/blink/public:scaled_resources_200_percent",
    "//ui/resources:ui_resources_grd_grit"
  ]
  if (enable_extensions) {
    sources += [
      "$root_gen_dir/extensions/extensions_browser_resources_200_percent.pak"
    ]
    deps += [
      "//extensions:extensions_browser_resources_grit"
    ]
  }
}

repack("qtwebengine_repack_resources_devtools") {
  sources = [
    "$root_gen_dir/content/browser/devtools/devtools_resources.pak",
  ]
  output = "$root_out_dir/qtwebengine_devtools_resources.pak"
  deps = [
    "//content/browser/devtools:devtools_resources_grit",
  ]
}

chrome_repack_locales("qtwebengine_repack_locales_pack") {
  input_locales = locales
  output_dir = "$root_out_dir/qtwebengine_locales"
  output_locales = locales
}

if (enable_extensions) {
  import("//tools/json_schema_compiler/json_features.gni")
  json_features("qt_api_features") {
    feature_type = "APIFeature"
    method_name = "AddQtAPIFeatures"
    sources = [
      "//extensions/common/api/_webengine_api_features.json"
    ]
  }
  json_features("qt_permission_features") {
    feature_type = "PermissionFeature"
    method_name = "AddQtPermissionFeatures"
    sources = [
      "//chrome/common/extensions/api/_permission_features.json",
      "//extensions/common/api/_permission_features.json",
    ]
  }
  group("qtwebengine_extensions_features") {
    public_deps = [
      ":qt_api_features",
      ":qt_permission_features",
      "//chrome/common/extensions/api:extensions_features",
      "//extensions/common/api:extensions_features",
  ]
  }
}

if (enable_spellcheck) {
  shared_library("convert_dict") {
    rsp_types = [ "objects", "archives", "libs" ]
    configs += [ "//build/config/compiler:wexit_time_destructors" ]
    deps = [
      "//chrome/tools/convert_dict:lib",
      "//base",
      "//base:i18n",
      "//third_party/hunspell",
    ]
  }
}