Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Side by Side Diff: headless/BUILD.gn

Issue 2762593002: Add --headless flag to Windows (Closed)
Patch Set: added TODO Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/app/chrome_main.cc ('k') | headless/DEPS » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/chrome_build.gni") 5 import("//build/config/chrome_build.gni")
6 import("//build/util/process_version.gni") 6 import("//build/util/process_version.gni")
7 import("//headless/headless.gni") 7 import("//headless/headless.gni")
8 import("//mojo/public/tools/bindings/mojom.gni") 8 import("//mojo/public/tools/bindings/mojom.gni")
9 import("//printing/features/features.gni") 9 import("//printing/features/features.gni")
10 import("//testing/test.gni") 10 import("//testing/test.gni")
11 import("//tools/grit/grit_rule.gni") 11 import("//tools/grit/grit_rule.gni")
12 import("//tools/grit/repack.gni") 12 import("//tools/grit/repack.gni")
13 13
14 config("headless_implementation") { 14 config("headless_implementation") {
15 defines = [ "HEADLESS_IMPLEMENTATION" ] 15 defines = [ "HEADLESS_IMPLEMENTATION" ]
16 16
17 if (headless_use_embedded_resources) { 17 if (headless_use_embedded_resources) {
18 defines += [ "HEADLESS_USE_EMBEDDED_RESOURCES" ] 18 defines += [ "HEADLESS_USE_EMBEDDED_RESOURCES" ]
19 } 19 }
20 } 20 }
21 21
22 group("headless") { 22 group("headless_lib") {
23 deps = [ 23 deps = [
24 ":headless_lib", 24 ":headless",
25 ] 25 ]
26 } 26 }
27 27
28 repack("pak") { 28 repack("pak") {
29 sources = [ 29 sources = [
30 "$root_gen_dir/blink/public/resources/blink_image_resources_100_percent.pak" , 30 "$root_gen_dir/blink/public/resources/blink_image_resources_100_percent.pak" ,
31 "$root_gen_dir/blink/public/resources/blink_resources.pak", 31 "$root_gen_dir/blink/public/resources/blink_resources.pak",
32 "$root_gen_dir/components/components_resources.pak", 32 "$root_gen_dir/components/components_resources.pak",
33 "$root_gen_dir/components/strings/components_strings_en-US.pak", 33 "$root_gen_dir/components/strings/components_strings_en-US.pak",
34 "$root_gen_dir/content/app/resources/content_resources_100_percent.pak", 34 "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 ] 193 ]
194 194
195 args = [ 195 args = [
196 "--protocol", 196 "--protocol",
197 rebase_path(inputs[0], root_build_dir), 197 rebase_path(inputs[0], root_build_dir),
198 "--output_dir", 198 "--output_dir",
199 rebase_path(target_gen_dir) + "/public", 199 rebase_path(target_gen_dir) + "/public",
200 ] 200 ]
201 } 201 }
202 202
203 static_library("headless_lib") { 203 component("headless") {
204 sources = [ 204 sources = [
205 "app/headless_shell_switches.cc", 205 "app/headless_shell_switches.cc",
206 "app/headless_shell_switches.h", 206 "app/headless_shell_switches.h",
207 "lib/browser/headless_browser_context_impl.cc", 207 "lib/browser/headless_browser_context_impl.cc",
208 "lib/browser/headless_browser_context_impl.h", 208 "lib/browser/headless_browser_context_impl.h",
209 "lib/browser/headless_browser_context_options.cc", 209 "lib/browser/headless_browser_context_options.cc",
210 "lib/browser/headless_browser_context_options.h", 210 "lib/browser/headless_browser_context_options.h",
211 "lib/browser/headless_browser_impl.cc", 211 "lib/browser/headless_browser_impl.cc",
212 "lib/browser/headless_browser_impl.h", 212 "lib/browser/headless_browser_impl.h",
213 "lib/browser/headless_browser_impl_mac.mm", 213 "lib/browser/headless_browser_impl_mac.mm",
214 "lib/browser/headless_browser_main_parts.cc", 214 "lib/browser/headless_browser_main_parts.cc",
215 "lib/browser/headless_browser_main_parts.h", 215 "lib/browser/headless_browser_main_parts.h",
216 "lib/browser/headless_browser_main_parts_mac.mm", 216 "lib/browser/headless_browser_main_parts_mac.mm",
217 "lib/browser/headless_content_browser_client.cc",
218 "lib/browser/headless_content_browser_client.h",
219 "lib/browser/headless_devtools.cc", 217 "lib/browser/headless_devtools.cc",
220 "lib/browser/headless_devtools.h", 218 "lib/browser/headless_devtools.h",
221 "lib/browser/headless_devtools_client_impl.cc", 219 "lib/browser/headless_devtools_client_impl.cc",
222 "lib/browser/headless_devtools_client_impl.h", 220 "lib/browser/headless_devtools_client_impl.h",
223 "lib/browser/headless_devtools_manager_delegate.cc", 221 "lib/browser/headless_devtools_manager_delegate.cc",
224 "lib/browser/headless_devtools_manager_delegate.h", 222 "lib/browser/headless_devtools_manager_delegate.h",
225 "lib/browser/headless_net_log.cc", 223 "lib/browser/headless_net_log.cc",
226 "lib/browser/headless_net_log.h", 224 "lib/browser/headless_net_log.h",
227 "lib/browser/headless_network_delegate.cc", 225 "lib/browser/headless_network_delegate.cc",
228 "lib/browser/headless_network_delegate.h", 226 "lib/browser/headless_network_delegate.h",
229 "lib/browser/headless_permission_manager.cc", 227 "lib/browser/headless_permission_manager.cc",
230 "lib/browser/headless_permission_manager.h", 228 "lib/browser/headless_permission_manager.h",
231 "lib/browser/headless_platform_event_source.cc", 229 "lib/browser/headless_platform_event_source.cc",
232 "lib/browser/headless_platform_event_source.h", 230 "lib/browser/headless_platform_event_source.h",
233 "lib/browser/headless_resource_dispatcher_host_delegate.cc", 231 "lib/browser/headless_resource_dispatcher_host_delegate.cc",
234 "lib/browser/headless_resource_dispatcher_host_delegate.h", 232 "lib/browser/headless_resource_dispatcher_host_delegate.h",
235 "lib/browser/headless_shell_application_mac.h", 233 "lib/browser/headless_shell_application_mac.h",
236 "lib/browser/headless_shell_application_mac.mm", 234 "lib/browser/headless_shell_application_mac.mm",
237 "lib/browser/headless_tab_socket_impl.cc", 235 "lib/browser/headless_tab_socket_impl.cc",
238 "lib/browser/headless_tab_socket_impl.h", 236 "lib/browser/headless_tab_socket_impl.h",
239 "lib/browser/headless_url_request_context_getter.cc", 237 "lib/browser/headless_url_request_context_getter.cc",
240 "lib/browser/headless_url_request_context_getter.h", 238 "lib/browser/headless_url_request_context_getter.h",
241 "lib/browser/headless_web_contents_impl.cc",
242 "lib/browser/headless_web_contents_impl.h",
243 "lib/browser/headless_window_tree_host.h", 239 "lib/browser/headless_window_tree_host.h",
244 "lib/headless_content_client.cc", 240 "lib/headless_content_client.cc",
245 "lib/headless_content_client.h", 241 "lib/headless_content_client.h",
246 "lib/headless_content_main_delegate.cc",
247 "lib/headless_content_main_delegate.h",
248 "lib/headless_crash_reporter_client.cc", 242 "lib/headless_crash_reporter_client.cc",
249 "lib/headless_crash_reporter_client.h", 243 "lib/headless_crash_reporter_client.h",
250 "lib/renderer/headless_content_renderer_client.cc",
251 "lib/renderer/headless_content_renderer_client.h",
252 "public/headless_browser.cc", 244 "public/headless_browser.cc",
253 "public/headless_browser.h", 245 "public/headless_browser.h",
254 "public/headless_browser_context.h", 246 "public/headless_browser_context.h",
255 "public/headless_devtools_client.h", 247 "public/headless_devtools_client.h",
256 "public/headless_devtools_target.h", 248 "public/headless_devtools_target.h",
257 "public/headless_export.h", 249 "public/headless_export.h",
258 "public/headless_web_contents.h", 250 "public/headless_web_contents.h",
259 "public/internal/message_dispatcher.h", 251 "public/internal/message_dispatcher.h",
260 "public/internal/value_conversions.h", 252 "public/internal/value_conversions.h",
261 "public/util/black_hole_protocol_handler.cc", 253 "public/util/black_hole_protocol_handler.cc",
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 "lib/renderer/headless_print_web_view_helper_delegate.h", 309 "lib/renderer/headless_print_web_view_helper_delegate.h",
318 ] 310 ]
319 } 311 }
320 312
321 public_deps = [ 313 public_deps = [
322 "//base", 314 "//base",
323 "//net", 315 "//net",
324 ] 316 ]
325 317
326 if (enable_basic_printing) { 318 if (enable_basic_printing) {
327 public_deps += [ "//components/printing/browser" ] 319 public_deps += [ "//skia" ]
328 } 320 }
329 321
330 deps = [ 322 deps = [
331 ":gen_devtools_client_api", 323 ":gen_devtools_client_api",
332 ":tab_socket", 324 ":tab_socket",
333 ":version_header", 325 ":version_header",
334 "//components/crash/content/browser",
335 "//components/security_state/content",
336 "//components/security_state/core", 326 "//components/security_state/core",
337 "//content/public/app:both",
338 "//content/public/browser",
339 "//content/public/child:child",
340 "//content/public/common", 327 "//content/public/common",
341 "//content/public/common:service_names", 328 "//content/public/common:service_names",
342 "//services/service_manager/public/cpp", 329 "//services/service_manager/public/cpp",
343 "//third_party/mesa:osmesa", 330 "//third_party/mesa:osmesa",
344 "//ui/base", 331 "//ui/base",
345 "//ui/compositor", 332 "//ui/compositor",
346 "//ui/display", 333 "//ui/display",
347 "//ui/events/devices", 334 "//ui/events/devices",
348 "//url", 335 "//url",
349 ] 336 ]
350 337
338 if (is_component_build) {
339 sources += [
340 "lib/browser/headless_content_browser_client.cc",
341 "lib/browser/headless_content_browser_client.h",
342 "lib/browser/headless_web_contents_impl.cc",
343 "lib/browser/headless_web_contents_impl.h",
344 "lib/headless_content_main_delegate.cc",
345 "lib/headless_content_main_delegate.h",
346 "lib/renderer/headless_content_renderer_client.cc",
347 "lib/renderer/headless_content_renderer_client.h",
348 ]
349
350 deps += [
351 "//components/crash/content/browser",
352 "//components/security_state/content",
353 ]
354
355 if (enable_basic_printing) {
356 deps += [
357 "//components/printing/browser",
358 "//components/printing/renderer",
359 ]
360 }
361 }
362
351 if (is_mac) { 363 if (is_mac) {
352 deps += [ ":mac_helpers" ] 364 deps += [ ":mac_helpers" ]
353 } else { 365 } else {
354 deps += [ "//ui/aura" ] 366 deps += [ "//ui/aura" ]
355 } 367 }
356 368
357 if (enable_basic_printing) {
358 deps += [ "//components/printing/renderer" ]
359 }
360
361 if (headless_use_embedded_resources) { 369 if (headless_use_embedded_resources) {
362 deps += [ ":embed_resources" ] 370 deps += [ ":embed_resources" ]
363 sources += [ 371 sources += [
364 "$root_gen_dir/headless/embedded_resource_pak.cc", 372 "$root_gen_dir/headless/embedded_resource_pak.cc",
365 "$root_gen_dir/headless/embedded_resource_pak.h", 373 "$root_gen_dir/headless/embedded_resource_pak.h",
366 ] 374 ]
367 } else { 375 } else {
368 deps += [ ":pak" ] 376 deps += [ ":pak" ]
369 } 377 }
370 378
371 if (use_ozone) { 379 if (use_ozone) {
372 deps += [ "//ui/ozone" ] 380 deps += [ "//ui/ozone" ]
373 } 381 }
374 382
375 configs += [ ":headless_implementation" ] 383 configs += [ ":headless_implementation" ]
376 } 384 }
377 385
386 # Headless renderer is a convenience library that includes headless classes
387 # that depend on the renderer. These are not added in case of a component build
388 # since in that case they are already included in the headless component.
389 static_library("headless_renderer") {
390 deps = [
391 ":headless",
392 ]
393 if (!is_component_build) {
394 sources = [
395 "lib/browser/headless_web_contents_impl.cc",
396 "lib/browser/headless_web_contents_impl.h",
397 "lib/headless_content_main_delegate.cc",
398 "lib/headless_content_main_delegate.h",
399 "lib/renderer/headless_content_renderer_client.cc",
400 "lib/renderer/headless_content_renderer_client.h",
401 ]
402 deps += [ "//ui/base" ]
403 if (enable_basic_printing) {
404 deps += [ "//components/printing/renderer" ]
405 }
406 configs += [ ":headless_implementation" ]
407 }
408 }
409
378 group("headless_tests") { 410 group("headless_tests") {
379 testonly = true 411 testonly = true
380 412
381 deps = [ 413 deps = [
382 ":headless_browsertests", 414 ":headless_browsertests",
383 ":headless_example", 415 ":headless_example",
384 ":headless_unittests", 416 ":headless_unittests",
385 ] 417 ]
386 } 418 }
387 419
388 test("headless_unittests") { 420 test("headless_unittests") {
389 sources = [ 421 sources = [
390 "public/domains/types_unittest.cc", 422 "public/domains/types_unittest.cc",
391 "public/util/deterministic_dispatcher_test.cc", 423 "public/util/deterministic_dispatcher_test.cc",
392 "public/util/error_reporter_unittest.cc", 424 "public/util/error_reporter_unittest.cc",
393 "public/util/expedited_dispatcher_test.cc", 425 "public/util/expedited_dispatcher_test.cc",
394 "public/util/generic_url_request_job_test.cc", 426 "public/util/generic_url_request_job_test.cc",
395 "public/util/testing/fake_managed_dispatch_url_request_job.cc", 427 "public/util/testing/fake_managed_dispatch_url_request_job.cc",
396 "public/util/testing/fake_managed_dispatch_url_request_job.h", 428 "public/util/testing/fake_managed_dispatch_url_request_job.h",
397 ] 429 ]
398 430
431 if (is_component_build) {
432 deps = [
433 ":headless",
434 ]
435 } else {
436 sources += [
437 "lib/browser/headless_content_browser_client.cc",
438 "lib/browser/headless_content_browser_client.h",
439 ]
440
441 deps = [
442 ":headless_renderer",
443 ]
444 }
445
446 deps += [
447 "//base/test:run_all_unittests",
448 "//base/test:test_support",
449 "//components/crash/content/browser",
450 "//components/security_state/content",
451 "//content/public/app:both",
452 "//content/public/child:child",
453 "//content/public/common",
454 "//testing/gmock",
455 "//testing/gtest",
456 ]
457
399 if (enable_basic_printing) { 458 if (enable_basic_printing) {
400 sources += [ "lib/browser/headless_printing_unittest.cc" ] 459 sources += [ "lib/browser/headless_printing_unittest.cc" ]
460 deps += [ "//components/printing/browser" ]
401 } 461 }
402
403 deps = [
404 ":headless_lib",
405 "//base/test:run_all_unittests",
406 "//base/test:test_support",
407 "//testing/gmock",
408 "//testing/gtest",
409 ]
410 } 462 }
411 463
412 if (is_mac) { 464 if (is_mac) {
413 copy("mac_helpers") { 465 copy("mac_helpers") {
414 sources = [ 466 sources = [
415 "$root_out_dir/crashpad_handler", 467 "$root_out_dir/crashpad_handler",
416 ] 468 ]
417 469
418 deps = [ 470 deps = [
419 "//third_party/crashpad/crashpad/handler:crashpad_handler", 471 "//third_party/crashpad/crashpad/handler:crashpad_handler",
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 "//third_party/tlslite/", 504 "//third_party/tlslite/",
453 "test/data/", 505 "test/data/",
454 ] 506 ]
455 507
456 if (is_mac) { 508 if (is_mac) {
457 data += [ "$root_out_dir/Helpers/crashpad_handler" ] 509 data += [ "$root_out_dir/Helpers/crashpad_handler" ]
458 } 510 }
459 511
460 defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] 512 defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
461 513
462 deps = [ 514 if (is_component_build) {
463 ":headless_lib", 515 deps = [
516 ":headless",
517 ]
518 } else {
519 sources += [
520 "lib/browser/headless_content_browser_client.cc",
521 "lib/browser/headless_content_browser_client.h",
522 ]
523
524 deps = [
525 ":headless_renderer",
526 ]
527 }
528
529 deps += [
464 "//base", 530 "//base",
531 "//components/crash/content/browser",
532 "//components/security_state/content",
465 "//content/test:test_support", 533 "//content/test:test_support",
466 "//testing/gmock", 534 "//testing/gmock",
467 "//testing/gtest", 535 "//testing/gtest",
468 ] 536 ]
469 537
470 if (enable_basic_printing) { 538 if (enable_basic_printing) {
471 deps += [ "//pdf" ] 539 deps += [
540 "//components/printing/browser",
541 "//pdf",
542 ]
472 } 543 }
473 } 544 }
474 545
546 if (is_win) {
547 # Headless library with only browser dependencies. This is used when no child
548 # dependencies are needed in the target (e.g. chrome:main_dll).
549 static_library("headless_shell_browser_lib") {
550 sources = [
551 "app/headless_shell.cc",
552 "app/headless_shell.h",
553 "app/headless_shell_switches.cc",
554 "app/headless_shell_switches.h",
555 "app/shell_navigation_request.cc",
556 "app/shell_navigation_request.h",
557 "lib/browser/headless_content_browser_client.cc",
558 "lib/browser/headless_content_browser_client.h",
559 "public/headless_shell.h",
560 ]
561
562 if (is_multi_dll_chrome) {
563 defines = [ "CHROME_MULTIPLE_DLL_BROWSER" ]
564 sources += [
565 "lib/browser/headless_web_contents_impl.cc",
566 "lib/browser/headless_web_contents_impl.h",
567 "lib/headless_content_main_delegate.cc",
568 "lib/headless_content_main_delegate.h",
569 ]
570 }
571
572 deps = [
573 ":headless",
574 "//content/public/browser",
575 "//content/public/common",
576 "//net",
577 ]
578
579 if (is_win) {
580 deps += [
581 "//content:sandbox_helper_win",
582 "//sandbox",
583 ]
584 }
585
586 configs += [ ":headless_implementation" ]
587 }
588
589 # Headless library with child specific dependencies (e.g., renderer). This
590 # is used when no browser depencendies are needed (e.g. chrome:child_dll).
591 static_library("headless_shell_child_lib") {
592 sources = [
593 "app/headless_shell.cc",
594 "app/headless_shell.h",
595 "app/headless_shell_switches.cc",
596 "app/headless_shell_switches.h",
597 "app/shell_navigation_request.cc",
598 "app/shell_navigation_request.h",
599 "public/headless_shell.h",
600 ]
601
602 if (is_multi_dll_chrome) {
603 defines = [ "CHROME_MULTIPLE_DLL_CHILD" ]
604 sources += [
605 "lib/browser/headless_web_contents_impl.cc",
606 "lib/browser/headless_web_contents_impl.h",
607 "lib/headless_content_main_delegate.cc",
608 "lib/headless_content_main_delegate.h",
609 ]
610 }
611
612 deps = [
613 ":headless_renderer",
614 "//content/public/child:child",
615 "//net",
616 "//ui/base",
617 ]
618
619 configs += [ ":headless_implementation" ]
620 }
621 }
622
623 # Headless library with all included dependencies. Use this library unless you
624 # have browser/child dependencies restrictions.
475 static_library("headless_shell_lib") { 625 static_library("headless_shell_lib") {
476 sources = [ 626 sources = [
477 "app/headless_shell.cc", 627 "app/headless_shell.cc",
478 "app/headless_shell.h", 628 "app/headless_shell.h",
479 "app/headless_shell_switches.cc", 629 "app/headless_shell_switches.cc",
480 "app/headless_shell_switches.h", 630 "app/headless_shell_switches.h",
481 "app/shell_navigation_request.cc", 631 "app/shell_navigation_request.cc",
482 "app/shell_navigation_request.h", 632 "app/shell_navigation_request.h",
633 "lib/browser/headless_content_browser_client.cc",
634 "lib/browser/headless_content_browser_client.h",
483 "public/headless_shell.h", 635 "public/headless_shell.h",
484 ] 636 ]
485 637
486 deps = [ 638 if (is_component_build) {
487 ":headless_lib", 639 deps = [
640 ":headless",
641 ]
642 } else {
643 deps = [
644 ":headless_renderer",
645 ]
646 }
647
648 deps += [
649 "//components/crash/content/browser",
650 "//components/security_state/content",
651 "//content/public/app:both",
652 "//content/public/browser",
653 "//content/public/child:child",
654 "//content/public/common",
488 ] 655 ]
489 656
490 configs += [ ":headless_implementation" ] 657 if (enable_basic_printing) {
658 deps += [
659 "//components/printing/browser",
660 "//components/printing/renderer",
661 ]
662 }
663
664 if (is_win) {
665 deps += [
666 "//content:sandbox_helper_win",
667 "//sandbox",
668 ]
669 }
491 } 670 }
492 671
493 executable("headless_shell") { 672 executable("headless_shell") {
494 sources = [ 673 sources = [
495 "app/headless_shell_main.cc", 674 "app/headless_shell_main.cc",
496 ] 675 ]
497 676
498 deps = [ 677 deps = [
499 ":headless_shell_lib", 678 ":headless_shell_lib",
500 ] 679 ]
501 680
502 if (is_win) { 681 if (is_win) {
503 deps += [ 682 deps += [ "//build/win:default_exe_manifest" ]
504 "//build/win:default_exe_manifest",
505 "//content:sandbox_helper_win",
506 "//sandbox",
507 ]
508 } 683 }
509
510 configs += [ ":headless_implementation" ]
511 } 684 }
512 685
513 process_version("version_header") { 686 process_version("version_header") {
514 template_file = "public/version.h.in" 687 template_file = "public/version.h.in"
515 sources = [ 688 sources = [
516 "//build/util/LASTCHANGE", 689 "//build/util/LASTCHANGE",
517 "//chrome/VERSION", 690 "//chrome/VERSION",
518 ] 691 ]
519 output = "$target_gen_dir/public/version.h" 692 output = "$target_gen_dir/public/version.h"
520 } 693 }
521 694
522 executable("headless_example") { 695 executable("headless_example") {
523 sources = [ 696 sources = [
524 "app/headless_example.cc", 697 "app/headless_example.cc",
525 ] 698 ]
526 699
527 deps = [ 700 deps = [
528 ":headless_shell_lib", 701 ":headless_shell_lib",
529 ] 702 ]
530 } 703 }
OLDNEW
« no previous file with comments | « chrome/app/chrome_main.cc ('k') | headless/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698