cef/BUILD.gn

2044 lines
70 KiB
Plaintext
Raw Normal View History

2016-06-23 19:42:00 +02:00
# Copyright 2016 The Chromium Embedded Framework Authors. Portions copyright
# 2014 the Chromium Authors. All rights reserved. Use of this source code is
# governed by a BSD-style license that can be found in the LICENSE file.
#
# This file provides the GN configuration for the CEF project. This is not a
# stand-alone configuration -- it must be built from inside the Chromium source
# tree. See https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
# for complete CEF build instructions. See below for links to additional GN
# documentation.
#
# GN Setup:
#
# 1. Enable use of GN instead of GYP by setting the `CEF_USE_GN` environment
# variable to a value of `1`. For example, on Windows:
#
# > set CEF_USE_GN=1
#
# 2. Optionally configure GN by setting the `GN_DEFINES` and/or `GN_ARGUMENTS`
# environment variables.
#
# Example A: Use /DEBUG:FASTLINK on Windows:
#
# > set GN_DEFINES=is_win_fastlink=true
#
# Example B: Generate VS2015 project files in addition to the default Ninja
# build files on Windows:
#
# > set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/*
#
# After completing the "GN Automated Build" or "GN Manual Build" section
# open "out\<build_dir>\cef.sln" for editing and debugging. Building must
# still be performed using the Ninja command-line.
#
# GN Automated Build:
#
# Run the `automate-git.py` script as described on the BranchesAndBuilding
# Wiki page. GN, unlike GYP, supports parallel build configurations. The
# following command-line flags have special meaning with GN builds:
#
# --x64-build Perform an x64 build if specified (requires out/*_GN_x64
# directories), otherwise perform an x86 build (requires
# out/*_GN_x86 directories).
#
# Directories are created subject to your platform and `GN_DEFINES` settings.
# See Step 1B in the "GN Manual Build" section below for details.
#
# GN Manual Build:
#
# 1. Run the `cef_create_projects.[bin|sh]` script. Upon successful completion
# proceed to Step 2.
#
# The `cef_create_projects.[bin|sh]` script will automatically do all of the
# following:
#
# A. Apply patch files to the Chromium source tree. This includes
# `patch/patches/gn_config.patch` which is required for GN integration.
#
# B. Create multiple build output directories appropriate to your platform
# and `GN_DEFINES` settings. For example:
#
# x86 debug build -> out/Debug_GN_x86
# x86 release build -> out/Release_GN_x86
# x64 debug build -> out/Debug_GN_x64
# x64 release build -> out/Release_GN_x64
#
# Build output directories will be created subject to the following rules
# (defined in `tools/gn_args.py` GetAllPlatformConfigs):
#
# - Debug and Release directories will be created on all platforms by
# default. Debug directories will not be created when `is_asan=true`.
# - x64 directories will always be created on all platforms.
# - x86 directories will always be created on Windows.
# - x86 directories will be created on Linux when `use_sysroot=true`.
#
# C. Write the `args.gn` file for each build output directory using the
# `tools/gn_args.py` script to determine the GN arguments. Some arguments
# are required and some are optional. See script output for details in
# case of conflicts or recommendations.
#
# D. Run `gn gen` for each build output directory to generate project files.
# Ninja files will be generated by default. Additional command-line
# arguments (including other project formats) can be specified via the
# `GN_ARGUMENTS` environment variable. Run `gn gen --help` for a list of
# supported arguments.
#
# 2. Run Ninja from the command-line to build. If the build configuration has
# changed it will automatically re-run `gn gen` with the same arguments.
#
# > ninja -C out/<build_dir> cefclient cefsimple cef_unittests
#
# GN Manual Packaging:
#
# Run the `make_distrib.[bat|sh]` script as described on the
# BranchesAndBuilding Wiki page.
#
# Additional GN documentation:
# http://www.chromium.org/developers/gn-build-configuration
# https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/language.md
#
import("//build/config/features.gni")
import("//build/config/locales.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/ui.gni")
import("//build/config/win/console_app.gni")
import("//build/config/win/manifest.gni")
import("//cef/cef_repack_locales.gni")
import("//media/media_options.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//tools/grit/repack.gni")
import("//tools/grit/grit_rule.gni")
if (is_linux) {
import("//build/config/linux/pkg_config.gni")
}
if (is_mac) {
import("//build/config/mac/rules.gni")
import("//build_overrides/v8.gni")
import("//build/mac/tweak_info_plist.gni")
import("//media/cdm/ppapi/cdm_paths.gni")
}
#
# Verify required global arguments configured via `gn args`.
#
# Set ENABLE_PRINTING=1 ENABLE_BASIC_PRINTING=1.
assert(enable_basic_printing)
assert(!enable_print_preview)
# Enable support for Widevine CDM.
assert(enable_widevine)
# Disable support for plugin installation.
assert(!enable_plugin_installation)
if (is_clang) {
# Don't use the chrome style plugin.
assert(!clang_use_chrome_plugins)
}
if (is_linux) {
# Disable theme support on Linux so we don't need to implement
# ThemeService[Factory] classes.
assert(!enable_themes)
} else {
assert(enable_themes)
}
#
# Local variables.
#
if (is_mac) {
# TODO(cef): Generate this value using version.py.
cef_version = "99.77.34.5"
}
# Read file lists from gypi files. The gypi_to_gn.py script does not support
# variable references so all required variables must be explicitly specified in
# the below configurations.
gypi_paths = exec_script("//build/gypi_to_gn.py",
[ rebase_path("cef_paths.gypi") ],
"scope",
[ "cef_paths.gypi" ])
gypi_paths2 = exec_script("//build/gypi_to_gn.py",
[ rebase_path("cef_paths2.gypi") ],
"scope",
[ "cef_paths2.gypi" ])
#
# Targets that will be built when depending on "//cef".
#
group("cef") {
testonly = true
deps = [
":cefclient",
":cefsimple",
":cef_unittests",
]
}
#
# libcef static target.
#
# Configuration that will be applied to all targets that depend on
# libcef_static.
config("libcef_static_config") {
include_dirs = [ "." ]
defines = [
"BUILDING_CEF_SHARED",
"USING_CHROMIUM_INCLUDES",
]
}
static_library("libcef_static") {
sources = gypi_paths2.includes_common +
gypi_paths.autogen_cpp_includes + [
"libcef/browser/browser_context.cc",
"libcef/browser/browser_context.h",
"libcef/browser/browser_context_impl.cc",
"libcef/browser/browser_context_impl.h",
"libcef/browser/browser_context_proxy.cc",
"libcef/browser/browser_context_proxy.h",
"libcef/browser/browser_host_impl.cc",
"libcef/browser/browser_host_impl.h",
"libcef/browser/browser_info.cc",
"libcef/browser/browser_info.h",
"libcef/browser/browser_info_manager.cc",
"libcef/browser/browser_info_manager.h",
"libcef/browser/browser_main.cc",
"libcef/browser/browser_main.h",
"libcef/browser/browser_message_filter.cc",
"libcef/browser/browser_message_filter.h",
"libcef/browser/browser_message_loop.cc",
"libcef/browser/browser_message_loop.h",
"libcef/browser/browser_platform_delegate.cc",
"libcef/browser/browser_platform_delegate.h",
"libcef/browser/browser_platform_delegate_create.cc",
"libcef/browser/browser_urlrequest_impl.cc",
"libcef/browser/browser_urlrequest_impl.h",
"libcef/browser/browser_util.cc",
"libcef/browser/browser_util.h",
"libcef/browser/chrome_browser_process_stub.cc",
"libcef/browser/chrome_browser_process_stub.h",
"libcef/browser/chrome_profile_stub.cc",
"libcef/browser/chrome_profile_stub.h",
"libcef/browser/component_updater/cef_component_updater_configurator.cc",
"libcef/browser/component_updater/cef_component_updater_configurator.h",
"libcef/browser/content_browser_client.cc",
"libcef/browser/content_browser_client.h",
"libcef/browser/context.cc",
"libcef/browser/context.h",
"libcef/browser/context_menu_params_impl.cc",
"libcef/browser/context_menu_params_impl.h",
"libcef/browser/cookie_manager_impl.cc",
"libcef/browser/cookie_manager_impl.h",
"libcef/browser/devtools_delegate.cc",
"libcef/browser/devtools_delegate.h",
"libcef/browser/devtools_frontend.cc",
"libcef/browser/devtools_frontend.h",
"libcef/browser/download_item_impl.cc",
"libcef/browser/download_item_impl.h",
"libcef/browser/download_manager_delegate.cc",
"libcef/browser/download_manager_delegate.h",
"libcef/browser/extensions/api/streams_private/streams_private_api.cc",
"libcef/browser/extensions/api/streams_private/streams_private_api.h",
"libcef/browser/extensions/browser_context_keyed_service_factories.cc",
"libcef/browser/extensions/browser_context_keyed_service_factories.h",
"libcef/browser/extensions/browser_extensions_util.cc",
"libcef/browser/extensions/browser_extensions_util.h",
"libcef/browser/extensions/component_extension_resource_manager.cc",
"libcef/browser/extensions/component_extension_resource_manager.h",
"libcef/browser/extensions/event_router_forwarder.cc",
"libcef/browser/extensions/event_router_forwarder.h",
"libcef/browser/extensions/extensions_api_client.cc",
"libcef/browser/extensions/extensions_api_client.h",
"libcef/browser/extensions/extensions_browser_client.cc",
"libcef/browser/extensions/extensions_browser_client.h",
"libcef/browser/extensions/extension_system.cc",
"libcef/browser/extensions/extension_system.h",
"libcef/browser/extensions/extension_system_factory.cc",
"libcef/browser/extensions/extension_system_factory.h",
"libcef/browser/extensions/extension_web_contents_observer.cc",
"libcef/browser/extensions/extension_web_contents_observer.h",
"libcef/browser/extensions/mime_handler_view_guest_delegate.cc",
"libcef/browser/extensions/mime_handler_view_guest_delegate.h",
"libcef/browser/extensions/pdf_extension_util.cc",
"libcef/browser/extensions/pdf_extension_util.h",
"libcef/browser/extensions/pdf_web_contents_helper_client.cc",
"libcef/browser/extensions/pdf_web_contents_helper_client.h",
"libcef/browser/extensions/url_request_util.cc",
"libcef/browser/extensions/url_request_util.h",
"libcef/browser/file_dialog_runner.h",
"libcef/browser/file_dialog_manager.cc",
"libcef/browser/file_dialog_manager.h",
"libcef/browser/frame_host_impl.cc",
"libcef/browser/frame_host_impl.h",
"libcef/browser/geolocation_impl.cc",
"libcef/browser/image_impl.cc",
"libcef/browser/image_impl.h",
"libcef/browser/javascript_dialog_runner.h",
"libcef/browser/javascript_dialog_manager.cc",
"libcef/browser/javascript_dialog_manager.h",
"libcef/browser/media_capture_devices_dispatcher.cc",
"libcef/browser/media_capture_devices_dispatcher.h",
"libcef/browser/menu_manager.cc",
"libcef/browser/menu_manager.h",
"libcef/browser/menu_model_impl.cc",
"libcef/browser/menu_model_impl.h",
"libcef/browser/menu_runner.h",
"libcef/browser/native/browser_platform_delegate_native.cc",
"libcef/browser/native/browser_platform_delegate_native.h",
"libcef/browser/navigate_params.cc",
"libcef/browser/navigate_params.h",
"libcef/browser/navigation_entry_impl.cc",
"libcef/browser/navigation_entry_impl.h",
"libcef/browser/net/chrome_scheme_handler.cc",
"libcef/browser/net/chrome_scheme_handler.h",
"libcef/browser/net/cookie_store_proxy.cc",
"libcef/browser/net/cookie_store_proxy.h",
"libcef/browser/net/devtools_scheme_handler.cc",
"libcef/browser/net/devtools_scheme_handler.h",
"libcef/browser/net/internal_scheme_handler.cc",
"libcef/browser/net/internal_scheme_handler.h",
"libcef/browser/net/network_delegate.cc",
"libcef/browser/net/network_delegate.h",
"libcef/browser/net/resource_request_job.cc",
"libcef/browser/net/resource_request_job.h",
"libcef/browser/net/response_filter_wrapper.cc",
"libcef/browser/net/response_filter_wrapper.h",
"libcef/browser/net/scheme_handler.cc",
"libcef/browser/net/scheme_handler.h",
"libcef/browser/net/url_request_context.cc",
"libcef/browser/net/url_request_context.h",
"libcef/browser/net/url_request_context_getter.h",
"libcef/browser/net/url_request_context_getter_impl.cc",
"libcef/browser/net/url_request_context_getter_impl.h",
"libcef/browser/net/url_request_context_getter_proxy.cc",
"libcef/browser/net/url_request_context_getter_proxy.h",
"libcef/browser/net/url_request_context_impl.h",
"libcef/browser/net/url_request_context_proxy.cc",
"libcef/browser/net/url_request_context_proxy.h",
"libcef/browser/net/url_request_interceptor.cc",
"libcef/browser/net/url_request_interceptor.h",
"libcef/browser/net/url_request_manager.cc",
"libcef/browser/net/url_request_manager.h",
"libcef/browser/net/url_request_user_data.cc",
"libcef/browser/net/url_request_user_data.h",
"libcef/browser/origin_whitelist_impl.cc",
"libcef/browser/origin_whitelist_impl.h",
"libcef/browser/osr/browser_platform_delegate_osr.cc",
"libcef/browser/osr/browser_platform_delegate_osr.h",
"libcef/browser/osr/osr_util.cc",
"libcef/browser/osr/osr_util.h",
"libcef/browser/osr/render_widget_host_view_osr.cc",
"libcef/browser/osr/render_widget_host_view_osr.h",
"libcef/browser/osr/software_output_device_osr.cc",
"libcef/browser/osr/software_output_device_osr.h",
"libcef/browser/osr/web_contents_view_osr.cc",
"libcef/browser/osr/web_contents_view_osr.h",
"libcef/browser/path_util_impl.cc",
"libcef/browser/pepper/browser_pepper_host_factory.cc",
"libcef/browser/pepper/browser_pepper_host_factory.h",
"libcef/browser/pepper/pepper_flash_browser_host.cc",
"libcef/browser/pepper/pepper_flash_browser_host.h",
"libcef/browser/pepper/pepper_isolated_file_system_message_filter.cc",
"libcef/browser/pepper/pepper_isolated_file_system_message_filter.h",
"libcef/browser/pepper/device_id_fetcher.cc",
"libcef/browser/permissions/permission_context.cc",
"libcef/browser/permissions/permission_context.h",
"libcef/browser/permissions/permission_manager.cc",
"libcef/browser/permissions/permission_manager.h",
"libcef/browser/permissions/permission_util.cc",
"libcef/browser/permissions/permission_util.h",
"libcef/browser/plugins/plugin_info_message_filter.cc",
"libcef/browser/plugins/plugin_info_message_filter.h",
"libcef/browser/plugins/plugin_service_filter.cc",
"libcef/browser/plugins/plugin_service_filter.h",
"libcef/browser/prefs/browser_prefs.cc",
"libcef/browser/prefs/browser_prefs.h",
"libcef/browser/prefs/renderer_prefs.cc",
"libcef/browser/prefs/renderer_prefs.h",
"libcef/browser/print_settings_impl.cc",
"libcef/browser/print_settings_impl.h",
"libcef/browser/printing/printing_message_filter.cc",
"libcef/browser/printing/printing_message_filter.h",
"libcef/browser/printing/print_view_manager.cc",
"libcef/browser/printing/print_view_manager.h",
"libcef/browser/printing/print_view_manager_base.cc",
"libcef/browser/printing/print_view_manager_base.h",
"libcef/browser/process_util_impl.cc",
"libcef/browser/proxy_stubs.cc",
"libcef/browser/resource_context.cc",
"libcef/browser/resource_context.h",
"libcef/browser/resource_dispatcher_host_delegate.cc",
"libcef/browser/resource_dispatcher_host_delegate.h",
"libcef/browser/request_context_impl.cc",
"libcef/browser/request_context_impl.h",
"libcef/browser/scheme_impl.cc",
"libcef/browser/speech_recognition_manager_delegate.cc",
"libcef/browser/speech_recognition_manager_delegate.h",
"libcef/browser/ssl_cert_principal_impl.cc",
"libcef/browser/ssl_cert_principal_impl.h",
"libcef/browser/ssl_host_state_delegate.cc",
"libcef/browser/ssl_host_state_delegate.h",
"libcef/browser/ssl_info_impl.cc",
"libcef/browser/ssl_info_impl.h",
"libcef/browser/stream_impl.cc",
"libcef/browser/stream_impl.h",
"libcef/browser/trace_impl.cc",
"libcef/browser/trace_subscriber.cc",
"libcef/browser/trace_subscriber.h",
"libcef/browser/thread_util.h",
"libcef/browser/web_plugin_impl.cc",
"libcef/browser/web_plugin_impl.h",
"libcef/browser/xml_reader_impl.cc",
"libcef/browser/xml_reader_impl.h",
"libcef/browser/zip_reader_impl.cc",
"libcef/browser/zip_reader_impl.h",
"libcef/common/base_impl.cc",
"libcef/common/cef_message_generator.cc",
"libcef/common/cef_message_generator.h",
"libcef/common/cef_messages.cc",
"libcef/common/cef_messages.h",
"libcef/common/cef_switches.cc",
"libcef/common/cef_switches.h",
"libcef/common/command_line_impl.cc",
"libcef/common/command_line_impl.h",
"libcef/common/content_client.cc",
"libcef/common/content_client.h",
"libcef/common/crash_reporter_client.cc",
"libcef/common/crash_reporter_client.h",
"libcef/common/drag_data_impl.cc",
"libcef/common/drag_data_impl.h",
"libcef/common/extensions/extensions_client.cc",
"libcef/common/extensions/extensions_client.h",
"libcef/common/extensions/extensions_util.cc",
"libcef/common/extensions/extensions_util.h",
"libcef/common/json_impl.cc",
"libcef/common/main_delegate.cc",
"libcef/common/main_delegate.h",
"libcef/common/net/http_header_utils.cc",
"libcef/common/net/http_header_utils.h",
"libcef/common/net/net_resource_provider.cc",
"libcef/common/net/net_resource_provider.h",
"libcef/common/net/scheme_registration.cc",
"libcef/common/net/scheme_registration.h",
"libcef/common/net/upload_data.cc",
"libcef/common/net/upload_data.h",
"libcef/common/net/upload_element.cc",
"libcef/common/net/upload_element.h",
"libcef/common/parser_impl.cc",
"libcef/common/process_message_impl.cc",
"libcef/common/process_message_impl.h",
"libcef/common/request_impl.cc",
"libcef/common/request_impl.h",
"libcef/common/resource_bundle_impl.cc",
"libcef/common/resource_bundle_impl.h",
"libcef/common/response_impl.cc",
"libcef/common/response_impl.h",
"libcef/common/response_manager.cc",
"libcef/common/response_manager.h",
"libcef/common/scheme_registrar_impl.cc",
"libcef/common/scheme_registrar_impl.h",
"libcef/common/string_list_impl.cc",
"libcef/common/string_map_impl.cc",
"libcef/common/string_multimap_impl.cc",
"libcef/common/string_types_impl.cc",
"libcef/common/task_impl.cc",
"libcef/common/task_runner_impl.cc",
"libcef/common/task_runner_impl.h",
"libcef/common/test/translator_test_impl.cc",
"libcef/common/time_impl.cc",
"libcef/common/time_util.h",
"libcef/common/tracker.cc",
"libcef/common/tracker.h",
"libcef/common/urlrequest_impl.cc",
"libcef/common/value_base.cc",
"libcef/common/value_base.h",
"libcef/common/values_impl.cc",
"libcef/common/values_impl.h",
"libcef/renderer/browser_impl.cc",
"libcef/renderer/browser_impl.h",
"libcef/renderer/content_renderer_client.cc",
"libcef/renderer/content_renderer_client.h",
"libcef/renderer/dom_document_impl.cc",
"libcef/renderer/dom_document_impl.h",
"libcef/renderer/dom_node_impl.cc",
"libcef/renderer/dom_node_impl.h",
"libcef/renderer/extensions/extensions_dispatcher_delegate.cc",
"libcef/renderer/extensions/extensions_dispatcher_delegate.h",
"libcef/renderer/extensions/extensions_renderer_client.cc",
"libcef/renderer/extensions/extensions_renderer_client.h",
"libcef/renderer/extensions/print_web_view_helper_delegate.cc",
"libcef/renderer/extensions/print_web_view_helper_delegate.h",
"libcef/renderer/frame_impl.cc",
"libcef/renderer/frame_impl.h",
"libcef/renderer/media/cef_key_systems.cc",
"libcef/renderer/media/cef_key_systems.h",
"libcef/renderer/pepper/pepper_helper.cc",
"libcef/renderer/pepper/pepper_helper.h",
"libcef/renderer/pepper/pepper_uma_host.cc",
"libcef/renderer/pepper/renderer_pepper_host_factory.cc",
"libcef/renderer/pepper/renderer_pepper_host_factory.h",
"libcef/renderer/plugins/cef_plugin_placeholder.cc",
"libcef/renderer/plugins/cef_plugin_placeholder.h",
"libcef/renderer/plugins/plugin_preroller.cc",
"libcef/renderer/plugins/plugin_preroller.h",
"libcef/renderer/render_frame_observer.cc",
"libcef/renderer/render_frame_observer.h",
"libcef/renderer/render_message_filter.cc",
"libcef/renderer/render_message_filter.h",
"libcef/renderer/render_thread_observer.cc",
"libcef/renderer/render_thread_observer.h",
"libcef/renderer/render_urlrequest_impl.cc",
"libcef/renderer/render_urlrequest_impl.h",
"libcef/renderer/thread_util.h",
"libcef/renderer/v8_impl.cc",
"libcef/renderer/v8_impl.h",
"libcef/renderer/webkit_glue.cc",
"libcef/renderer/webkit_glue.h",
"libcef/utility/content_utility_client.cc",
"libcef/utility/content_utility_client.h",
# Include sources for chrome command-line switches.
"//chrome/common/chrome_switches.cc",
"//chrome/common/chrome_switches.h",
# Include sources for proxy support.
"//chrome/browser/net/proxy_service_factory.cc",
"//chrome/browser/net/proxy_service_factory.h",
"//chrome/browser/net/utility_process_mojo_proxy_resolver_factory.cc",
"//chrome/browser/net/utility_process_mojo_proxy_resolver_factory.h",
"//components/data_reduction_proxy/core/common/data_reduction_proxy_switches.cc",
"//components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h",
"//components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.cc",
"//components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h",
# Include sources for the loadtimes V8 extension.
"//chrome/renderer/loadtimes_extension_bindings.h",
"//chrome/renderer/loadtimes_extension_bindings.cc",
# Include sources for printing.
"//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",
"//chrome/browser/printing/print_job_worker_owner.cc",
"//chrome/browser/printing/print_job_worker_owner.h",
"//chrome/browser/printing/printer_query.cc",
"//chrome/browser/printing/printer_query.h",
"//chrome/common/extensions/extension_constants.cc",
"//chrome/common/extensions/extension_constants.h",
# Include header for stub creation (BrowserProcess) so print_job_worker can
# determine the current locale.
"//chrome/browser/browser_process.cc",
"//chrome/browser/browser_process.h",
# Include sources for spell checking support.
"//chrome/browser/spellchecker/feedback.cc",
"//chrome/browser/spellchecker/feedback.h",
"//chrome/browser/spellchecker/feedback_sender.cc",
"//chrome/browser/spellchecker/feedback_sender.h",
"//chrome/browser/spellchecker/misspelling.cc",
"//chrome/browser/spellchecker/misspelling.h",
"//chrome/browser/spellchecker/spellcheck_action.cc",
"//chrome/browser/spellchecker/spellcheck_action.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_host_metrics.cc",
"//chrome/browser/spellchecker/spellcheck_host_metrics.h",
"//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc",
"//chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h",
"//chrome/browser/spellchecker/spellcheck_message_filter.cc",
"//chrome/browser/spellchecker/spellcheck_message_filter.h",
"//chrome/browser/spellchecker/spellcheck_service.cc",
"//chrome/browser/spellchecker/spellcheck_service.h",
"//chrome/browser/spellchecker/spelling_service_client.cc",
"//chrome/browser/spellchecker/spelling_service_client.h",
"//chrome/browser/spellchecker/word_trimmer.cc",
"//chrome/browser/spellchecker/word_trimmer.h",
"//chrome/common/chrome_constants.cc",
"//chrome/common/chrome_constants.h",
"//chrome/common/spellcheck_common.cc",
"//chrome/common/spellcheck_common.h",
"//chrome/common/spellcheck_marker.h",
"//chrome/common/spellcheck_messages.h",
"//chrome/common/spellcheck_result.h",
"//chrome/renderer/spellchecker/custom_dictionary_engine.cc",
"//chrome/renderer/spellchecker/custom_dictionary_engine.h",
"//chrome/renderer/spellchecker/hunspell_engine.cc",
"//chrome/renderer/spellchecker/hunspell_engine.h",
"//chrome/renderer/spellchecker/spellcheck.cc",
"//chrome/renderer/spellchecker/spellcheck.h",
"//chrome/renderer/spellchecker/spellcheck_language.cc",
"//chrome/renderer/spellchecker/spellcheck_language.h",
"//chrome/renderer/spellchecker/spellcheck_provider.cc",
"//chrome/renderer/spellchecker/spellcheck_provider.h",
"//chrome/renderer/spellchecker/spellcheck_worditerator.cc",
"//chrome/renderer/spellchecker/spellcheck_worditerator.h",
"//chrome/renderer/spellchecker/spelling_engine.h",
# Include sources for pepper flash support.
"//chrome/common/pepper_flash.cc",
"//chrome/common/pepper_flash.h",
"//chrome/common/ppapi_utils.cc",
"//chrome/common/ppapi_utils.h",
"//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.cc",
"//chrome/browser/renderer_host/pepper/pepper_flash_clipboard_message_filter.h",
"//chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc",
"//chrome/browser/renderer_host/pepper/pepper_flash_drm_host.h",
"//chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc",
"//chrome/renderer/pepper/pepper_flash_drm_renderer_host.h",
"//chrome/renderer/pepper/pepper_flash_font_file_host.cc",
"//chrome/renderer/pepper/pepper_flash_font_file_host.h",
"//chrome/renderer/pepper/pepper_flash_fullscreen_host.cc",
"//chrome/renderer/pepper/pepper_flash_fullscreen_host.h",
"//chrome/renderer/pepper/pepper_flash_menu_host.cc",
"//chrome/renderer/pepper/pepper_flash_menu_host.h",
"//chrome/renderer/pepper/pepper_flash_renderer_host.cc",
"//chrome/renderer/pepper/pepper_flash_renderer_host.h",
# Include sources required by chrome_utility_messages.h.
"//chrome/common/safe_browsing/zip_analyzer_results.h",
"//chrome/common/safe_browsing/zip_analyzer_results.cc",
# Include sources for pepper PDF support.
"//chrome/child/pdf_child_init.cc",
"//chrome/child/pdf_child_init.h",
"//chrome/renderer/pepper/chrome_pdf_print_client.cc",
"//chrome/renderer/pepper/chrome_pdf_print_client.h",
# Include sources for extensions support.
"//chrome/common/extensions/chrome_manifest_url_handlers.cc",
"//chrome/common/extensions/chrome_manifest_url_handlers.h",
"//chrome/common/extensions/extension_process_policy.cc",
"//chrome/common/extensions/extension_process_policy.h",
"//chrome/common/pepper_permission_util.cc",
"//chrome/common/pepper_permission_util.h",
"//chrome/common/url_constants.cc",
"//chrome/common/url_constants.h",
"//chrome/renderer/extensions/resource_request_policy.cc",
"//chrome/renderer/extensions/resource_request_policy.h",
"//extensions/shell/browser/shell_display_info_provider.cc",
"//extensions/shell/browser/shell_display_info_provider.h",
"//extensions/shell/browser/shell_web_contents_modal_dialog_manager.cc",
# Include sources for component-updater support.
"//chrome/browser/component_updater/widevine_cdm_component_installer.cc",
"//chrome/browser/component_updater/widevine_cdm_component_installer.h",
# Include sources for widevine support.
"//chrome/common/widevine_cdm_constants.cc",
"//chrome/common/widevine_cdm_constants.h",
# Include sources for plugin placeholder support.
"//chrome/browser/plugins/plugin_finder.cc",
"//chrome/browser/plugins/plugin_finder.h",
"//chrome/browser/plugins/plugin_metadata.cc",
"//chrome/browser/plugins/plugin_metadata.h",
"//chrome/renderer/plugins/power_saver_info.cc",
"//chrome/renderer/plugins/power_saver_info.h",
"//components/nacl/common/nacl_constants.cc",
"//components/nacl/common/nacl_constants.h",
# Include sources for preferences support.
"//chrome/browser/accessibility/animation_policy_prefs.cc",
"//chrome/browser/accessibility/animation_policy_prefs.h",
"//chrome/browser/character_encoding.cc",
"//chrome/browser/character_encoding.h",
"//chrome/browser/defaults.cc",
"//chrome/browser/defaults.h",
"//chrome/browser/extensions/extension_webkit_preferences.cc",
"//chrome/browser/extensions/extension_webkit_preferences.h",
"//chrome/browser/font_family_cache.cc",
"//chrome/browser/font_family_cache.h",
"//chrome/browser/prefs/command_line_pref_store.cc",
"//chrome/browser/prefs/command_line_pref_store.h",
"//chrome/browser/renderer_preferences_util.cc",
"//chrome/browser/renderer_preferences_util.h",
"//chrome/browser/ui/prefs/prefs_tab_helper.cc",
"//chrome/browser/ui/prefs/prefs_tab_helper.h",
"//chrome/browser/ui/zoom/chrome_zoom_level_prefs.cc",
"//chrome/browser/ui/zoom/chrome_zoom_level_prefs.h",
"//chrome/common/pref_font_webkit_names.h",
"//chrome/common/pref_names.cc",
"//chrome/common/pref_names.h",
"//chrome/common/pref_names_util.cc",
"//chrome/common/pref_names_util.h",
"//components/prefs/testing_pref_store.cc",
"//components/prefs/testing_pref_store.h",
# Include sources for permissions support.
"//chrome/browser/permissions/permission_request_id.h",
"//chrome/browser/permissions/permission_request_id.cc",
# Include sources for SafeSearch support.
"//chrome/browser/net/safe_search_util.cc",
"//chrome/browser/net/safe_search_util.h",
]
configs += [
":libcef_static_config",
"//build/config:precompiled_headers",
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
"//build/config/compiler:no_size_t_to_int_warning",
# Blink-internal include paths.
"//third_party/WebKit/Source/core:core_include_dirs",
]
public_configs = [
":libcef_static_config",
]
include_dirs = [
# Blink code uses paths relative to these directories. We need them because
# we include Blink headers.
"//third_party/WebKit/public/platform",
"//third_party/WebKit/public/web",
# CEF references resources from the specified chrome targets in
# cef_strings.grd and/or cef_resources.grd. Include grit stub headers with
# the expected name that redirect to cef_resources.h/cef_strings.h.
# //chrome/app:generated_resources -> generated_resources.h
# //chrome/app/resources:locale_settings -> locale_settings.h
# //chrome/browser:resources -> browser_resources.h
"libcef/resources/grit_stub",
"libcef/resources/grit_stub/chrome",
]
deps = [
# Generate pack files and make include paths for grit headers discoverable.
":pak",
":pak_100_percent",
":pak_200_percent",
":pak_devtools",
":pak_extensions",
":repack_locales_pack",
# Grit deps that generate .cc files must be listed both here and in the
# repack() target.
"//chrome/browser/resources:component_extension_resources",
# Generate API bindings for extensions.
"libcef/common/extensions/api",
"libcef/common/extensions/api:api_registration",
# Normal build dependencies. Should be sorted alphabetically.
"//base",
"//base:base_static",
"//base/third_party/dynamic_annotations",
"//cc",
"//components/cdm/renderer",
"//components/component_updater",
"//components/content_settings/core/browser",
"//components/content_settings/core/common",
"//components/crash/content/app:app_breakpad_mac_win_to_be_deleted",
"//components/crx_file",
"//components/data_use_measurement/core",
"//components/devtools_discovery",
"//components/devtools_http_handler",
"//components/google/core/browser",
"//components/keyed_service/content:content",
"//components/keyed_service/core:core",
"//components/navigation_interception",
"//components/network_session_configurator:switches",
"//components/pdf/browser",
"//components/pdf/renderer",
"//components/plugins/renderer",
"//components/pref_registry",
"//components/printing/browser",
"//components/printing/common",
"//components/printing/renderer",
"//components/proxy_config",
"//components/ssl_config",
"//components/update_client",
"//components/url_formatter",
"//components/user_prefs",
"//components/version_info",
"//components/visitedlink/browser",
"//components/visitedlink/common",
"//components/visitedlink/renderer",
"//components/web_cache/renderer",
"//content/public/app:both",
"//content/public/browser",
"//content/public/common",
"//content/public/gpu",
"//content/public/renderer",
"//content/public/utility",
"//crypto",
"//device/core",
"//device/hid",
"//extensions/browser",
"//extensions/common/api",
"//extensions/common/api:api_registration",
"//extensions/renderer",
"//extensions/utility",
"//gpu",
"//ipc",
"//media",
"//media/blink",
"//net",
"//net:net_browser_services",
"//net:net_with_v8",
"//pdf",
"//skia",
"//storage/browser",
"//sync",
"//third_party/cld_2",
"//third_party/hunspell",
"//third_party/leveldatabase",
"//third_party/libxml",
"//third_party/WebKit/public:blink",
"//third_party/widevine/cdm:version_h",
"//third_party/icu",
"//third_party/zlib:minizip",
"//ui/base",
"//ui/base/ime",
"//ui/events:events_base",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/gfx/ipc",
"//ui/gfx/ipc/geometry",
"//ui/gfx/ipc/skia",
"//ui/gl",
"//url",
"//v8",
# Generate chrome/common/safe_browsing/csd.pb.h required by
# zip_analyzer_results.h via chrome_utility_messages.h
"//chrome/common/safe_browsing:proto",
# Generate chrome/common/features.h required by Chrome code that uses
# the BUILDFLAG() macro.
"//chrome/common:features",
# Generate chrome/common/chrome_version.h required by
# chrome/common/chrome_contants.cc
"//chrome/common:version_header",
]
if (!is_mac) {
# TODO(cef): Enable for Mac once Widevine build errors are resolved.
deps += [ "//third_party/widevine/cdm:widevinecdmadapter" ]
}
if (is_win) {
sources += gypi_paths2.includes_win + [
"libcef/browser/browser_main_win.cc",
"libcef/browser/native/browser_platform_delegate_native_win.cc",
"libcef/browser/native/browser_platform_delegate_native_win.h",
"libcef/browser/native/file_dialog_runner_win.cc",
"libcef/browser/native/file_dialog_runner_win.h",
"libcef/browser/native/javascript_dialog_runner_win.cc",
"libcef/browser/native/javascript_dialog_runner_win.h",
"libcef/browser/native/menu_2.cc",
"libcef/browser/native/menu_2.h",
"libcef/browser/native/menu_runner_win.cc",
"libcef/browser/native/menu_runner_win.h",
"libcef/browser/native/menu_wrapper.h",
"libcef/browser/native/native_menu_win.cc",
"libcef/browser/native/native_menu_win.h",
"libcef/browser/osr/browser_platform_delegate_osr_win.cc",
"libcef/browser/osr/browser_platform_delegate_osr_win.h",
"libcef/browser/osr/render_widget_host_view_osr_win.cc",
# Include sources for printing using PDF.
"libcef/utility/printing_handler.cc",
"libcef/utility/printing_handler.h",
"//chrome/browser/printing/pdf_to_emf_converter.cc",
"//chrome/browser/printing/pdf_to_emf_converter.h",
"//chrome/common/chrome_utility_printing_messages.h",
]
}
if (is_linux) {
sources += gypi_paths2.includes_linux + [
"libcef/browser/native/browser_platform_delegate_native_linux.cc",
"libcef/browser/native/browser_platform_delegate_native_linux.h",
"libcef/browser/native/menu_runner_linux.cc",
"libcef/browser/native/menu_runner_linux.h",
"libcef/browser/osr/browser_platform_delegate_osr_linux.cc",
"libcef/browser/osr/browser_platform_delegate_osr_linux.h",
"libcef/browser/osr/render_widget_host_view_osr_linux.cc",
"libcef/browser/printing/print_dialog_linux.cc",
"libcef/browser/printing/print_dialog_linux.h",
"libcef/browser/native/window_x11.cc",
"libcef/browser/native/window_x11.h",
]
deps += [
"//build/linux:fontconfig",
"//third_party/freetype2",
]
}
if (is_mac) {
sources += gypi_paths2.includes_mac + [
"libcef/browser/native/browser_platform_delegate_native_mac.h",
"libcef/browser/native/browser_platform_delegate_native_mac.mm",
"libcef/browser/native/file_dialog_runner_mac.h",
"libcef/browser/native/file_dialog_runner_mac.mm",
"libcef/browser/native/javascript_dialog_runner_mac.h",
"libcef/browser/native/javascript_dialog_runner_mac.mm",
"libcef/browser/native/menu_runner_mac.h",
"libcef/browser/native/menu_runner_mac.mm",
"libcef/browser/osr/browser_platform_delegate_osr_mac.h",
"libcef/browser/osr/browser_platform_delegate_osr_mac.mm",
"libcef/browser/osr/render_widget_host_view_osr_mac.mm",
"libcef/browser/osr/text_input_client_osr_mac.mm",
"libcef/browser/osr/text_input_client_osr_mac.h",
"libcef/common/util_mac.h",
"libcef/common/util_mac.mm",
# Include sources for spell checking support.
"//chrome/browser/spellchecker/spellcheck_message_filter_platform.h",
"//chrome/browser/spellchecker/spellcheck_message_filter_platform_mac.cc",
"//chrome/browser/spellchecker/spellcheck_platform.h",
"//chrome/browser/spellchecker/spellcheck_platform_mac.mm",
"//chrome/renderer/spellchecker/platform_spelling_engine.cc",
"//chrome/renderer/spellchecker/platform_spelling_engine.h",
# Include sources for pepper flash support.
"//chrome/browser/renderer_host/pepper/monitor_finder_mac.h",
"//chrome/browser/renderer_host/pepper/monitor_finder_mac.mm",
]
}
if (use_x11) {
deps += [ "//ui/events/devices/x11" ]
}
if (is_posix && !is_mac) {
deps += [
"//components/crash/content/app",
"//components/crash/content/browser",
]
}
if (use_aura) {
sources += [
"libcef/browser/native/window_delegate_view.cc",
"libcef/browser/native/window_delegate_view.h",
"libcef/browser/views/basic_label_button_impl.cc",
"libcef/browser/views/basic_label_button_impl.h",
"libcef/browser/views/basic_label_button_view.cc",
"libcef/browser/views/basic_label_button_view.h",
"libcef/browser/views/basic_panel_impl.cc",
"libcef/browser/views/basic_panel_impl.h",
"libcef/browser/views/basic_panel_view.cc",
"libcef/browser/views/basic_panel_view.h",
"libcef/browser/views/box_layout_impl.cc",
"libcef/browser/views/box_layout_impl.h",
"libcef/browser/views/browser_platform_delegate_views.cc",
"libcef/browser/views/browser_platform_delegate_views.h",
"libcef/browser/views/browser_view_impl.cc",
"libcef/browser/views/browser_view_impl.h",
"libcef/browser/views/browser_view_view.cc",
"libcef/browser/views/browser_view_view.h",
"libcef/browser/views/button_impl.h",
"libcef/browser/views/button_view.h",
"libcef/browser/views/display_impl.cc",
"libcef/browser/views/display_impl.h",
"libcef/browser/views/fill_layout_impl.cc",
"libcef/browser/views/fill_layout_impl.h",
"libcef/browser/views/label_button_impl.h",
"libcef/browser/views/label_button_view.h",
"libcef/browser/views/layout_impl.h",
"libcef/browser/views/layout_adapter.cc",
"libcef/browser/views/layout_adapter.h",
"libcef/browser/views/layout_util.cc",
"libcef/browser/views/layout_util.h",
"libcef/browser/views/menu_button_impl.cc",
"libcef/browser/views/menu_button_impl.h",
"libcef/browser/views/menu_button_view.cc",
"libcef/browser/views/menu_button_view.h",
"libcef/browser/views/menu_runner_views.cc",
"libcef/browser/views/menu_runner_views.h",
"libcef/browser/views/panel_impl.h",
"libcef/browser/views/panel_view.h",
"libcef/browser/views/scroll_view_impl.cc",
"libcef/browser/views/scroll_view_impl.h",
"libcef/browser/views/scroll_view_view.cc",
"libcef/browser/views/scroll_view_view.h",
"libcef/browser/views/textfield_impl.cc",
"libcef/browser/views/textfield_impl.h",
"libcef/browser/views/textfield_view.cc",
"libcef/browser/views/textfield_view.h",
"libcef/browser/views/view_adapter.cc",
"libcef/browser/views/view_adapter.h",
"libcef/browser/views/view_impl.h",
"libcef/browser/views/view_util.cc",
"libcef/browser/views/view_util.h",
"libcef/browser/views/view_view.h",
"libcef/browser/views/window_impl.cc",
"libcef/browser/views/window_impl.h",
"libcef/browser/views/window_view.cc",
"libcef/browser/views/window_view.h",
"//ui/views/test/desktop_test_views_delegate.h",
"//ui/views/test/desktop_test_views_delegate_aura.cc",
"//ui/views/test/test_views_delegate.h",
"//ui/views/test/test_views_delegate_aura.cc",
# Support for UI input events.
"//ui/base/test/ui_controls.h",
"//ui/base/test/ui_controls_aura.cc",
"//ui/aura/test/ui_controls_factory_aura.h",
]
deps += [
"//ui/aura",
"//ui/events",
"//ui/strings",
"//ui/wm",
]
if (toolkit_views) {
deps += [
"//ui/views",
"//ui/views/controls/webview",
]
}
if (is_win) {
sources += [
# Support for UI input events.
"//ui/aura/test/ui_controls_factory_aurawin.cc",
"//ui/base/test/ui_controls_internal_win.cc",
"//ui/base/test/ui_controls_internal_win.h",
]
}
if (is_linux) {
sources += [
# Support for UI input events.
"//ui/aura/test/aura_test_utils.cc",
"//ui/aura/test/aura_test_utils.h",
"//ui/aura/test/ui_controls_factory_aurax11.cc",
"//ui/aura/test/x11_event_sender.cc",
"//ui/aura/test/x11_event_sender.h",
"//ui/events/test/platform_event_waiter.cc",
"//ui/events/test/platform_event_waiter.h",
"//ui/views/test/ui_controls_factory_desktop_aurax11.cc",
"//ui/views/test/ui_controls_factory_desktop_aurax11.h",
]
}
} else {
sources += [
# Provides stub implementations for the views static methods.
"libcef_dll/views_stub.cc",
]
}
}
#
# libcef_dll_wrapper static targets.
#
# Configuration that will be applied to all targets that depend on
# libcef_dll_wrapper or libcef_dll_wrapper_unittests.
config("libcef_dll_wrapper_config") {
include_dirs = [
".",
"tests",
]
defines = [ "USING_CEF_SHARED" ]
}
# Configuration that will be applied to all targets that depend on
# libcef_dll_wrapper_unittests.
config("libcef_dll_wrapper_unittests_config") {
defines = [ "USING_CHROMIUM_INCLUDES" ]
}
# Helper for creating normal and test versions of the libcef_dll_wrapper target.
template("libcef_dll_wrapper") {
static_library("${target_name}") {
testonly = defined(invoker.testonly) && invoker.testonly
sources = gypi_paths2.includes_common +
gypi_paths.autogen_cpp_includes +
gypi_paths2.includes_capi +
gypi_paths.autogen_capi_includes +
gypi_paths2.includes_wrapper +
gypi_paths2.libcef_dll_wrapper_sources_common +
gypi_paths.autogen_client_side
if (!testonly) {
sources += gypi_paths2.libcef_dll_wrapper_sources_base
}
if (defined(invoker.configs)) {
configs += invoker.configs
}
if (defined(invoker.public_configs)) {
public_configs = invoker.public_configs
}
}
}
# libcef_dll_wrapper target for normal executables.
libcef_dll_wrapper("libcef_dll_wrapper") {
configs = [ ":libcef_dll_wrapper_config" ]
public_configs = [ ":libcef_dll_wrapper_config" ]
}
# libcef_dll_wrapper target for test executables. Uses Chromium base/ includes
# instead of CEF base/ includes. A separate target is necessary to resolve
# cef_unittests linker errors as the Chromium base/ implementation diverges
# from the CEF implementation.
libcef_dll_wrapper("libcef_dll_wrapper_unittests") {
testonly = true
configs = [
":libcef_dll_wrapper_config",
":libcef_dll_wrapper_unittests_config",
]
public_configs = [
":libcef_dll_wrapper_config",
":libcef_dll_wrapper_unittests_config",
]
}
#
# cef_sandbox target.
#
if (is_win) {
static_library("cef_sandbox") {
sources = [ "libcef_dll/sandbox/sandbox_win.cc" ]
include_dirs = [ "." ]
deps = [ "//sandbox" ]
}
}
#
# Resource grit/pack targets.
#
# Helper for generating scaled resource packs.
template("cef_pak_scaled") {
percent = invoker.percent
repack("pak_${target_name}") {
# Each input pak file should also have a deps line for completeness.
sources = [
"$root_gen_dir/blink/public/resources/blink_image_resources_${percent}_percent.pak",
"$root_gen_dir/components/components_resources_${percent}_percent.pak",
"$root_gen_dir/content/app/resources/content_resources_${percent}_percent.pak",
"$root_gen_dir/extensions/extensions_browser_resources_${percent}_percent.pak",
"$root_gen_dir/ui/resources/ui_resources_${percent}_percent.pak",
]
# Use public_deps so that generated grit headers are discoverable from
# the libcef_static target. Grit deps that generate .cc files must be
# listed both here and in the libcef_static target.
public_deps = [
"//third_party/WebKit/public:image_resources",
"//components/resources:components_scaled_resources",
"//content/app/resources",
"//extensions:extensions_browser_resources",
"//ui/resources:ui_resources_grd",
]
if (toolkit_views) {
sources += [
"$root_gen_dir/ui/views/resources/views_resources_${percent}_percent.pak"
]
public_deps += [
"//ui/views/resources:resources_grd"
]
}
output = "$root_out_dir/cef_${percent}_percent.pak"
}
}
# Generate cef_100_percent.pak.
cef_pak_scaled("100_percent") {
percent = "100"
}
# Generate cef_200_percent.pak.
cef_pak_scaled("200_percent") {
percent = "200"
}
# Generate devtools_resources.pak.
repack("pak_devtools") {
sources = [
"$root_gen_dir/blink/devtools_resources.pak",
]
deps = [
"//content/browser/devtools:resources",
]
output = "$root_out_dir/devtools_resources.pak"
}
# Generate cef_extensions.pak.
repack("pak_extensions") {
# Each input pak file should also have a deps line for completeness.
sources = [
"$root_gen_dir/chrome/component_extension_resources.pak",
"$root_gen_dir/extensions/extensions_renderer_resources.pak",
"$root_gen_dir/extensions/extensions_resources.pak",
"$root_gen_dir/ui/resources/webui_resources.pak",
]
# Use public_deps so that generated grit headers are discoverable from
# the libcef_static target. Grit deps that generate .cc files must be
# listed both here and in the libcef_static target.
public_deps = [
"//chrome/browser/resources:component_extension_resources",
"//extensions:extensions_renderer_resources",
"//extensions:extensions_resources_grd",
"//ui/resources:webui_resources_grd",
]
output = "$root_out_dir/cef_extensions.pak"
}
grit("cef_strings") {
visibility = [ ":*" ]
source = "libcef/resources/cef_strings.grd"
outputs = [
"grit/cef_strings.h",
]
all_locales = locales + [ "fake-bidi" ]
foreach(locale, all_locales) {
outputs += [ "cef_strings_${locale}.pak" ]
}
}
# Generate locales/<locale>.pak.
# See cef_repack_locales.gni for the list of input pak files and deps.
cef_repack_locales("repack_locales_pack") {
visibility = [ ":*" ]
input_locales = locales
if (is_mac) {
output_locales = locales_as_mac_outputs
} else {
output_locales = locales
}
}
grit("cef_resources") {
visibility = [ ":*" ]
source = "libcef/resources/cef_resources.grd"
outputs = [
"grit/cef_resources.h",
"cef_resources.pak",
]
}
# Generate cef.pak.
repack("pak") {
# Each input pak file should also have a deps line for completeness.
sources = [
"$root_gen_dir/blink/public/resources/blink_resources.pak",
"$root_gen_dir/components/components_resources.pak",
"$root_gen_dir/cef/cef_resources.pak",
"$root_gen_dir/content/content_resources.pak",
"$root_gen_dir/net/net_resources.pak",
]
# Use public_deps so that generated grit headers are discoverable from
# the libcef_static target. Grit deps that generate .cc files must be
# listed both here and in the libcef_static target.
public_deps = [
"//third_party/WebKit/public:resources_grit",
"//components/resources:components_resources",
":cef_resources",
"//content:resources",
"//net:net_resources",
]
output = "$root_out_dir/cef.pak"
}
#
# libcef dll/framework target.
#
if (is_mac) {
cef_framework_name = "Chromium Embedded Framework"
tweak_info_plist("cef_framework_plist") {
info_plist = "libcef/resources/framework-Info.plist"
args = [
"--breakpad=1",
"--keystone=0",
"--scm=1",
"--version",
cef_version,
"--branding",
cef_framework_name,
]
}
bundle_data("cef_framework_locales") {
sources = []
foreach(locale, locales_as_mac_outputs) {
sources += [ "$root_gen_dir/repack/locales/$locale.pak" ]
}
public_deps = [
":repack_locales_pack",
]
outputs = [
"{{bundle_resources_dir}}/{{source_name_part}}.lproj/locale.pak",
]
}
bundle_data("cef_framework_resources") {
sources = [
"$root_out_dir/cef.pak",
"$root_out_dir/cef_100_percent.pak",
"$root_out_dir/cef_200_percent.pak",
"$root_out_dir/cef_extensions.pak",
"$root_out_dir/devtools_resources.pak",
"$root_out_dir/icudtl.dat",
# TODO(cef): Restore this line once Widevine build errors are resolved.
# "$root_out_dir/$widevine_cdm_path/widevinecdmadapter.plugin",
]
public_deps = [
":pak",
":pak_100_percent",
":pak_200_percent",
":pak_devtools",
":pak_extensions",
"//third_party/icu:icudata",
# TODO(cef): Restore this line once Widevine build errors are resolved.
# "//third_party/widevine/cdm:widevinecdmadapter",
]
if (v8_use_external_startup_data) {
sources += [
"$root_out_dir/natives_blob.bin",
"$root_out_dir/snapshot_blob.bin",
]
public_deps += [ "//v8" ]
}
outputs = [
"{{bundle_resources_dir}}/{{source_file_part}}",
]
}
mac_framework_bundle("cef_framework") {
output_name = cef_framework_name
sources = gypi_paths2.includes_common +
gypi_paths2.includes_mac +
gypi_paths.autogen_cpp_includes +
gypi_paths2.includes_capi +
gypi_paths.autogen_capi_includes +
gypi_paths2.libcef_sources_common +
gypi_paths.autogen_library_side
# TODO(rsesek): Handle these missing pieces:
# - crash_inspector
# - crash_report_sender.app
deps = [
":cef_framework_locales",
":cef_framework_resources",
":libcef_static",
]
# Both the main app executable and helper executables need to link the
# framework. Because they are at different directory depths, using
# @executable_path as the install_name would require using install_name_tool
# on one of the executables. However install_name_tool only operates
# in-place, which is problematic to express in GN. Instead, use rpath-based
# loading.
ldflags = [ "-Wl,-install_name,@rpath/Frameworks/$output_name.framework/$output_name" ]
if (is_component_build) {
# Set up the rpath for the framework so that it can find dylibs in the
# root output directory. The framework is at
# $app_name.app/Contents/Frameworks/$output_name.framework/$output_name
# so use loader_path to go back to the root output directory.
ldflags += [
"-rpath",
"@loader_path/../../../..",
]
}
2016-06-23 19:42:00 +02:00
info_plist_target = ":cef_framework_plist"
}
} else {
shared_library("libcef") {
sources = gypi_paths2.includes_common +
gypi_paths.autogen_cpp_includes +
gypi_paths2.includes_capi +
gypi_paths.autogen_capi_includes +
gypi_paths2.libcef_sources_common +
gypi_paths.autogen_library_side
deps = [
":libcef_static",
]
if (is_win) {
sources += gypi_paths2.includes_win + [
"libcef_dll/libcef_dll.rc",
]
# This is a large module that can't do incremental linking in some cases.
configs -= [ "//build/config/win:default_incremental_linking" ]
configs +=
[ "//build/config/win:default_large_module_incremental_linking" ]
deps += [
# Bring in ui_unscaled_resources.rc which contains custom cursors.
# TODO(cef): Remove this once custom cursors can be loaded via
# ResourceBundle. See crbug.com/147663.
"//ui/resources:ui_unscaled_resources_grd",
]
}
if (is_linux && !is_debug && !is_asan && use_allocator=="none") {
# Only export necessary symbols from libcef.so.
# Don't do this in Debug builds because it causes the resulting application to crash.
ldflags = [ "-Wl,--version-script=" +
rebase_path("//cef/libcef_dll/libcef.lst") ]
}
}
}
#
# Executable/app targets.
#
# cef_unittests shared sources.
cef_unittests_sources = [
"tests/cefclient/browser/client_app_browser.cc",
"tests/cefclient/browser/client_app_browser.h",
"tests/cefclient/browser/main_message_loop.cc",
"tests/cefclient/browser/main_message_loop.h",
"tests/cefclient/browser/main_message_loop_external_pump.cc",
"tests/cefclient/browser/main_message_loop_external_pump.h",
"tests/cefclient/browser/main_message_loop_std.cc",
"tests/cefclient/browser/main_message_loop_std.h",
"tests/cefclient/browser/resource_util.h",
"tests/cefclient/browser/resource_util.cc",
"tests/cefclient/browser/resource_util.h",
"tests/cefclient/common/client_app.cc",
"tests/cefclient/common/client_app.h",
"tests/cefclient/common/client_app_other.cc",
"tests/cefclient/common/client_app_other.h",
"tests/cefclient/common/client_switches.cc",
"tests/cefclient/common/client_switches.h",
"tests/cefclient/renderer/client_app_renderer.cc",
"tests/cefclient/renderer/client_app_renderer.h",
"tests/cefclient/resources/osr_test.html",
"tests/cefclient/resources/pdf.html",
"tests/cefclient/resources/pdf.pdf",
"tests/cefclient/resources/window_icon.1x.png",
"tests/cefclient/resources/window_icon.1x.png",
"tests/unittests/browser_info_map_unittest.cc",
"tests/unittests/command_line_unittest.cc",
"tests/unittests/cookie_unittest.cc",
"tests/unittests/dialog_unittest.cc",
"tests/unittests/display_unittest.cc",
"tests/unittests/dom_unittest.cc",
"tests/unittests/download_unittest.cc",
"tests/unittests/draggable_regions_unittest.cc",
"tests/unittests/frame_unittest.cc",
"tests/unittests/geolocation_unittest.cc",
"tests/unittests/image_unittest.cc",
"tests/unittests/image_util.cc",
"tests/unittests/image_util.h",
"tests/unittests/jsdialog_unittest.cc",
"tests/unittests/life_span_unittest.cc",
"tests/unittests/message_router_unittest.cc",
"tests/unittests/navigation_unittest.cc",
"tests/unittests/os_rendering_unittest.cc",
"tests/unittests/parser_unittest.cc",
"tests/unittests/plugin_unittest.cc",
"tests/unittests/preference_unittest.cc",
"tests/unittests/print_unittest.cc",
"tests/unittests/process_message_unittest.cc",
"tests/unittests/request_context_unittest.cc",
"tests/unittests/request_handler_unittest.cc",
"tests/unittests/request_unittest.cc",
"tests/unittests/resource_manager_unittest.cc",
"tests/unittests/routing_test_handler.cc",
"tests/unittests/routing_test_handler.h",
"tests/unittests/run_all_unittests.cc",
"tests/unittests/scheme_handler_unittest.cc",
"tests/unittests/stream_unittest.cc",
"tests/unittests/stream_resource_handler_unittest.cc",
"tests/unittests/string_unittest.cc",
"tests/unittests/client_app_delegates.cc",
"tests/unittests/task_unittest.cc",
"tests/unittests/test_handler.cc",
"tests/unittests/test_handler.h",
"tests/unittests/test_suite.cc",
"tests/unittests/test_suite.h",
"tests/unittests/test_util.cc",
"tests/unittests/test_util.h",
"tests/unittests/thread_helper.cc",
"tests/unittests/thread_helper.h",
"tests/unittests/tracing_unittest.cc",
"tests/unittests/translator_unittest.cc",
"tests/unittests/urlrequest_unittest.cc",
"tests/unittests/v8_unittest.cc",
"tests/unittests/values_unittest.cc",
"tests/unittests/version_unittest.cc",
"tests/unittests/xml_reader_unittest.cc",
"tests/unittests/zip_reader_unittest.cc",
]
if (use_aura) {
cef_unittests_sources += [
"tests/unittests/views/button_unittest.cc",
"tests/unittests/views/panel_unittest.cc",
"tests/unittests/views/scroll_view_unittest.cc",
"tests/unittests/views/test_window_delegate.cc",
"tests/unittests/views/test_window_delegate.h",
"tests/unittests/views/textfield_unittest.cc",
"tests/unittests/views/window_unittest.cc",
]
}
# cef_unittests shared deps.
cef_unittests_deps = [
"//base",
"//base:i18n",
"//base/test:test_support",
"//build/config/sanitizers:deps",
"//testing/gtest",
"//third_party/icu",
"//third_party/zlib:zip",
"//ui/base",
]
if (is_mac) {
# Helper for generating the CEF app bundle.
template("cef_app") {
assert(defined(invoker.helper_info_plist))
assert(defined(invoker.helper_sources))
assert(defined(invoker.info_plist))
assert(defined(invoker.sources))
app_name = target_name
app_helper_name = "$app_name Helper"
app_testonly = defined(invoker.testonly) && invoker.testonly
tweak_info_plist("${app_name}_helper_plist") {
testonly = app_testonly
info_plist = invoker.helper_info_plist
args = [
"--breakpad=0",
"--keystone=0",
"--scm=0",
"--version",
cef_version,
]
}
mac_app_bundle("${app_name}_helper_app") {
testonly = app_testonly
output_name = app_helper_name
sources = invoker.helper_sources
deps = [
":cef_framework+link",
":libcef_dll_wrapper",
]
if (defined(invoker.helper_deps)) {
deps += invoker.helper_deps
}
ldflags = [
# The helper is in $app_name.app/Contents/Frameworks/$app_name Helper.app/Contents/MacOS/
# so set rpath up to Contents/ so that the loader can find Frameworks/.
2016-06-23 19:42:00 +02:00
"-rpath",
"@executable_path/../../../..",
2016-06-23 19:42:00 +02:00
]
info_plist_target = ":${app_name}_helper_plist"
}
bundle_data("${app_name}_framework_bundle_data") {
testonly = app_testonly
sources = [
"$root_out_dir/$cef_framework_name.framework",
"$root_out_dir/$app_helper_name.app",
]
public_deps = [
":cef_framework+link",
":${app_name}_helper_app",
2016-06-23 19:42:00 +02:00
]
outputs = [
"{{bundle_root_dir}}/Frameworks/{{source_file_part}}",
]
}
tweak_info_plist("${app_name}_plist") {
testonly = app_testonly
info_plist = invoker.info_plist
args = [
"--scm=1",
"--version",
cef_version,
]
}
mac_app_bundle(app_name) {
testonly = app_testonly
output_name = app_name
sources = invoker.sources
deps = [
":${app_name}_framework_bundle_data",
]
if (defined(invoker.deps)) {
deps += invoker.deps
}
if (defined(invoker.libs)) {
libs = invoker.libs
}
ldflags = [
# The main app is at $app_name.app/Contents/MacOS/$app_name
# so set rpath up to Contents/ so that the loader can find Frameworks/.
"-rpath",
"@executable_path/../",
]
2016-06-23 19:42:00 +02:00
info_plist_target = ":${app_name}_plist"
}
}
#
# cefclient app targets.
#
bundle_data("cefclient_resources_bundle_data") {
sources = gypi_paths2.cefclient_sources_resources + [
"tests/cefclient/resources/mac/cefclient.icns",
]
outputs = [
"{{bundle_resources_dir}}/{{source_file_part}}",
]
}
bundle_data("cefclient_resources_bundle_data_english") {
sources = [
"tests/cefclient/resources/mac/English.lproj/InfoPlist.strings",
]
outputs = [
"{{bundle_resources_dir}}/English.lproj/{{source_file_part}}",
]
}
mac_xib_bundle_data("cefclient_xibs") {
sources = [
"tests/cefclient/resources/mac/English.lproj/MainMenu.xib",
]
output_path = "{{bundle_resources_dir}}/English.lproj"
}
cef_app("cefclient") {
helper_info_plist = "tests/cefclient/resources/mac/helper-Info.plist"
helper_sources = gypi_paths2.includes_mac +
gypi_paths2.includes_common +
gypi_paths2.includes_wrapper +
gypi_paths2.cefclient_sources_common +
gypi_paths2.cefclient_sources_renderer +
gypi_paths2.cefclient_sources_mac_helper
helper_deps = [
":libcef_dll_wrapper",
]
info_plist = "tests/cefclient/resources/mac/Info.plist"
sources = gypi_paths2.includes_mac +
gypi_paths2.includes_common +
gypi_paths2.includes_wrapper +
gypi_paths2.cefclient_sources_browser +
gypi_paths2.cefclient_sources_common +
gypi_paths2.cefclient_sources_mac
deps = [
":cefclient_resources_bundle_data",
":cefclient_resources_bundle_data_english",
":cefclient_xibs",
":libcef_dll_wrapper",
]
libs = [
"AppKit.framework",
"OpenGL.framework",
]
}
#
# cefsimple app targets.
#
bundle_data("cefsimple_resources_bundle_data") {
sources = [
"tests/cefsimple/mac/cefsimple.icns",
]
outputs = [
"{{bundle_resources_dir}}/{{source_file_part}}",
]
}
bundle_data("cefsimple_resources_bundle_data_english") {
sources = [
"tests/cefsimple/mac/English.lproj/InfoPlist.strings",
]
outputs = [
"{{bundle_resources_dir}}/English.lproj/{{source_file_part}}",
]
}
mac_xib_bundle_data("cefsimple_xibs") {
sources = [
"tests/cefsimple/mac/English.lproj/MainMenu.xib",
]
output_path = "{{bundle_resources_dir}}/English.lproj"
}
cef_app("cefsimple") {
helper_info_plist = "tests/cefsimple/mac/helper-Info.plist"
helper_sources = gypi_paths2.includes_mac +
gypi_paths2.includes_common +
gypi_paths2.includes_wrapper +
gypi_paths2.cefsimple_sources_mac_helper
helper_deps = [
":libcef_dll_wrapper",
]
info_plist = "tests/cefsimple/mac/Info.plist"
sources = gypi_paths2.includes_mac +
gypi_paths2.includes_common +
gypi_paths2.includes_wrapper +
gypi_paths2.cefsimple_sources_common +
gypi_paths2.cefsimple_sources_mac
deps = [
":cefsimple_resources_bundle_data",
":cefsimple_resources_bundle_data_english",
":cefsimple_xibs",
":libcef_dll_wrapper",
]
}
#
# cef_unittests app targets.
#
cef_app("cef_unittests") {
testonly = true
helper_info_plist = "tests/cefclient/resources/mac/helper-Info.plist"
helper_sources = [
"tests/cefclient/browser/resource_util.cc",
"tests/cefclient/browser/resource_util.h",
"tests/cefclient/browser/resource_util_mac.mm",
"tests/cefclient/browser/resource_util_posix.cc",
"tests/cefclient/common/client_app.cc",
"tests/cefclient/common/client_app.h",
"tests/cefclient/common/client_app_other.cc",
"tests/cefclient/common/client_app_other.h",
"tests/cefclient/common/client_switches.cc",
"tests/cefclient/common/client_switches.h",
"tests/cefclient/process_helper_mac.cc",
"tests/cefclient/renderer/client_app_renderer.cc",
"tests/cefclient/renderer/client_app_renderer.h",
"tests/unittests/client_app_delegates.cc",
"tests/unittests/cookie_unittest.cc",
"tests/unittests/dom_unittest.cc",
"tests/unittests/frame_unittest.cc",
"tests/unittests/message_router_unittest.cc",
"tests/unittests/navigation_unittest.cc",
"tests/unittests/plugin_unittest.cc",
"tests/unittests/preference_unittest.cc",
"tests/unittests/process_message_unittest.cc",
"tests/unittests/request_handler_unittest.cc",
"tests/unittests/request_unittest.cc",
"tests/unittests/routing_test_handler.cc",
"tests/unittests/routing_test_handler.h",
"tests/unittests/scheme_handler_unittest.cc",
"tests/unittests/urlrequest_unittest.cc",
"tests/unittests/test_handler.cc",
"tests/unittests/test_handler.h",
"tests/unittests/test_suite.cc",
"tests/unittests/test_suite.h",
"tests/unittests/test_util.cc",
"tests/unittests/test_util.h",
"tests/unittests/thread_helper.cc",
"tests/unittests/thread_helper.h",
"tests/unittests/tracing_unittest.cc",
"tests/unittests/v8_unittest.cc",
]
helper_deps = cef_unittests_deps + [
":libcef_dll_wrapper_unittests",
]
info_plist = "tests/cefclient/resources/mac/Info.plist"
sources = cef_unittests_sources + [
"tests/cefclient/browser/main_message_loop_external_pump_mac.mm",
"tests/cefclient/browser/resource_util_mac.mm",
"tests/cefclient/browser/resource_util_posix.cc",
"tests/unittests/os_rendering_unittest_mac.h",
"tests/unittests/os_rendering_unittest_mac.mm",
"tests/unittests/run_all_unittests_mac.mm",
]
deps = cef_unittests_deps + [
":cefclient_resources_bundle_data",
":cefclient_resources_bundle_data_english",
":cefclient_xibs",
":libcef_dll_wrapper_unittests",
]
libs = [
"AppKit.framework",
]
}
} else {
#
# cefclient targets.
#
# The cefclient target depends on packages that are not available in the
# default sysroot environment.
if (is_linux && !use_sysroot) {
pkg_config("gtk") {
packages = [
"gmodule-2.0",
"gtk+-2.0",
"gthread-2.0",
"gtk+-unix-print-2.0",
]
}
pkg_config("gtkglext") {
packages = [
"gtkglext-1.0",
]
}
}
if (is_linux) {
copy("copy_cefclient_files") {
sources = gypi_paths2.cefclient_sources_resources
outputs = [ "${root_out_dir}/files/{{source_file_part}}" ]
}
}
executable("cefclient") {
sources = gypi_paths2.includes_common +
gypi_paths2.includes_wrapper +
gypi_paths2.cefclient_sources_browser +
gypi_paths2.cefclient_sources_common +
gypi_paths2.cefclient_sources_renderer +
gypi_paths2.cefclient_sources_resources
deps = [
":libcef",
":libcef_dll_wrapper",
"//build/config/sanitizers:deps",
]
if (is_win) {
sources += gypi_paths2.includes_win +
gypi_paths2.cefclient_sources_win
# Set /SUBSYSTEM:WINDOWS.
configs -= [ "//build/config/win:console" ]
configs += [ "//build/config/win:windowed" ]
defines = [
"CEF_USE_ATL",
"CEF_USE_SANDBOX",
]
deps += [
":cef_sandbox",
"//build/win:default_exe_manifest",
# Tool that can be used for testing crash reporting.
"//content/shell:content_shell_crash_service",
]
libs = [
"comctl32.lib",
"shlwapi.lib",
"rpcrt4.lib",
"opengl32.lib",
"glu32.lib",
]
}
if (is_linux) {
sources += gypi_paths2.includes_linux +
gypi_paths2.cefclient_sources_linux
deps += [
":copy_cefclient_files",
]
libs = [
"X11",
]
if (!use_sysroot) {
configs += [
":gtk",
":gtkglext",
]
}
if (!is_component_build) {
# Set rpath to find our own libfreetype even in a non-component build.
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
}
}
}
#
# cefsimple targets.
#
executable("cefsimple") {
sources = gypi_paths2.includes_common +
gypi_paths2.includes_wrapper +
gypi_paths2.cefsimple_sources_common
deps = [
":libcef",
":libcef_dll_wrapper",
"//build/config/sanitizers:deps",
]
if (is_win) {
sources += gypi_paths2.includes_win +
gypi_paths2.cefsimple_sources_win
# Set /SUBSYSTEM:WINDOWS.
configs -= [ "//build/config/win:console" ]
configs += [ "//build/config/win:windowed" ]
defines = [
"CEF_USE_SANDBOX",
]
deps += [
":cef_sandbox",
"//build/win:default_exe_manifest",
]
libs = [
"comctl32.lib",
"shlwapi.lib",
"rpcrt4.lib",
]
}
if (is_linux) {
sources += gypi_paths2.includes_linux +
gypi_paths2.cefsimple_sources_linux
libs = [
"X11",
]
if (!is_component_build) {
# Set rpath to find our own libfreetype even in a non-component build.
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
}
}
}
#
# cef_unittests targets.
#
executable("cef_unittests") {
testonly = true
sources = cef_unittests_sources
deps = cef_unittests_deps + [
":libcef",
":libcef_dll_wrapper_unittests",
]
if (is_win) {
sources += [
"tests/cefclient/browser/main_message_loop_external_pump_win.cc",
"tests/cefclient/browser/resource_util_win.cc",
"tests/cefclient/browser/util_win.cc",
"tests/cefclient/browser/util_win.h",
"tests/cefclient/resources/win/cefclient.rc",
]
defines = [
"CEF_USE_SANDBOX",
]
deps += [
":cef_sandbox",
"//build/win:default_exe_manifest",
]
}
if (is_linux) {
sources += [
"tests/cefclient/browser/main_message_loop_external_pump_linux.cc",
"tests/cefclient/browser/resource_util_linux.cc",
"tests/cefclient/browser/resource_util_posix.cc",
]
deps += [
":copy_cefclient_files",
]
}
if (is_linux && !is_component_build) {
# Set rpath to find our own libfreetype even in a non-component build.
configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
}
}
}