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
3 # found in the LICENSE file.
5 import("//build/config/c++/c++.gni")
6 import("//build/config/chrome_build.gni")
7 import("//build/config/python.gni")
8 import("//build/util/lastchange.gni")
9 import("//build/util/process_version.gni")
10 import("//headless/headless.gni")
11 import("//mojo/public/tools/bindings/mojom.gni")
12 import("//printing/buildflags/buildflags.gni")
13 import("//testing/test.gni")
14 import("//third_party/closure_compiler/compile_js.gni")
15 import("//third_party/inspector_protocol/inspector_protocol.gni")
16 import("//tools/grit/grit_rule.gni")
17 import("//tools/grit/repack.gni")
18 import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
20 if (headless_use_policy) {
21 assert(headless_use_prefs,
22 "'headless_use_policy' requires 'headless_use_prefs'.")
25 # Headless defines config applied to every target below.
26 config("headless_defines_config") {
29 if (headless_use_prefs) {
30 defines += [ "HEADLESS_USE_PREFS" ]
33 if (headless_use_policy) {
34 defines += [ "HEADLESS_USE_POLICY" ]
38 # For code inside the build component "headless".
39 config("inside_headless_component") {
40 defines = [ "HEADLESS_IMPLEMENTATION" ]
43 group("headless_lib") {
44 deps = [ ":headless_non_renderer" ]
49 "$root_gen_dir/components/components_resources.pak",
50 "$root_gen_dir/components/strings/components_strings_en-US.pak",
51 "$root_gen_dir/content/app/resources/content_resources_100_percent.pak",
52 "$root_gen_dir/content/browser/tracing/tracing_resources.pak",
53 "$root_gen_dir/content/content_resources.pak",
54 "$root_gen_dir/content/dev_ui_content_resources.pak",
55 "$root_gen_dir/headless/headless_lib_resources.pak",
56 "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
57 "$root_gen_dir/net/net_resources.pak",
58 "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak",
59 "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_100_percent.pak",
60 "$root_gen_dir/third_party/blink/public/strings/blink_strings_en-US.pak",
61 "$root_gen_dir/ui/resources/ui_resources_100_percent.pak",
62 "$root_gen_dir/ui/resources/webui_generated_resources.pak",
63 "$root_gen_dir/ui/resources/webui_resources.pak",
64 "$root_gen_dir/ui/strings/app_locale_settings_en-US.pak",
65 "$root_gen_dir/ui/strings/ui_strings_en-US.pak",
68 if (is_chrome_branded) {
69 sources += [ "${root_gen_dir}/components/strings/components_google_chrome_strings_en-US.pak" ]
71 sources += [ "${root_gen_dir}/components/strings/components_chromium_strings_en-US.pak" ]
76 "//components/resources:components_resources",
77 "//components/strings",
78 "//content:content_resources",
79 "//content:dev_ui_content_resources",
80 "//content/app/resources",
81 "//content/browser/tracing:resources",
82 "//mojo/public/js:resources",
83 "//net:net_resources",
84 "//third_party/blink/public:resources",
85 "//third_party/blink/public:scaled_resources_100_percent",
86 "//third_party/blink/public/strings",
93 [ "$root_gen_dir/content/browser/devtools/devtools_resources.pak" ]
94 deps += [ "//content/browser/devtools:devtools_resources" ]
97 output = "$root_out_dir/headless_lib.pak"
100 action("embed_resources") {
101 # TODO(altimin): Consider zipping file here, it can reduce size up to 80%.
102 script = "lib/embed_data.py"
104 inputs = [ "$root_out_dir/headless_lib.pak" ]
107 "$root_gen_dir/headless/embedded_resource_pak.cc",
108 "$root_gen_dir/headless/embedded_resource_pak.h",
113 rebase_path("$root_out_dir/headless_lib.pak", root_build_dir),
115 rebase_path("$root_gen_dir", root_build_dir),
117 "headless/embedded_resource_pak.h",
119 "headless/embedded_resource_pak.cc",
123 "kHeadlessResourcePak",
130 source = "lib/resources/headless_lib_resources.grd"
132 "grit/headless_lib_resources.h",
133 "$root_gen_dir/headless/headless_lib_resources.pak",
147 "device_orientation",
154 "headless_experimental",
174 generated_devtools_api = []
175 foreach(domain, devtools_domains) {
176 generated_devtools_api += [
177 "$target_gen_dir/public/devtools/domains/" + domain + ".cc",
178 "$target_gen_dir/public/devtools/domains/" + domain + ".h",
179 "$target_gen_dir/public/devtools/domains/types_" + domain + ".h",
180 "$target_gen_dir/public/devtools/domains/types_" + domain + ".cc",
181 "$target_gen_dir/public/devtools/internal/type_conversions_" + domain +
183 "$target_gen_dir/public/devtools/internal/" +
184 "types_forward_declarations_" + domain + ".h",
188 action("gen_devtools_client_api") {
189 script = "lib/browser/devtools_api/client_api_generator.py"
190 deps = [ "//third_party/blink/public/devtools_protocol:protocol_version" ]
192 "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
195 outputs = generated_devtools_api
197 "lib/browser/devtools_api/domain_cc.template",
198 "lib/browser/devtools_api/domain_h.template",
199 "lib/browser/devtools_api/domain_type_conversions_h.template",
200 "lib/browser/devtools_api/domain_types_cc.template",
201 "lib/browser/devtools_api/domain_types_forward_declarations_h.template",
202 "lib/browser/devtools_api/domain_types_h.template",
207 rebase_path(inputs[0], root_build_dir),
209 rebase_path(target_gen_dir, root_build_dir) + "/public",
213 if (headless_fontconfig_utils && !is_fuchsia) {
214 static_library("headless_fontconfig_utils") {
216 "public/util/fontconfig.cc",
217 "public/util/fontconfig.h",
221 "//build/config/freetype",
222 "//third_party/fontconfig",
225 configs += [ ":inside_headless_component" ]
229 inspector_protocol_generate("protocol_sources") {
230 visibility = [ "//headless:headless_shared_sources" ]
231 deps = [ "//third_party/blink/public/devtools_protocol:protocol_version" ]
232 _blink_protocol_path = rebase_path(
233 "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
236 inspector_protocol_dir = "//third_party/inspector_protocol"
237 out_dir = target_gen_dir
238 config_file = "protocol_config.json"
239 config_values = [ "protocol.path=$_blink_protocol_path" ]
242 "$root_gen_dir/third_party/blink/public/devtools_protocol/protocol.json",
246 # These are relative to $target_gen_dir.
248 "lib/browser/protocol/base_string_adapter.cc",
249 "lib/browser/protocol/base_string_adapter.h",
250 "lib/browser/protocol/dp_browser.cc",
251 "lib/browser/protocol/dp_browser.h",
252 "lib/browser/protocol/dp_headless_experimental.cc",
253 "lib/browser/protocol/dp_headless_experimental.h",
254 "lib/browser/protocol/dp_page.cc",
255 "lib/browser/protocol/dp_page.h",
256 "lib/browser/protocol/dp_target.cc",
257 "lib/browser/protocol/dp_target.h",
258 "lib/browser/protocol/protocol.cc",
259 "lib/browser/protocol/protocol.h",
263 # Code needed in both processes. Only exposed through the |headless_renderer|
264 # target and the |headless_non_renderer| component.
265 source_set("headless_shared_sources") {
267 ":headless_non_renderer",
268 ":headless_renderer",
273 "app/headless_shell_switches.cc",
274 "app/headless_shell_switches.h",
275 "lib/headless_content_client.cc",
276 "lib/headless_content_client.h",
277 "public/headless_browser.cc",
278 "public/headless_browser.h",
279 "public/headless_export.h",
280 "public/internal/headless_devtools_client_impl.h",
281 "public/internal/message_dispatcher.h",
282 "public/internal/value_conversions.h",
283 "public/util/error_reporter.cc",
284 "public/util/error_reporter.h",
285 "public/util/user_agent.cc",
286 "public/util/user_agent.h",
289 sources += generated_devtools_api
290 sources += get_target_outputs(":protocol_sources")
294 "lib/headless_crash_reporter_client.cc",
295 "lib/headless_crash_reporter_client.h",
300 ":gen_devtools_client_api",
303 "//base:base_static",
304 "//components/embedder_support/origin_trials",
305 "//content/public/common",
306 "//third_party/inspector_protocol:crdtp",
313 "//components/crash/content/browser",
314 "//components/crash/core/app",
318 deps += [ "//sandbox" ]
321 configs += [ ":inside_headless_component" ]
322 configs += [ ":headless_defines_config" ]
325 # Code that is not needed in a renderer process.
326 component("headless_non_renderer") {
328 "lib/browser/headless_browser_context_impl.cc",
329 "lib/browser/headless_browser_context_impl.h",
330 "lib/browser/headless_browser_context_options.cc",
331 "lib/browser/headless_browser_context_options.h",
332 "lib/browser/headless_browser_impl.cc",
333 "lib/browser/headless_browser_impl.h",
334 "lib/browser/headless_browser_main_parts.cc",
335 "lib/browser/headless_browser_main_parts.h",
336 "lib/browser/headless_devtools.cc",
337 "lib/browser/headless_devtools.h",
338 "lib/browser/headless_devtools_agent_host_client.cc",
339 "lib/browser/headless_devtools_agent_host_client.h",
340 "lib/browser/headless_devtools_client_impl.cc",
341 "lib/browser/headless_devtools_manager_delegate.cc",
342 "lib/browser/headless_devtools_manager_delegate.h",
343 "lib/browser/headless_permission_manager.cc",
344 "lib/browser/headless_permission_manager.h",
345 "lib/browser/headless_platform_event_source.cc",
346 "lib/browser/headless_platform_event_source.h",
347 "lib/browser/headless_quota_permission_context.cc",
348 "lib/browser/headless_quota_permission_context.h",
349 "lib/browser/headless_request_context_manager.cc",
350 "lib/browser/headless_request_context_manager.h",
351 "lib/browser/headless_window_tree_host.h",
352 "lib/browser/protocol/browser_handler.cc",
353 "lib/browser/protocol/browser_handler.h",
354 "lib/browser/protocol/domain_handler.h",
355 "lib/browser/protocol/headless_devtools_session.cc",
356 "lib/browser/protocol/headless_devtools_session.h",
357 "lib/browser/protocol/headless_handler.cc",
358 "lib/browser/protocol/headless_handler.h",
359 "lib/browser/protocol/page_handler.cc",
360 "lib/browser/protocol/page_handler.h",
361 "lib/browser/protocol/target_handler.cc",
362 "lib/browser/protocol/target_handler.h",
363 "public/headless_browser_context.h",
364 "public/headless_devtools_channel.h",
365 "public/headless_devtools_client.h",
366 "public/headless_devtools_target.h",
367 "public/headless_web_contents.h",
372 "lib/browser/headless_browser_impl_mac.mm",
373 "lib/browser/headless_browser_main_parts_mac.mm",
374 "lib/browser/headless_shell_application_mac.h",
375 "lib/browser/headless_shell_application_mac.mm",
379 if (is_linux || is_chromeos) {
380 sources += [ "lib/browser/headless_browser_main_parts_linux.cc" ]
383 if (headless_use_policy) {
385 "lib/browser/headless_pref_names.cc",
386 "lib/browser/headless_pref_names.h",
387 "lib/browser/policy/headless_browser_policy_connector.cc",
388 "lib/browser/policy/headless_browser_policy_connector.h",
389 "lib/browser/policy/headless_mode_policy.cc",
390 "lib/browser/policy/headless_mode_policy.h",
391 "lib/browser/policy/headless_policies.cc",
392 "lib/browser/policy/headless_policies.h",
398 "lib/browser/headless_browser_impl_aura.cc",
399 "lib/browser/headless_clipboard.cc",
400 "lib/browser/headless_clipboard.h",
401 "lib/browser/headless_focus_client.cc",
402 "lib/browser/headless_focus_client.h",
403 "lib/browser/headless_screen.cc",
404 "lib/browser/headless_screen.h",
405 "lib/browser/headless_window_parenting_client.cc",
406 "lib/browser/headless_window_parenting_client.h",
407 "lib/browser/headless_window_tree_host.cc",
411 if (enable_basic_printing) {
413 "lib/browser/headless_print_manager.cc",
414 "lib/browser/headless_print_manager.h",
427 if (enable_basic_printing) {
428 public_deps += [ "//skia" ]
432 ":headless_shared_sources",
434 "//base:base_static",
435 "//build:branding_buildflags",
436 "//build:chromeos_buildflags",
437 "//components/cookie_config",
438 "//components/embedder_support",
439 "//components/keyed_service/content",
440 "//components/policy:policy_code_generate",
441 "//components/policy/core/browser",
442 "//components/policy/core/common:common_constants",
443 "//components/pref_registry",
444 "//components/prefs",
445 "//components/profile_metrics",
446 "//components/security_state/core",
447 "//content/public/app",
448 "//content/public/browser",
449 "//content/public/common",
450 "//printing/buildflags",
451 "//services/cert_verifier/public/mojom",
452 "//services/device/public/cpp/geolocation",
453 "//services/service_manager/public/cpp",
454 "//third_party/inspector_protocol:crdtp",
456 "//ui/base/clipboard",
459 "//ui/events/devices",
464 if (enable_basic_printing) {
466 "//components/printing/browser",
467 "//components/printing/common:mojo_interfaces",
473 if (is_component_build) {
475 "lib/browser/headless_content_browser_client.cc",
476 "lib/browser/headless_content_browser_client.h",
477 "lib/browser/headless_web_contents_impl.cc",
478 "lib/browser/headless_web_contents_impl.h",
479 "lib/headless_content_main_delegate.cc",
480 "lib/headless_content_main_delegate.h",
481 "lib/renderer/headless_content_renderer_client.cc",
482 "lib/renderer/headless_content_renderer_client.h",
483 "lib/utility/headless_content_utility_client.cc",
484 "lib/utility/headless_content_utility_client.h",
488 sources += [ "lib/headless_content_main_delegate_mac.mm" ]
491 if (enable_basic_printing) {
493 "lib/renderer/headless_print_render_frame_helper_delegate.cc",
494 "lib/renderer/headless_print_render_frame_helper_delegate.h",
499 "//components/crash/core/common",
500 "//components/security_state/content",
502 "//third_party/blink/public:blink",
509 "//components/crash/content/browser",
510 "//components/crash/core/app",
514 if (enable_basic_printing) {
516 "//components/printing/browser",
517 "//components/printing/renderer",
518 "//components/services/print_compositor",
519 "//components/services/print_compositor/public/mojom",
523 if (headless_use_prefs) {
524 deps += [ "//components/os_crypt" ]
527 if (headless_use_policy) {
529 "//components/policy/content",
530 "//components/user_prefs",
535 # Normally set to false (see build/args/headless.gn), but we can optionally
536 # use external v8 startup data too.
537 if ((is_win && is_component_build) || !is_win) {
538 if (v8_use_external_startup_data) {
539 public_deps += [ "//v8" ]
540 if (use_v8_context_snapshot) {
541 data += [ "$root_out_dir/$v8_context_snapshot_filename" ]
542 data_deps += [ "//tools/v8_context_snapshot" ]
544 data += [ "$root_out_dir/snapshot_blob.bin" ]
550 deps += [ ":mac_helpers" ]
553 "CoreFoundation.framework",
556 deps += [ "//ui/aura" ]
559 if (headless_use_embedded_resources) {
560 defines += [ "HEADLESS_USE_EMBEDDED_RESOURCES" ]
561 deps += [ ":embed_resources" ]
563 "$root_gen_dir/headless/embedded_resource_pak.cc",
564 "$root_gen_dir/headless/embedded_resource_pak.h",
571 deps += [ "//ui/ozone" ]
575 defines += [ "USE_DBUS" ]
576 deps += [ "//device/bluetooth" ]
579 if (headless_fontconfig_utils && !is_fuchsia) {
580 deps += [ ":headless_fontconfig_utils" ]
583 configs += [ ":inside_headless_component" ]
584 configs += [ ":headless_defines_config" ]
587 # Headless renderer is a convenience library for non component builds that
588 # includes headless classes that depend on the renderer.
589 if (!is_component_build) {
590 static_library("headless_renderer") {
593 "lib/browser/headless_web_contents_impl.cc",
594 "lib/browser/headless_web_contents_impl.h",
595 "lib/headless_content_main_delegate.cc",
596 "lib/headless_content_main_delegate.h",
597 "lib/renderer/headless_content_renderer_client.cc",
598 "lib/renderer/headless_content_renderer_client.h",
599 "lib/utility/headless_content_utility_client.cc",
600 "lib/utility/headless_content_utility_client.h",
604 sources += [ "lib/headless_content_main_delegate_mac.mm" ]
607 if (enable_basic_printing) {
609 "lib/renderer/headless_print_render_frame_helper_delegate.cc",
610 "lib/renderer/headless_print_render_frame_helper_delegate.h",
615 ":headless_shared_sources",
616 "//build:chromeos_buildflags",
617 "//components/crash/core/common",
618 "//components/security_state/content",
619 "//components/security_state/core",
620 "//content/public/app",
621 "//content/public/browser",
622 "//content/public/common",
623 "//content/public/renderer",
624 "//content/public/utility",
625 "//printing/buildflags",
626 "//third_party/blink/public:blink_headers",
632 deps += [ "//ui/ozone" ]
634 if (enable_basic_printing) {
636 "//components/printing/renderer",
637 "//components/services/print_compositor",
638 "//components/services/print_compositor/public/mojom",
641 configs += [ ":headless_defines_config" ]
642 if (headless_use_embedded_resources) {
643 defines += [ "HEADLESS_USE_EMBEDDED_RESOURCES" ]
644 deps += [ ":embed_resources" ]
646 "$root_gen_dir/headless/embedded_resource_pak.cc",
647 "$root_gen_dir/headless/embedded_resource_pak.h",
651 if (is_mac || is_win || is_linux || is_chromeos) {
652 deps += [ "//components/crash/core/app" ]
656 # For component builds all dependencies are already included in the headless
658 group("headless_renderer") {
659 deps = [ ":headless_non_renderer" ]
663 group("headless_tests") {
667 ":headless_browsertests",
669 ":headless_unittests",
673 test("headless_unittests") {
675 "public/domains/types_unittest.cc",
676 "public/util/error_reporter_unittest.cc",
681 ":headless_shell_lib",
682 "//base/test:run_all_unittests",
683 "//base/test:test_support",
684 "//components/security_state/content",
685 "//content/public/app",
686 "//content/public/child:child",
687 "//content/public/common",
693 deps += [ "//components/crash/core/app:crash_export_thunks" ]
696 if (enable_basic_printing) {
697 sources += [ "lib/browser/headless_printing_unittest.cc" ]
699 "//components/printing/browser",
701 "//printing/buildflags",
702 "//third_party/blink/public:blink",
706 configs += [ ":headless_defines_config" ]
710 copy("mac_helpers") {
711 sources = [ "$root_out_dir/chrome_crashpad_handler" ]
713 deps = [ "//components/crash/core/app:chrome_crashpad_handler" ]
715 outputs = [ "$root_out_dir/Helpers/{{source_file_part}}" ]
719 test("headless_browsertests") {
720 configs += [ "//net:net_test_config" ]
722 "test/headless_browser_browsertest.cc",
723 "test/headless_browser_context_browsertest.cc",
724 "test/headless_browser_test.cc",
725 "test/headless_browser_test.h",
726 "test/headless_client_browsertest.cc",
727 "test/headless_devtools_client_browsertest.cc",
728 "test/headless_origin_trials_browsertest.cc",
729 "test/headless_policy_browsertest.cc",
730 "test/headless_policy_browsertest.h",
731 "test/headless_test_launcher.cc",
732 "test/headless_web_contents_browsertest.cc",
733 "test/test_network_interceptor.cc",
734 "test/test_network_interceptor.h",
737 # TODO(https://crbug.com/1107396): These tests flakily timeout on fuchsia.
740 "test/headless_compositor_browsertest.cc",
741 "test/headless_protocol_browsertest.cc",
742 "test/headless_protocol_browsertest.h",
748 "test/dom_tree_extraction_expected_nodes.txt",
749 "test/dom_tree_extraction_expected_styles.txt",
750 "$root_out_dir/headless_lib.pak",
751 "//net/tools/testserver/",
752 "//third_party/blink/web_tests/http/tests/inspector-protocol/",
753 "//third_party/pywebsocket3/",
754 "//third_party/tlslite/",
758 additional_manifest_fragments = [
759 "//build/config/fuchsia/test/font_capabilities.test-cmx",
761 # TODO(crbug.com/1185811): Figure out why jit_capabilities is needed.
762 "//build/config/fuchsia/test/jit_capabilities.test-cmx",
764 "//build/config/fuchsia/test/network_capabilities.test-cmx",
765 "//build/config/fuchsia/test/vulkan_capabilities.test-cmx",
770 data_deps = [ ":mac_helpers" ]
773 defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
776 ":headless_shell_lib",
779 "//components/policy/core/browser",
780 "//components/security_state/content",
781 "//content/test:browsertest_support",
782 "//content/test:test_support",
783 "//net:test_support",
784 "//printing/buildflags",
785 "//services/network/public/mojom",
788 "//ui/base/clipboard",
792 deps += [ "//third_party/crashpad/crashpad/client" ]
795 if (enable_basic_printing) {
797 "//components/printing/browser",
803 if (headless_use_policy) {
804 deps += [ "//components/policy/core/common:test_support" ]
807 configs += [ ":headless_defines_config" ]
811 # Headless library with only browser dependencies. This is used when no child
812 # dependencies are needed in the target (e.g. chrome:main_dll).
813 static_library("headless_shell_browser_lib") {
815 "app/headless_shell.cc",
816 "app/headless_shell.h",
817 "lib/browser/headless_content_browser_client.cc",
818 "lib/browser/headless_content_browser_client.h",
819 "public/headless_shell.h",
822 ":headless_non_renderer",
823 "//build:branding_buildflags",
824 "//components/crash/core/app:run_as_crashpad_handler",
825 "//components/embedder_support",
826 "//content:sandbox_helper_win",
827 "//content/public/app",
828 "//content/public/browser",
829 "//content/public/common",
831 "//printing/buildflags",
834 if (headless_use_policy) {
835 deps += [ "//components/policy/content" ]
837 configs += [ ":headless_defines_config" ]
841 # Headless library with all included dependencies. Use this library unless you
842 # have browser/child dependencies restrictions.
843 static_library("headless_shell_lib") {
845 "app/headless_shell.cc",
846 "app/headless_shell.h",
847 "public/headless_shell.h",
851 if (!is_component_build) {
853 "lib/browser/headless_content_browser_client.cc",
854 "lib/browser/headless_content_browser_client.h",
855 "lib/utility/headless_content_utility_client.cc",
856 "lib/utility/headless_content_utility_client.h",
861 ":headless_renderer",
862 "//build:branding_buildflags",
863 "//components/embedder_support",
864 "//components/security_state/content",
866 "//content/public/app",
867 "//content/public/browser",
868 "//content/public/child:child",
869 "//content/public/common",
870 "//content/public/utility",
871 "//printing/buildflags",
874 public_deps = [ "//base" ]
876 if (!is_component_build) {
877 public_deps += [ ":headless_non_renderer" ]
881 deps += [ "//components/crash/content/browser" ]
884 if (enable_basic_printing) {
886 "//components/printing/browser",
887 "//components/printing/renderer",
888 "//components/services/print_compositor",
889 "//components/services/print_compositor/public/mojom",
893 if (headless_use_policy && !is_component_build) {
894 deps += [ "//components/policy/content" ]
898 defines = [ "HEADLESS_USE_CRASHPAD" ]
901 "//components/crash/core/app:run_as_crashpad_handler",
902 "//content:sandbox_helper_win",
908 deps += [ "//components/os_crypt" ]
911 if (is_win || (is_posix && !is_mac)) {
912 deps += [ "//components/crash/core/app" ]
915 configs += [ ":headless_defines_config" ]
919 cr_fuchsia_package("headless_shell_pkg") {
920 binary = ":headless_shell"
921 package_name_override = "headless_shell"
922 manifest = "//build/config/fuchsia/test/minimum_capabilities.test-cmx"
925 fuchsia_package_runner("headless_shell_fuchsia") {
926 package = ":headless_shell_pkg"
927 package_name_override = "headless_shell"
931 executable("headless_shell") {
932 sources = [ "app/headless_shell_main.cc" ]
935 deps = [ ":headless_shell_lib" ]
937 if (!headless_use_embedded_resources) {
938 data = [ "$root_out_dir/headless_lib.pak" ]
943 "//build/win:default_exe_manifest",
944 "//content/public/app",
949 deps += [ "//sandbox/mac:seatbelt" ]
952 configs += [ ":headless_defines_config" ]
955 process_version("version_header") {
956 template_file = "public/version.h.in"
961 output = "$target_gen_dir/public/version.h"
964 executable("headless_example") {
965 sources = [ "app/headless_example.cc" ]
969 ":headless_shell_lib",
972 "//skia", # we need this to override font render hinting in headless build
977 deps += [ "//content/public/app" ]
980 configs += [ ":headless_defines_config" ]