2305 lines
72 KiB
Plaintext
2305 lines
72 KiB
Plaintext
# 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:
|
||
#
|
||
# Optionally configure GN by setting the `GN_DEFINES` and/or `GN_ARGUMENTS`
|
||
# environment variables.
|
||
#
|
||
# Example A: Create an official build on Windows:
|
||
#
|
||
# > set GN_DEFINES=is_official_build=true
|
||
#
|
||
# Example B: Generate VS2017 project files in addition to the default Ninja
|
||
# build files on Windows:
|
||
#
|
||
# > set GN_ARGUMENTS=--ide=vs2017 --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 ceftests
|
||
#
|
||
# 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("//base/allocator/allocator.gni")
|
||
import("//build/config/features.gni")
|
||
import("//build/config/locales.gni")
|
||
import("//build/config/ozone.gni")
|
||
import("//build/config/sanitizers/sanitizers.gni")
|
||
import("//build/config/ui.gni")
|
||
import("//cef/libcef/features/features.gni")
|
||
import("//chrome/common/features.gni")
|
||
import("//content/public/app/mac_helpers.gni")
|
||
import("//extensions/buildflags/buildflags.gni")
|
||
import("//media/media_options.gni")
|
||
import("//mojo/public/tools/bindings/mojom.gni")
|
||
import("//ppapi/buildflags/buildflags.gni")
|
||
import("//printing/buildflags/buildflags.gni")
|
||
import("//rlz/buildflags/buildflags.gni")
|
||
import("//testing/test.gni")
|
||
import("//third_party/icu/config.gni")
|
||
import("//third_party/widevine/cdm/widevine.gni")
|
||
import("//tools/grit/repack.gni")
|
||
import("//tools/grit/grit_rule.gni")
|
||
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
|
||
import("//ui/gl/features.gni")
|
||
import("//v8/gni/v8.gni")
|
||
if (is_clang) {
|
||
import("//build/config/clang/clang.gni")
|
||
}
|
||
if (is_linux) {
|
||
import("//build/config/linux/pkg_config.gni")
|
||
import("//third_party/fontconfig/fontconfig.gni")
|
||
}
|
||
if (is_mac) {
|
||
import("//build/apple/tweak_info_plist.gni")
|
||
import("//build/config/mac/rules.gni")
|
||
import("//chrome/version.gni")
|
||
import("//media/cdm/library_cdm/cdm_paths.gni")
|
||
|
||
# Template to compile .xib and .storyboard files.
|
||
#
|
||
# Arguments
|
||
#
|
||
# sources:
|
||
# list of string, sources to compile
|
||
#
|
||
# ibtool_flags:
|
||
# (optional) list of string, additional flags to pass to the ibtool
|
||
template("compile_ib_files") {
|
||
action_foreach(target_name) {
|
||
forward_variables_from(invoker,
|
||
[
|
||
"testonly",
|
||
"visibility",
|
||
])
|
||
assert(defined(invoker.sources),
|
||
"sources must be specified for $target_name")
|
||
assert(defined(invoker.output_extension),
|
||
"output_extension must be specified for $target_name")
|
||
|
||
ibtool_flags = []
|
||
if (defined(invoker.ibtool_flags)) {
|
||
ibtool_flags = invoker.ibtool_flags
|
||
}
|
||
|
||
_output_extension = invoker.output_extension
|
||
|
||
script = "//cef/tools/compile_ib_files.py"
|
||
sources = invoker.sources
|
||
outputs = [
|
||
"$target_gen_dir/$target_name/{{source_name_part}}.$_output_extension",
|
||
]
|
||
args = [
|
||
"--input",
|
||
"{{source}}",
|
||
"--output",
|
||
rebase_path(
|
||
"$target_gen_dir/$target_name/{{source_name_part}}.$_output_extension",
|
||
root_build_dir),
|
||
]
|
||
if (!use_system_xcode) {
|
||
args += [
|
||
"--developer_dir",
|
||
hermetic_xcode_path,
|
||
]
|
||
}
|
||
args += ibtool_flags
|
||
}
|
||
}
|
||
|
||
# Template to compile and package Mac XIB files as bundle data.
|
||
#
|
||
# Arguments
|
||
#
|
||
# sources:
|
||
# list of string, sources to comiple
|
||
#
|
||
# output_path:
|
||
# (optional) string, the path to use for the outputs list in the
|
||
# bundle_data step. If unspecified, defaults to bundle_resources_dir.
|
||
template("mac_xib_bundle_data") {
|
||
_target_name = target_name
|
||
_compile_target_name = _target_name + "_compile_ibtool"
|
||
|
||
compile_ib_files(_compile_target_name) {
|
||
forward_variables_from(invoker, [ "testonly" ])
|
||
visibility = [ ":$_target_name" ]
|
||
sources = invoker.sources
|
||
output_extension = "nib"
|
||
ibtool_flags = [
|
||
"--minimum-deployment-target",
|
||
mac_deployment_target,
|
||
|
||
# TODO(rsesek): Enable this once all the bots are on Xcode 7+.
|
||
# "--target-device",
|
||
# "mac",
|
||
]
|
||
}
|
||
|
||
bundle_data(_target_name) {
|
||
forward_variables_from(invoker,
|
||
[
|
||
"testonly",
|
||
"visibility",
|
||
])
|
||
|
||
public_deps = [
|
||
":$_compile_target_name",
|
||
]
|
||
sources = get_target_outputs(":$_compile_target_name")
|
||
|
||
_output_path = "{{bundle_resources_dir}}"
|
||
if (defined(invoker.output_path)) {
|
||
_output_path = invoker.output_path
|
||
}
|
||
|
||
outputs = [
|
||
"$_output_path/{{source_file_part}}",
|
||
]
|
||
}
|
||
}
|
||
}
|
||
if (is_win) {
|
||
import("//build/config/win/console_app.gni")
|
||
import("//build/config/win/manifest.gni")
|
||
}
|
||
|
||
if (is_linux) {
|
||
declare_args() {
|
||
# The cefclient target depends on GTK packages that are not available in the
|
||
# default sysroot environment. So we should only use them when we are not
|
||
# using the sysroot. Alternatively, the developer might not want to use the
|
||
# GTK dependencies at all, in which case they can set `cef_use_gtk=false`.
|
||
cef_use_gtk = !use_sysroot
|
||
}
|
||
}
|
||
|
||
#
|
||
# Verify required global arguments configured via `gn args`.
|
||
# Set by GetRequiredArgs() in //cef/tools/gn_args.py.
|
||
#
|
||
|
||
# Enable support for Print Preview.
|
||
assert(enable_print_preview)
|
||
|
||
# Enable support for Widevine CDM.
|
||
assert(enable_widevine)
|
||
|
||
if (is_mac || is_win) {
|
||
# Enable Widevine CDM host verification and storage ID.
|
||
assert(enable_cdm_host_verification)
|
||
assert(enable_cdm_storage_id)
|
||
assert(alternate_cdm_storage_id_key != "")
|
||
assert(enable_rlz)
|
||
}
|
||
|
||
# Enable Views UI framework.
|
||
assert(toolkit_views)
|
||
|
||
if (is_clang) {
|
||
# Don't use the chrome style plugin.
|
||
assert(!clang_use_chrome_plugins)
|
||
}
|
||
|
||
|
||
#
|
||
# Local variables.
|
||
#
|
||
|
||
if (is_mac) {
|
||
# The tweak_info_plist.py script requires a version number with 4 parts. CEF
|
||
# uses a version number with 3 parts so just set the last part to 0.
|
||
cef_plist_version = exec_script(
|
||
"//cef/tools/cef_version.py", [ "plist" ], "trim string", [])
|
||
|
||
# Need to be creative to match dylib version formatting requirements.
|
||
cef_dylib_version = exec_script(
|
||
"//cef/tools/cef_version.py", [ "dylib" ], "trim string", [])
|
||
}
|
||
|
||
# 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("//cef/tools/gypi_to_gn.py",
|
||
[ rebase_path("cef_paths.gypi") ],
|
||
"scope",
|
||
[ "cef_paths.gypi" ])
|
||
gypi_paths2 = exec_script("//cef/tools/gypi_to_gn.py",
|
||
[ rebase_path("cef_paths2.gypi") ],
|
||
"scope",
|
||
[ "cef_paths2.gypi" ])
|
||
|
||
includes_common = gypi_paths2.includes_common + gypi_paths2.includes_common_capi
|
||
includes_mac = gypi_paths2.includes_mac + gypi_paths2.includes_mac_capi
|
||
includes_linux = gypi_paths2.includes_linux + gypi_paths2.includes_linux_capi
|
||
includes_win = gypi_paths2.includes_win + gypi_paths2.includes_win_capi
|
||
|
||
#
|
||
# Targets that will be built when depending on "//cef".
|
||
#
|
||
|
||
group("cef") {
|
||
testonly = true
|
||
deps = [
|
||
":cefsimple",
|
||
":ceftests",
|
||
":libcef_static_unittests",
|
||
]
|
||
|
||
if (!is_linux || ozone_platform_x11) {
|
||
deps += [ ":cefclient" ]
|
||
}
|
||
}
|
||
|
||
|
||
if (is_win) {
|
||
# Target for building code that accesses chrome_elf internals. Included from
|
||
# the //chrome_elf:crash target. Defined as a static_library instead of a
|
||
# source_set because (a) the source files don't export any symbols and (b)
|
||
# *_switches.cc duplication otherwise causes linker errors.
|
||
static_library("chrome_elf_set") {
|
||
sources = [
|
||
"libcef/common/crash_reporter_client.cc",
|
||
"libcef/common/crash_reporter_client.h",
|
||
|
||
# Required for crash_keys::GetChromeCrashKeys.
|
||
# Otherwise we need to copy this array into CEF, which would be difficult
|
||
# to maintain.
|
||
"//chrome/common/crash_keys.cc",
|
||
"//chrome/common/chrome_switches.cc",
|
||
"//components/flags_ui/flags_ui_switches.cc",
|
||
"//content/public/common/content_switches.cc",
|
||
]
|
||
|
||
configs += [
|
||
"libcef/features:config",
|
||
"//build/config:precompiled_headers",
|
||
]
|
||
|
||
public_configs = [
|
||
"libcef/features:config",
|
||
]
|
||
|
||
if (is_component_build) {
|
||
# Avoid linker errors with content_switches.cc in component build by not
|
||
# defining CONTENT_EXPORT.
|
||
defines = ["COMPILE_CONTENT_STATICALLY"]
|
||
}
|
||
|
||
deps = [
|
||
"//components/crash/core/common", # crash_keys
|
||
|
||
# Required by chrome_switches.cc
|
||
"//chrome/common:buildflags",
|
||
"//ppapi/buildflags:buildflags",
|
||
"//printing/buildflags:buildflags",
|
||
"//ui/base:buildflags",
|
||
|
||
# Required by content_switches.cc
|
||
"//media:media_buildflags",
|
||
|
||
# Required by crash_keys.cc (from base/stl_util.h)
|
||
"//third_party/abseil-cpp:absl",
|
||
]
|
||
}
|
||
}
|
||
|
||
|
||
#
|
||
# Test support targets.
|
||
#
|
||
|
||
# Source files that are linked into libcef and cef_framework and tested by
|
||
# libcef_static_unittests. These sources provide libcef-internal functionality
|
||
# that is limited in scope (e.g. utility classes/methods).
|
||
source_set("libcef_static_unittested") {
|
||
sources = [
|
||
"libcef/browser/devtools/devtools_util.cc",
|
||
"libcef/browser/devtools/devtools_util.h",
|
||
"libcef/browser/geometry_util.h",
|
||
"libcef/browser/geometry_util.cc",
|
||
]
|
||
|
||
deps = [
|
||
"//ui/gfx/geometry",
|
||
]
|
||
|
||
public_deps = [
|
||
# Support relative include paths.
|
||
"//base",
|
||
]
|
||
|
||
configs += [
|
||
"libcef/features:config",
|
||
"//build/config:precompiled_headers",
|
||
]
|
||
}
|
||
|
||
# Executable target that provides test coverage for libcef_static_unittested
|
||
# source files.
|
||
test("libcef_static_unittests") {
|
||
testonly = true
|
||
|
||
sources = [
|
||
"libcef/browser/devtools/devtools_util_unittest.cc",
|
||
"libcef/browser/geometry_util_unittest.cc",
|
||
]
|
||
|
||
deps = [
|
||
":libcef_static_unittested",
|
||
"//base/test:run_all_unittests",
|
||
"//testing/gtest",
|
||
]
|
||
|
||
configs += [
|
||
"libcef/features:config",
|
||
"//build/config:precompiled_headers",
|
||
]
|
||
}
|
||
|
||
# Source files that are linked into libcef and cef_framework and implement
|
||
# interfaces exposed to ceftests via the include/test directory. These sources
|
||
# may access Chromium/CEF internals. This is defined as a separate target from
|
||
# libcef_static to avoid introducing testonly dependencies there.
|
||
source_set("libcef_test_support") {
|
||
testonly = true
|
||
|
||
sources = [
|
||
"libcef/browser/test/test_helpers_impl.cc",
|
||
"libcef/browser/test/test_server_impl.cc",
|
||
"libcef/browser/test/test_server_impl.h",
|
||
"libcef/common/test/translator_test_impl.cc",
|
||
]
|
||
|
||
deps = [
|
||
":libcef_static",
|
||
"//net:test_support",
|
||
|
||
# Support for UI input events.
|
||
"//ui/views:test_support",
|
||
]
|
||
}
|
||
|
||
|
||
#
|
||
# libcef_static target.
|
||
#
|
||
|
||
source_set("libcef_static") {
|
||
sources = includes_common +
|
||
gypi_paths.autogen_cpp_includes + [
|
||
"libcef/browser/alloy/alloy_browser_host_impl.cc",
|
||
"libcef/browser/alloy/alloy_browser_host_impl.h",
|
||
"libcef/browser/alloy/browser_platform_delegate_alloy.cc",
|
||
"libcef/browser/alloy/browser_platform_delegate_alloy.h",
|
||
"libcef/browser/alloy/dialogs/alloy_constrained_window_views_client.cc",
|
||
"libcef/browser/alloy/dialogs/alloy_constrained_window_views_client.h",
|
||
"libcef/browser/alloy/dialogs/alloy_web_contents_dialog_helper.cc",
|
||
"libcef/browser/alloy/dialogs/alloy_web_contents_dialog_helper.h",
|
||
"libcef/browser/audio_capturer.cc",
|
||
"libcef/browser/audio_capturer.h",
|
||
"libcef/browser/audio_loopback_stream_creator.cc",
|
||
"libcef/browser/audio_loopback_stream_creator.h",
|
||
"libcef/browser/browser_contents_delegate.cc",
|
||
"libcef/browser/browser_contents_delegate.h",
|
||
"libcef/browser/browser_context.cc",
|
||
"libcef/browser/browser_context.h",
|
||
"libcef/browser/browser_event_util.cc",
|
||
"libcef/browser/browser_event_util.h",
|
||
"libcef/browser/browser_frame.cc",
|
||
"libcef/browser/browser_frame.h",
|
||
"libcef/browser/browser_guest_util.cc",
|
||
"libcef/browser/browser_guest_util.h",
|
||
"libcef/browser/browser_host_base.cc",
|
||
"libcef/browser/browser_host_base.h",
|
||
"libcef/browser/browser_host_create.cc",
|
||
"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_manager.cc",
|
||
"libcef/browser/browser_manager.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/certificate_query.cc",
|
||
"libcef/browser/certificate_query.h",
|
||
"libcef/browser/chrome/browser_delegate.h",
|
||
"libcef/browser/chrome/browser_platform_delegate_chrome.cc",
|
||
"libcef/browser/chrome/browser_platform_delegate_chrome.h",
|
||
"libcef/browser/chrome/chrome_browser_context.cc",
|
||
"libcef/browser/chrome/chrome_browser_context.h",
|
||
"libcef/browser/chrome/chrome_browser_delegate.cc",
|
||
"libcef/browser/chrome/chrome_browser_delegate.h",
|
||
"libcef/browser/chrome/chrome_browser_host_impl.cc",
|
||
"libcef/browser/chrome/chrome_browser_host_impl.h",
|
||
"libcef/browser/chrome/chrome_browser_main_extra_parts_cef.cc",
|
||
"libcef/browser/chrome/chrome_browser_main_extra_parts_cef.h",
|
||
"libcef/browser/chrome/chrome_content_browser_client_cef.cc",
|
||
"libcef/browser/chrome/chrome_content_browser_client_cef.h",
|
||
"libcef/browser/chrome/chrome_context_menu_handler.cc",
|
||
"libcef/browser/chrome/chrome_context_menu_handler.h",
|
||
"libcef/browser/chrome/chrome_startup_browser_creator.cc",
|
||
"libcef/browser/chrome/chrome_startup_browser_creator.h",
|
||
"libcef/browser/chrome/chrome_web_contents_view_delegate_cef.h",
|
||
"libcef/browser/chrome/extensions/chrome_extension_util.cc",
|
||
"libcef/browser/chrome/extensions/chrome_extension_util.h",
|
||
"libcef/browser/chrome/extensions/chrome_mime_handler_view_guest_delegate_cef.cc",
|
||
"libcef/browser/chrome/extensions/chrome_mime_handler_view_guest_delegate_cef.h",
|
||
"libcef/browser/chrome/views/browser_platform_delegate_chrome_child_window.cc",
|
||
"libcef/browser/chrome/views/browser_platform_delegate_chrome_child_window.h",
|
||
"libcef/browser/chrome/views/browser_platform_delegate_chrome_views.cc",
|
||
"libcef/browser/chrome/views/browser_platform_delegate_chrome_views.h",
|
||
"libcef/browser/chrome/views/chrome_browser_frame.cc",
|
||
"libcef/browser/chrome/views/chrome_browser_frame.h",
|
||
"libcef/browser/chrome/views/chrome_browser_view.cc",
|
||
"libcef/browser/chrome/views/chrome_browser_view.h",
|
||
"libcef/browser/chrome/views/chrome_child_window.cc",
|
||
"libcef/browser/chrome/views/chrome_child_window.h",
|
||
"libcef/browser/chrome/views/chrome_views_util.cc",
|
||
"libcef/browser/chrome/views/chrome_views_util.h",
|
||
"libcef/browser/chrome/views/toolbar_view_impl.cc",
|
||
"libcef/browser/chrome/views/toolbar_view_impl.h",
|
||
"libcef/browser/chrome/views/toolbar_view_view.cc",
|
||
"libcef/browser/chrome/views/toolbar_view_view.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/devtools/devtools_controller.cc",
|
||
"libcef/browser/devtools/devtools_controller.h",
|
||
"libcef/browser/devtools/devtools_protocol_manager.cc",
|
||
"libcef/browser/devtools/devtools_protocol_manager.h",
|
||
"libcef/browser/devtools/devtools_window_runner.cc",
|
||
"libcef/browser/devtools/devtools_window_runner.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/download_manager_delegate_impl.cc",
|
||
"libcef/browser/download_manager_delegate_impl.h",
|
||
"libcef/browser/file_dialog_manager.cc",
|
||
"libcef/browser/file_dialog_manager.h",
|
||
"libcef/browser/file_dialog_runner.cc",
|
||
"libcef/browser/file_dialog_runner.h",
|
||
"libcef/browser/frame_host_impl.cc",
|
||
"libcef/browser/frame_host_impl.h",
|
||
"libcef/browser/frame_service_base.h",
|
||
"libcef/browser/global_preference_manager_impl.cc",
|
||
"libcef/browser/global_preference_manager_impl.h",
|
||
"libcef/browser/hang_monitor.cc",
|
||
"libcef/browser/hang_monitor.h",
|
||
"libcef/browser/image_impl.cc",
|
||
"libcef/browser/image_impl.h",
|
||
"libcef/browser/iothread_state.cc",
|
||
"libcef/browser/iothread_state.h",
|
||
"libcef/browser/javascript_dialog_runner.h",
|
||
"libcef/browser/javascript_dialog_manager.cc",
|
||
"libcef/browser/javascript_dialog_manager.h",
|
||
"libcef/browser/main_runner.cc",
|
||
"libcef/browser/main_runner.h",
|
||
"libcef/browser/media_access_query.cc",
|
||
"libcef/browser/media_access_query.h",
|
||
"libcef/browser/media_router/media_route_impl.cc",
|
||
"libcef/browser/media_router/media_route_impl.h",
|
||
"libcef/browser/media_router/media_router_impl.cc",
|
||
"libcef/browser/media_router/media_router_impl.h",
|
||
"libcef/browser/media_router/media_router_manager.cc",
|
||
"libcef/browser/media_router/media_router_manager.h",
|
||
"libcef/browser/media_router/media_sink_impl.cc",
|
||
"libcef/browser/media_router/media_sink_impl.h",
|
||
"libcef/browser/media_router/media_source_impl.cc",
|
||
"libcef/browser/media_router/media_source_impl.h",
|
||
"libcef/browser/media_stream_registrar.cc",
|
||
"libcef/browser/media_stream_registrar.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/native/cursor_util.h",
|
||
"libcef/browser/native/cursor_util.cc",
|
||
"libcef/browser/native/window_delegate_view.cc",
|
||
"libcef/browser/native/window_delegate_view.h",
|
||
"libcef/browser/navigation_entry_impl.cc",
|
||
"libcef/browser/navigation_entry_impl.h",
|
||
"libcef/browser/net/crlset_file_util_impl.cc",
|
||
"libcef/browser/net/throttle_handler.cc",
|
||
"libcef/browser/net/throttle_handler.h",
|
||
"libcef/browser/net_service/browser_urlrequest_impl.cc",
|
||
"libcef/browser/net_service/browser_urlrequest_impl.h",
|
||
"libcef/browser/net_service/cookie_helper.cc",
|
||
"libcef/browser/net_service/cookie_helper.h",
|
||
"libcef/browser/net_service/cookie_manager_impl.cc",
|
||
"libcef/browser/net_service/cookie_manager_impl.h",
|
||
"libcef/browser/net_service/login_delegate.cc",
|
||
"libcef/browser/net_service/login_delegate.h",
|
||
"libcef/browser/net_service/proxy_url_loader_factory.cc",
|
||
"libcef/browser/net_service/proxy_url_loader_factory.h",
|
||
"libcef/browser/net_service/resource_handler_wrapper.cc",
|
||
"libcef/browser/net_service/resource_handler_wrapper.h",
|
||
"libcef/browser/net_service/resource_request_handler_wrapper.cc",
|
||
"libcef/browser/net_service/resource_request_handler_wrapper.h",
|
||
"libcef/browser/net_service/response_filter_wrapper.cc",
|
||
"libcef/browser/net_service/response_filter_wrapper.h",
|
||
"libcef/browser/net_service/stream_reader_url_loader.cc",
|
||
"libcef/browser/net_service/stream_reader_url_loader.h",
|
||
"libcef/browser/net_service/url_loader_factory_getter.cc",
|
||
"libcef/browser/net_service/url_loader_factory_getter.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/host_display_client_osr.cc",
|
||
"libcef/browser/osr/host_display_client_osr.h",
|
||
"libcef/browser/osr/motion_event_osr.cc",
|
||
"libcef/browser/osr/motion_event_osr.h",
|
||
"libcef/browser/osr/osr_accessibility_util.cc",
|
||
"libcef/browser/osr/osr_accessibility_util.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/synthetic_gesture_target_osr.cc",
|
||
"libcef/browser/osr/synthetic_gesture_target_osr.h",
|
||
"libcef/browser/osr/touch_handle_drawable_osr.cc",
|
||
"libcef/browser/osr/touch_handle_drawable_osr.h",
|
||
"libcef/browser/osr/touch_selection_controller_client_osr.cc",
|
||
"libcef/browser/osr/touch_selection_controller_client_osr.h",
|
||
"libcef/browser/osr/video_consumer_osr.cc",
|
||
"libcef/browser/osr/video_consumer_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/permission_prompt.cc",
|
||
"libcef/browser/permission_prompt.h",
|
||
"libcef/browser/prefs/browser_prefs.cc",
|
||
"libcef/browser/prefs/browser_prefs.h",
|
||
"libcef/browser/prefs/pref_helper.cc",
|
||
"libcef/browser/prefs/pref_helper.h",
|
||
"libcef/browser/prefs/pref_registrar.cc",
|
||
"libcef/browser/prefs/pref_registrar.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/print_util.cc",
|
||
"libcef/browser/printing/print_util.h",
|
||
"libcef/browser/process_util_impl.cc",
|
||
"libcef/browser/request_context_handler_map.cc",
|
||
"libcef/browser/request_context_handler_map.h",
|
||
"libcef/browser/request_context_impl.cc",
|
||
"libcef/browser/request_context_impl.h",
|
||
"libcef/browser/scheme_impl.cc",
|
||
"libcef/browser/server_impl.cc",
|
||
"libcef/browser/server_impl.h",
|
||
"libcef/browser/simple_menu_model_impl.cc",
|
||
"libcef/browser/simple_menu_model_impl.h",
|
||
"libcef/browser/ssl_info_impl.cc",
|
||
"libcef/browser/ssl_info_impl.h",
|
||
"libcef/browser/ssl_status_impl.cc",
|
||
"libcef/browser/ssl_status_impl.h",
|
||
"libcef/browser/stream_impl.cc",
|
||
"libcef/browser/stream_impl.h",
|
||
"libcef/browser/task_manager_impl.cc",
|
||
"libcef/browser/task_manager_impl.h",
|
||
"libcef/browser/trace_impl.cc",
|
||
"libcef/browser/trace_subscriber.cc",
|
||
"libcef/browser/trace_subscriber.h",
|
||
"libcef/browser/thread_util.h",
|
||
"libcef/browser/ui_thread.cc",
|
||
"libcef/browser/ui_thread.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/color_provider_tracker.cc",
|
||
"libcef/browser/views/color_provider_tracker.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/overlay_view_host.cc",
|
||
"libcef/browser/views/overlay_view_host.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/widget.cc",
|
||
"libcef/browser/views/widget.h",
|
||
"libcef/browser/views/widget_destruction_observer.h",
|
||
"libcef/browser/views/widget_impl.cc",
|
||
"libcef/browser/views/widget_impl.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",
|
||
"libcef/browser/x509_certificate_impl.cc",
|
||
"libcef/browser/x509_certificate_impl.h",
|
||
"libcef/browser/x509_cert_principal_impl.cc",
|
||
"libcef/browser/x509_cert_principal_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/app_manager.cc",
|
||
"libcef/common/app_manager.h",
|
||
"libcef/common/base_impl.cc",
|
||
"libcef/common/cef_switches.cc",
|
||
"libcef/common/cef_switches.h",
|
||
"libcef/common/chrome/chrome_content_client_cef.cc",
|
||
"libcef/common/chrome/chrome_content_client_cef.h",
|
||
"libcef/common/chrome/chrome_main_delegate_cef.cc",
|
||
"libcef/common/chrome/chrome_main_delegate_cef.h",
|
||
"libcef/common/command_line_impl.cc",
|
||
"libcef/common/command_line_impl.h",
|
||
"libcef/common/crash_reporter_client.cc",
|
||
"libcef/common/crash_reporter_client.h",
|
||
"libcef/common/crash_reporting.cc",
|
||
"libcef/common/crash_reporting.h",
|
||
"libcef/common/drag_data_impl.cc",
|
||
"libcef/common/drag_data_impl.h",
|
||
"libcef/common/file_util_impl.cc",
|
||
"libcef/common/frame_util.cc",
|
||
"libcef/common/frame_util.h",
|
||
"libcef/common/i18n_util_impl.cc",
|
||
"libcef/common/json_impl.cc",
|
||
"libcef/common/net/http_header_utils.cc",
|
||
"libcef/common/net/http_header_utils.h",
|
||
"libcef/common/net/scheme_registration.cc",
|
||
"libcef/common/net/scheme_registration.h",
|
||
"libcef/common/net/url_util.cc",
|
||
"libcef/common/net/url_util.h",
|
||
"libcef/common/net_service/net_service_util.cc",
|
||
"libcef/common/net_service/net_service_util.h",
|
||
"libcef/common/parser_impl.cc",
|
||
"libcef/common/process_message_impl.cc",
|
||
"libcef/common/process_message_impl.h",
|
||
"libcef/common/process_message_smr_impl.cc",
|
||
"libcef/common/process_message_smr_impl.h",
|
||
"libcef/common/request_impl.cc",
|
||
"libcef/common/request_impl.h",
|
||
"libcef/common/resource_bundle_delegate.cc",
|
||
"libcef/common/resource_bundle_delegate.h",
|
||
"libcef/common/resource_bundle_impl.cc",
|
||
"libcef/common/resource_bundle_impl.h",
|
||
"libcef/common/resource_util.cc",
|
||
"libcef/common/resource_util.h",
|
||
"libcef/common/response_impl.cc",
|
||
"libcef/common/response_impl.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/string_util.cc",
|
||
"libcef/common/string_util.h",
|
||
"libcef/common/task_impl.cc",
|
||
"libcef/common/task_runner_impl.cc",
|
||
"libcef/common/task_runner_impl.h",
|
||
"libcef/common/task_runner_manager.cc",
|
||
"libcef/common/task_runner_manager.h",
|
||
"libcef/common/thread_impl.cc",
|
||
"libcef/common/thread_impl.h",
|
||
"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/common/waitable_event_impl.cc",
|
||
"libcef/common/waitable_event_impl.h",
|
||
"libcef/renderer/browser_impl.cc",
|
||
"libcef/renderer/browser_impl.h",
|
||
"libcef/renderer/chrome/chrome_content_renderer_client_cef.cc",
|
||
"libcef/renderer/chrome/chrome_content_renderer_client_cef.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/frame_impl.cc",
|
||
"libcef/renderer/frame_impl.h",
|
||
"libcef/renderer/render_frame_observer.cc",
|
||
"libcef/renderer/render_frame_observer.h",
|
||
"libcef/renderer/render_frame_util.cc",
|
||
"libcef/renderer/render_frame_util.h",
|
||
"libcef/renderer/render_manager.cc",
|
||
"libcef/renderer/render_manager.h",
|
||
"libcef/renderer/thread_util.h",
|
||
"libcef/renderer/v8_impl.cc",
|
||
"libcef/renderer/v8_impl.h",
|
||
|
||
# For Chrome runtime support.
|
||
"//chrome/app/chrome_main_delegate.cc",
|
||
"//chrome/app/chrome_main_delegate.h",
|
||
]
|
||
|
||
configs += [
|
||
"libcef/features:config",
|
||
"//build/config:precompiled_headers",
|
||
]
|
||
|
||
public_configs = [
|
||
"libcef/features:config",
|
||
]
|
||
|
||
include_dirs = [
|
||
# Crashpad code uses paths relative to this directory.
|
||
"//third_party/crashpad/crashpad",
|
||
]
|
||
|
||
public_deps = [
|
||
# Bring in feature flag defines.
|
||
"//cef/libcef/features",
|
||
# Support relative include paths.
|
||
"//base",
|
||
"//third_party/abseil-cpp:absl",
|
||
]
|
||
|
||
deps = [
|
||
":cef_make_headers",
|
||
"libcef/common/mojom",
|
||
|
||
":libcef_static_unittested",
|
||
|
||
# Normal build dependencies. Should be sorted alphabetically.
|
||
"//base:base_static",
|
||
"//cc",
|
||
"//chrome:dependencies",
|
||
"//chrome:packed_resources",
|
||
"//chrome:resources",
|
||
"//chrome:strings",
|
||
"//chrome/common:buildflags",
|
||
"//chrome/services/printing:lib",
|
||
"//components/cdm/renderer",
|
||
"//components/certificate_transparency",
|
||
"//components/component_updater",
|
||
"//components/content_settings/core/browser",
|
||
"//components/content_settings/core/common",
|
||
"//components/crx_file",
|
||
"//components/google/core/common",
|
||
"//components/keyed_service/content:content",
|
||
"//components/keyed_service/core:core",
|
||
"//components/media_router/common/mojom:media_router",
|
||
"//components/navigation_interception",
|
||
"//components/network_session_configurator/common",
|
||
"//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/services/print_compositor/public/cpp",
|
||
"//components/services/print_compositor/public/mojom",
|
||
"//components/update_client",
|
||
"//components/url_formatter",
|
||
"//components/user_prefs",
|
||
"//components/version_info",
|
||
"//components/visitedlink/browser",
|
||
"//components/visitedlink/common",
|
||
"//components/visitedlink/renderer",
|
||
"//components/viz/service",
|
||
"//components/web_cache/renderer",
|
||
"//content/public/app",
|
||
"//content/public/browser",
|
||
"//content/public/child",
|
||
"//content/public/common",
|
||
"//content/public/gpu",
|
||
"//content/public/renderer",
|
||
"//content/public/utility",
|
||
"//crypto",
|
||
"//device/base",
|
||
"//extensions/browser",
|
||
"//extensions/buildflags",
|
||
"//extensions/common/api",
|
||
"//extensions/common:core_api_provider",
|
||
"//extensions/renderer",
|
||
"//gpu",
|
||
"//ipc",
|
||
"//media",
|
||
"//net",
|
||
"//pdf",
|
||
"//ppapi/buildflags",
|
||
"//printing/buildflags",
|
||
"//services/network:network_service",
|
||
"//services/network/public/cpp",
|
||
"//services/service_manager/public/cpp",
|
||
"//skia",
|
||
"//storage/browser",
|
||
"//third_party/blink/public:blink",
|
||
"//third_party/brotli:dec",
|
||
"//third_party/cld_3/src/src:cld_3",
|
||
"//third_party/crashpad/crashpad/handler",
|
||
"//third_party/hunspell",
|
||
"//third_party/leveldatabase",
|
||
"//third_party/libxml:libxml",
|
||
"//third_party/widevine/cdm:headers",
|
||
"//third_party/widevine/cdm",
|
||
"//third_party/icu",
|
||
"//third_party/zlib:minizip",
|
||
"//ui/base",
|
||
"//ui/base/ime",
|
||
"//ui/events",
|
||
"//ui/events:events_base",
|
||
"//ui/gfx",
|
||
"//ui/gfx/geometry",
|
||
"//ui/gfx/ipc",
|
||
"//ui/gfx/ipc/geometry",
|
||
"//ui/gfx/ipc/skia",
|
||
"//ui/gl",
|
||
"//ui/strings",
|
||
"//ui/views",
|
||
"//ui/views/controls/webview",
|
||
"//url",
|
||
"//v8",
|
||
]
|
||
|
||
if (is_win) {
|
||
sources += includes_win + [
|
||
"libcef/browser/native/browser_platform_delegate_native_win.cc",
|
||
"libcef/browser/native/browser_platform_delegate_native_win.h",
|
||
"libcef/browser/osr/browser_platform_delegate_osr_win.cc",
|
||
"libcef/browser/osr/browser_platform_delegate_osr_win.h",
|
||
]
|
||
|
||
deps += [
|
||
"//chrome/install_static:secondary_module",
|
||
"//chrome/chrome_elf",
|
||
]
|
||
|
||
if (is_component_build) {
|
||
deps += [ "//content:sandbox_helper_win" ]
|
||
}
|
||
|
||
data_deps = [
|
||
"//chrome/elevation_service",
|
||
]
|
||
}
|
||
|
||
if (is_linux) {
|
||
sources += includes_linux + [
|
||
"libcef/browser/native/browser_platform_delegate_native_linux.cc",
|
||
"libcef/browser/native/browser_platform_delegate_native_linux.h",
|
||
"libcef/browser/osr/browser_platform_delegate_osr_linux.cc",
|
||
"libcef/browser/osr/browser_platform_delegate_osr_linux.h",
|
||
"libcef/browser/printing/print_dialog_linux.cc",
|
||
"libcef/browser/printing/print_dialog_linux.h",
|
||
"libcef/common/util_linux.h",
|
||
"libcef/common/util_linux.cc",
|
||
]
|
||
|
||
deps += [
|
||
"//build/config/freetype",
|
||
"//third_party/fontconfig",
|
||
]
|
||
|
||
if (ozone_platform_x11) {
|
||
sources += [
|
||
"libcef/browser/native/window_x11.cc",
|
||
"libcef/browser/native/window_x11.h",
|
||
]
|
||
} else {
|
||
deps += [ "//third_party/angle:libEGL" ]
|
||
}
|
||
|
||
if (use_dbus) {
|
||
deps += [ "//dbus" ]
|
||
defines = [ "USE_DBUS" ]
|
||
}
|
||
}
|
||
|
||
if (is_mac) {
|
||
sources += includes_mac + [
|
||
"libcef/browser/chrome/chrome_content_browser_client_cef_mac.mm",
|
||
"libcef/browser/chrome/chrome_web_contents_view_delegate_cef_mac.mm",
|
||
"libcef/browser/native/browser_platform_delegate_native_mac.h",
|
||
"libcef/browser/native/browser_platform_delegate_native_mac.mm",
|
||
"libcef/browser/native/cursor_util_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/views/native_widget_mac.h",
|
||
"libcef/browser/views/native_widget_mac.mm",
|
||
"libcef/browser/views/ns_window.h",
|
||
"libcef/browser/views/ns_window.mm",
|
||
"libcef/browser/views/view_util_mac.mm",
|
||
"libcef/common/util_mac.h",
|
||
"libcef/common/util_mac.mm",
|
||
|
||
# For Chrome runtime support.
|
||
"//chrome/app/chrome_main_mac.h",
|
||
"//chrome/app/chrome_main_mac.mm",
|
||
]
|
||
} else {
|
||
sources += [
|
||
"libcef/browser/chrome/chrome_web_contents_view_delegate_cef.cc",
|
||
]
|
||
}
|
||
|
||
if (ozone_platform_x11) {
|
||
deps += [ "//ui/events/devices/x11" ]
|
||
}
|
||
|
||
if (v8_use_external_startup_data && use_v8_context_snapshot) {
|
||
deps += [ "//tools/v8_context_snapshot" ]
|
||
}
|
||
|
||
if (use_aura) {
|
||
sources += [
|
||
"libcef/browser/native/browser_platform_delegate_native_aura.cc",
|
||
"libcef/browser/native/browser_platform_delegate_native_aura.h",
|
||
"libcef/browser/native/cursor_util_aura.cc",
|
||
"libcef/browser/native/menu_runner_views_aura.cc",
|
||
"libcef/browser/native/menu_runner_views_aura.h",
|
||
"libcef/browser/views/view_util_aura.cc",
|
||
]
|
||
|
||
deps += [
|
||
"//ui/aura",
|
||
"//ui/wm",
|
||
"//ui/wm/public",
|
||
]
|
||
}
|
||
|
||
if (enable_cdm_host_verification) {
|
||
sources += [
|
||
"libcef/common/cdm_host_file_path.cc",
|
||
"libcef/common/cdm_host_file_path.h",
|
||
]
|
||
}
|
||
}
|
||
|
||
|
||
#
|
||
# libcef_dll_wrapper static targets.
|
||
#
|
||
|
||
# Configuration that will be applied to all targets that build autogen files.
|
||
config("libcef_autogen_config") {
|
||
if (is_clang) {
|
||
cflags = [
|
||
# Disable clang warnings related to CEF's translation layer templates.
|
||
"-Wno-undefined-var-template",
|
||
]
|
||
}
|
||
}
|
||
|
||
# Configuration that supports #include paths relative to src/cef/ for CEF
|
||
# client-side code. CEF library-side code (Chromium code and cef/libcef/
|
||
# directory) uses #include paths relative to src/. See libcef/features:config
|
||
# for CEF library-side configuration.
|
||
config("libcef_includes_config") {
|
||
include_dirs = [
|
||
# cef/include/ directory and CEF client-side code use #includes relative to
|
||
# the cef/ directory.
|
||
".",
|
||
# CEF generated header files that also need to be discoverable.
|
||
# These #includes from client-side code will not be prefixed with cef/.
|
||
# They will be copied to the include/ directory in the binary distribution.
|
||
"$root_out_dir/includes/cef",
|
||
]
|
||
}
|
||
|
||
# Configuration that will be applied to all targets that depend on
|
||
# libcef_dll_wrapper.
|
||
config("libcef_dll_wrapper_config") {
|
||
configs = [
|
||
":libcef_autogen_config",
|
||
":libcef_includes_config",
|
||
]
|
||
|
||
if (is_win) {
|
||
if (current_cpu == "x86") {
|
||
# Set the initial stack size to 0.5MiB, instead of the 1.5MiB minimum
|
||
# needed by CEF's main thread. This saves significant memory on threads
|
||
# (like those in the Windows thread pool, and others) whose stack size we
|
||
# can only control through this setting. The main thread (in 32-bit builds
|
||
# only) uses fibers to switch to a 4MiB stack at runtime via
|
||
# CefRunWinMainWithPreferredStackSize().
|
||
ldflags = [ "/STACK:0x80000" ]
|
||
} else {
|
||
# Increase the initial stack size to 8MiB from the default 1MiB.
|
||
ldflags = [ "/STACK:0x800000" ]
|
||
}
|
||
}
|
||
}
|
||
|
||
# libcef_dll_wrapper target.
|
||
static_library("libcef_dll_wrapper") {
|
||
sources = 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_base +
|
||
gypi_paths2.libcef_dll_wrapper_sources_common +
|
||
gypi_paths.autogen_client_side
|
||
|
||
if (is_mac) {
|
||
sources += gypi_paths2.libcef_dll_wrapper_sources_mac
|
||
}
|
||
|
||
defines = [ "WRAPPING_CEF_SHARED" ]
|
||
|
||
configs += [ ":libcef_dll_wrapper_config" ]
|
||
public_configs = [ ":libcef_dll_wrapper_config" ]
|
||
|
||
deps = [ ":cef_make_headers" ]
|
||
}
|
||
|
||
|
||
#
|
||
# cef_sandbox target.
|
||
#
|
||
|
||
if (is_win) {
|
||
static_library("cef_sandbox") {
|
||
sources = [ "libcef_dll/sandbox/sandbox_win.cc" ]
|
||
configs += [ ":libcef_includes_config" ]
|
||
deps = [
|
||
":make_config_header",
|
||
"libcef/features",
|
||
"//sandbox",
|
||
]
|
||
}
|
||
}
|
||
|
||
if (is_mac) {
|
||
static_library("cef_sandbox") {
|
||
sources = [ "libcef_dll/sandbox/sandbox_mac.mm" ]
|
||
configs += [ ":libcef_includes_config" ]
|
||
deps = [
|
||
":make_config_header",
|
||
"//build/config:executable_deps",
|
||
"//sandbox/mac:seatbelt",
|
||
]
|
||
}
|
||
}
|
||
|
||
#
|
||
# Resource grit/pack targets.
|
||
#
|
||
|
||
# Included in locales/*.pak via //chrome/chrome_repack_locales.gni.
|
||
grit("cef_strings") {
|
||
source = "libcef/resources/cef_strings.grd"
|
||
outputs = [
|
||
"grit/cef_strings.h",
|
||
]
|
||
all_locales = platform_pak_locales + [ "fake-bidi" ]
|
||
foreach(locale, all_locales) {
|
||
outputs += [ "cef_strings_${locale}.pak" ]
|
||
}
|
||
}
|
||
|
||
# Included in resources.pak via //chrome/chrome_paks.gni.
|
||
grit("cef_resources") {
|
||
source = "libcef/resources/cef_resources.grd"
|
||
outputs = [
|
||
"grit/cef_resources.h",
|
||
"cef_resources.pak",
|
||
]
|
||
grit_flags = [
|
||
"-E",
|
||
"root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir),
|
||
]
|
||
}
|
||
|
||
# Helper for generating pack header files.
|
||
template("make_pack_header") {
|
||
assert(defined(invoker.header))
|
||
assert(defined(invoker.inputs))
|
||
|
||
action("make_pack_header_${target_name}") {
|
||
script = "tools/make_pack_header.py"
|
||
|
||
inputs = invoker.inputs
|
||
outputs = [ invoker.header ]
|
||
|
||
args = rebase_path(outputs, root_build_dir) +
|
||
rebase_path(inputs, root_build_dir)
|
||
|
||
if (defined(invoker.deps)) {
|
||
deps = invoker.deps
|
||
}
|
||
}
|
||
}
|
||
|
||
# Generate cef_pack_resources.h.
|
||
make_pack_header("resources") {
|
||
header = "$root_out_dir/includes/cef/include/cef_pack_resources.h"
|
||
inputs = [
|
||
"$root_gen_dir/base/tracing/protos/grit/tracing_proto_resources.h",
|
||
"$root_gen_dir/cef/grit/cef_resources.h",
|
||
"$root_gen_dir/chrome/grit/browser_resources.h",
|
||
"$root_gen_dir/chrome/grit/common_resources.h",
|
||
"$root_gen_dir/chrome/grit/component_extension_resources.h",
|
||
"$root_gen_dir/chrome/grit/dev_ui_browser_resources.h",
|
||
"$root_gen_dir/chrome/grit/pdf_resources.h",
|
||
"$root_gen_dir/chrome/grit/renderer_resources.h",
|
||
"$root_gen_dir/components/grit/components_resources.h",
|
||
"$root_gen_dir/components/grit/dev_ui_components_resources.h",
|
||
"$root_gen_dir/content/browser/devtools/grit/devtools_resources.h",
|
||
"$root_gen_dir/content/browser/tracing/grit/tracing_resources.h",
|
||
"$root_gen_dir/content/browser/webrtc/resources/grit/webrtc_internals_resources.h",
|
||
"$root_gen_dir/content/grit/content_resources.h",
|
||
"$root_gen_dir/content/grit/gpu_resources.h",
|
||
"$root_gen_dir/content/grit/histograms_resources.h",
|
||
"$root_gen_dir/content/grit/process_resources.h",
|
||
"$root_gen_dir/content/grit/service_worker_resources.h",
|
||
"$root_gen_dir/extensions/grit/extensions_browser_resources.h",
|
||
"$root_gen_dir/extensions/grit/extensions_renderer_resources.h",
|
||
"$root_gen_dir/extensions/grit/extensions_resources.h",
|
||
"$root_gen_dir/mojo/public/js/grit/mojo_bindings_resources.h",
|
||
"$root_gen_dir/net/grit/net_resources.h",
|
||
"$root_gen_dir/third_party/blink/public/resources/grit/blink_resources.h",
|
||
"$root_gen_dir/ui/resources/grit/ui_resources.h",
|
||
"$root_gen_dir/ui/resources/grit/webui_resources.h",
|
||
"$root_gen_dir/ui/views/resources/grit/views_resources.h",
|
||
]
|
||
|
||
deps = [
|
||
":cef_resources",
|
||
"//base/tracing/protos:chrome_track_event_resources",
|
||
"//chrome/browser:dev_ui_browser_resources",
|
||
"//chrome/browser:resources",
|
||
"//chrome/browser/resources:component_extension_resources",
|
||
"//chrome/browser/resources/pdf:resources",
|
||
"//chrome/common:resources",
|
||
"//chrome/renderer:resources",
|
||
"//components/resources:components_resources",
|
||
"//components/resources:dev_ui_components_resources",
|
||
"//content/browser/devtools:devtools_resources",
|
||
"//content/browser/resources/gpu:resources",
|
||
"//content/browser/resources/histograms:resources",
|
||
"//content/browser/resources/process:resources",
|
||
"//content/browser/resources/service_worker:resources",
|
||
"//content/browser/tracing:resources",
|
||
"//content/browser/webrtc/resources",
|
||
"//content:content_resources",
|
||
"//extensions:extensions_browser_resources",
|
||
"//extensions:extensions_renderer_resources",
|
||
"//extensions:extensions_resources_grd",
|
||
"//mojo/public/js:resources",
|
||
"//net:net_resources",
|
||
"//third_party/blink/public:resources",
|
||
"//ui/resources:ui_resources_grd",
|
||
"//ui/resources:webui_resources_grd",
|
||
"//ui/views/resources:resources_grd",
|
||
]
|
||
}
|
||
|
||
# Generate cef_pack_strings.h.
|
||
make_pack_header("strings") {
|
||
header = "$root_out_dir/includes/cef/include/cef_pack_strings.h"
|
||
inputs = [
|
||
"$root_gen_dir/cef/grit/cef_strings.h",
|
||
"$root_gen_dir/chrome/grit/branded_strings.h",
|
||
"$root_gen_dir/chrome/grit/generated_resources.h",
|
||
"$root_gen_dir/chrome/grit/locale_settings.h",
|
||
"$root_gen_dir/chrome/grit/platform_locale_settings.h",
|
||
"$root_gen_dir/components/omnibox/resources/grit/omnibox_pedal_synonyms.h",
|
||
"$root_gen_dir/components/strings/grit/components_branded_strings.h",
|
||
"$root_gen_dir/components/strings/grit/components_strings.h",
|
||
"$root_gen_dir/extensions/strings/grit/extensions_strings.h",
|
||
"$root_gen_dir/services/strings/grit/services_strings.h",
|
||
"$root_gen_dir/third_party/blink/public/strings/grit/blink_strings.h",
|
||
"$root_gen_dir/ui/strings/grit/app_locale_settings.h",
|
||
"$root_gen_dir/ui/strings/grit/auto_image_annotation_strings.h",
|
||
"$root_gen_dir/ui/strings/grit/ui_strings.h",
|
||
]
|
||
|
||
deps = [
|
||
":cef_strings",
|
||
"//chrome/app:branded_strings",
|
||
"//chrome/app:generated_resources",
|
||
"//chrome/app/resources:locale_settings",
|
||
"//chrome/app/resources:platform_locale_settings",
|
||
"//components/omnibox/resources:omnibox_pedal_synonyms",
|
||
"//components/strings:components_branded_strings",
|
||
"//components/strings:components_locale_settings",
|
||
"//components/strings:components_strings",
|
||
"//extensions/strings",
|
||
"//services/strings",
|
||
"//third_party/blink/public/strings",
|
||
"//ui/strings:app_locale_settings",
|
||
"//ui/strings:auto_image_annotation_strings",
|
||
"//ui/strings:ui_strings",
|
||
]
|
||
}
|
||
|
||
# Generate cef_command_ids.h.
|
||
make_pack_header("command_ids") {
|
||
header = "$root_out_dir/includes/cef/include/cef_command_ids.h"
|
||
inputs = [
|
||
"//chrome/app/chrome_command_ids.h",
|
||
]
|
||
}
|
||
|
||
# Generate cef_api_hash.h.
|
||
action("make_api_hash_header") {
|
||
script = "tools/make_api_hash_header.py"
|
||
|
||
# List of all C API files that will be checked for changes by cef_api_hash.py.
|
||
inputs = gypi_paths2.includes_common_capi +
|
||
gypi_paths2.includes_linux_capi +
|
||
gypi_paths2.includes_mac_capi +
|
||
gypi_paths2.includes_win_capi +
|
||
gypi_paths2.includes_capi +
|
||
gypi_paths.autogen_capi_includes
|
||
include_dir = [ "include" ]
|
||
outputs = [ "$root_out_dir/includes/cef/include/cef_api_hash.h" ]
|
||
|
||
args = rebase_path(outputs + include_dir, root_build_dir)
|
||
}
|
||
|
||
# This no-op action lists args.gn as an output, allowing it to be referenced as
|
||
# an input (trigger) for other actions. Otherwise, GN will complain that no
|
||
# target generates the args.gn file because it’s below the $root_out_dir.
|
||
action("args_gn_source") {
|
||
script = "//build/noop.py"
|
||
outputs = [ "$root_out_dir/args.gn" ]
|
||
}
|
||
|
||
# Generate cef_config.h.
|
||
action("make_config_header") {
|
||
script = "tools/make_config_header.py"
|
||
|
||
deps = [ ":args_gn_source" ]
|
||
|
||
inputs = [ "$root_out_dir/args.gn" ]
|
||
outputs = [ "$root_out_dir/includes/cef/include/cef_config.h" ]
|
||
|
||
args = rebase_path(outputs + inputs, root_build_dir)
|
||
}
|
||
|
||
# Generate cef_color_ids.h.
|
||
action("make_colorids_header") {
|
||
script = "tools/make_colorids_header.py"
|
||
|
||
inputs = [
|
||
"//ui/color/color_id.h",
|
||
"//components/color/color_id.h",
|
||
"//chrome/browser/ui/color/chrome_color_id.h",
|
||
]
|
||
outputs = [ "$root_out_dir/includes/cef/include/cef_color_ids.h" ]
|
||
|
||
args = rebase_path(outputs + inputs, root_build_dir)
|
||
}
|
||
|
||
# Generate pack files and associated CEF header files.
|
||
group("cef_make_headers") {
|
||
deps = [
|
||
":make_pack_header_resources",
|
||
":make_pack_header_strings",
|
||
":make_pack_header_command_ids",
|
||
":make_api_hash_header",
|
||
":make_config_header",
|
||
":make_colorids_header",
|
||
]
|
||
}
|
||
|
||
|
||
#
|
||
# 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=0",
|
||
"--keystone=0",
|
||
"--scm=1",
|
||
"--version",
|
||
cef_plist_version,
|
||
"--branding",
|
||
cef_framework_name,
|
||
]
|
||
}
|
||
|
||
bundle_data("cef_framework_resources") {
|
||
sources = []
|
||
public_deps = []
|
||
|
||
if (icu_use_data_file) {
|
||
sources += [ "$root_out_dir/icudtl.dat" ]
|
||
public_deps += [ "//third_party/icu:icudata", ]
|
||
}
|
||
|
||
sources += [ "//ui/gl/resources/angle-metal/gpu_shader_cache.bin" ]
|
||
|
||
if (v8_use_external_startup_data) {
|
||
sources += [
|
||
"$root_out_dir/snapshot_blob.bin",
|
||
]
|
||
public_deps += [ "//v8" ]
|
||
if (use_v8_context_snapshot) {
|
||
sources += [ "$root_out_dir/$v8_context_snapshot_filename" ]
|
||
public_deps += [ "//tools/v8_context_snapshot" ]
|
||
}
|
||
}
|
||
|
||
outputs = [
|
||
"{{bundle_resources_dir}}/{{source_file_part}}",
|
||
]
|
||
}
|
||
|
||
# Add the ANGLE .dylibs in the MODULE_DIR of the Framework app bundle.
|
||
bundle_data("cef_framework_angle_binaries") {
|
||
sources = [
|
||
"$root_out_dir/egl_intermediates/libEGL.dylib",
|
||
"$root_out_dir/egl_intermediates/libGLESv2.dylib",
|
||
]
|
||
outputs = [
|
||
"{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
|
||
]
|
||
public_deps = [
|
||
"//ui/gl:angle_library_copy",
|
||
]
|
||
}
|
||
|
||
# Add the SwiftShader .dylibs in the MODULE_DIR of the Framework app bundle.
|
||
bundle_data("cef_framework_swiftshader_binaries") {
|
||
sources = [
|
||
"$root_out_dir/vk_intermediates/libvk_swiftshader.dylib",
|
||
"$root_out_dir/vk_intermediates/vk_swiftshader_icd.json",
|
||
]
|
||
outputs = [
|
||
"{{bundle_contents_dir}}/Libraries/{{source_file_part}}",
|
||
]
|
||
public_deps = [
|
||
"//ui/gl:swiftshader_vk_library_copy",
|
||
]
|
||
}
|
||
|
||
mac_framework_bundle("cef_framework") {
|
||
# Necessary because the libcef_test_support target is testonly.
|
||
testonly = true
|
||
|
||
output_name = cef_framework_name
|
||
|
||
framework_version = "A"
|
||
framework_contents = [
|
||
"Libraries",
|
||
"Resources",
|
||
]
|
||
|
||
sources = includes_common +
|
||
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
|
||
|
||
deps = [
|
||
":cef_framework_angle_binaries",
|
||
":cef_framework_resources",
|
||
":cef_framework_swiftshader_binaries",
|
||
":libcef_static",
|
||
":libcef_test_support",
|
||
]
|
||
|
||
configs += [
|
||
":libcef_autogen_config",
|
||
]
|
||
|
||
# We don't link the framework so just use the path from the main executable.
|
||
ldflags = [
|
||
"-Wl,-install_name,@executable_path/../Frameworks/$output_name.framework/$output_name",
|
||
"-compatibility_version",
|
||
cef_dylib_version,
|
||
"-current_version",
|
||
cef_dylib_version,
|
||
]
|
||
|
||
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/Versions/A/$output_name
|
||
# so use loader_path to go back to the root output directory.
|
||
ldflags += [
|
||
"-rpath",
|
||
"@loader_path/../../../../../..",
|
||
]
|
||
}
|
||
|
||
info_plist_target = ":cef_framework_plist"
|
||
}
|
||
} else {
|
||
config("pdb_larger_than_4gb") {
|
||
if (is_win && symbol_level == 2) {
|
||
# These binaries create PDBs larger than 4 GiB. Increasing the PDB page
|
||
# size allows larger PDBs, but not all tools can handle such large PDBs
|
||
# yet.
|
||
ldflags = [ "/pdbpagesize:8192" ]
|
||
}
|
||
}
|
||
|
||
shared_library("libcef") {
|
||
# Necessary because the libcef_test_support target is testonly.
|
||
testonly = true
|
||
|
||
sources = 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",
|
||
":libcef_test_support",
|
||
]
|
||
|
||
configs += [
|
||
":libcef_autogen_config",
|
||
":pdb_larger_than_4gb",
|
||
]
|
||
|
||
if (is_win) {
|
||
sources += includes_win + [
|
||
"libcef_dll/libcef_dll.rc",
|
||
]
|
||
|
||
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",
|
||
]
|
||
|
||
# Delay-load as many DLLs as possible for sandbox and startup perf
|
||
# improvements.
|
||
configs += [ "//build/config/win:delayloads" ]
|
||
|
||
libs = [
|
||
"comctl32.lib",
|
||
# For D3D11_DECODER_PROFILE_H264_VLD_NOFGT.
|
||
"dxguid.lib",
|
||
]
|
||
}
|
||
|
||
if (is_linux && !is_debug && !use_partition_alloc_as_malloc) {
|
||
# Only export necessary symbols from libcef.so.
|
||
# Don't do this in Debug builds because it causes the resulting
|
||
# application to crash.
|
||
# Also need to do this for ASAN builds to work around
|
||
# https://crbug.com/832808.
|
||
ldflags = [ "-Wl,--version-script=" +
|
||
rebase_path("//cef/libcef_dll/libcef.lst") ]
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
#
|
||
# Executable/app targets.
|
||
#
|
||
|
||
# Source files for TeamCity GTest integration.
|
||
# See tests/gtest/teamcity/README.cef for details.
|
||
source_set("gtest_teamcity") {
|
||
testonly = true
|
||
|
||
sources = [
|
||
"tests/gtest/teamcity/include/teamcity_gtest.h",
|
||
"tests/gtest/teamcity/src/teamcity_gtest.cpp",
|
||
"tests/gtest/teamcity/src/teamcity_gtest.h",
|
||
"tests/gtest/teamcity/src/teamcity_messages.cpp",
|
||
"tests/gtest/teamcity/src/teamcity_messages.h",
|
||
]
|
||
|
||
deps = [
|
||
"//testing/gtest",
|
||
]
|
||
|
||
configs += [
|
||
"libcef/features:config",
|
||
"//build/config:precompiled_headers",
|
||
]
|
||
}
|
||
|
||
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_plist_version,
|
||
]
|
||
}
|
||
|
||
template("cef_helper_app") {
|
||
mac_app_bundle(target_name) {
|
||
assert(defined(invoker.helper_sources))
|
||
assert(defined(invoker.helper_name_suffix))
|
||
assert(defined(invoker.helper_bundle_id_suffix))
|
||
|
||
testonly = app_testonly
|
||
output_name = app_helper_name + invoker.helper_name_suffix
|
||
|
||
sources = invoker.helper_sources
|
||
|
||
extra_substitutions = [
|
||
"BUNDLE_ID_SUFFIX=${invoker.helper_bundle_id_suffix}",
|
||
]
|
||
|
||
deps = [
|
||
":cef_make_headers",
|
||
":cef_sandbox",
|
||
":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 the base.
|
||
"-rpath",
|
||
"@executable_path/../../../../../..",
|
||
]
|
||
|
||
info_plist_target = ":${app_name}_helper_plist"
|
||
|
||
if (defined(invoker.helper_frameworks)) {
|
||
frameworks = invoker.helper_frameworks
|
||
}
|
||
|
||
if (defined(invoker.helper_defines)) {
|
||
defines = invoker.helper_defines
|
||
}
|
||
}
|
||
}
|
||
|
||
# From //chrome/BUILD.gn:
|
||
# Helper app to display alert notifications. This is necessary as an app can
|
||
# only display either banner or alert style notifications and the main app
|
||
# will display banners.
|
||
alert_helper_params = [
|
||
"alerts",
|
||
".alerts",
|
||
" (Alerts)",
|
||
]
|
||
|
||
# Merge all helper apps needed by //content and //chrome.
|
||
chrome_mac_helpers = content_mac_helpers + [ alert_helper_params ]
|
||
|
||
foreach(helper_params, chrome_mac_helpers) {
|
||
_helper_target = helper_params[0]
|
||
_helper_bundle_id = helper_params[1]
|
||
_helper_suffix = helper_params[2]
|
||
cef_helper_app("${app_name}_helper_app_${_helper_target}") {
|
||
helper_sources = invoker.helper_sources
|
||
if (defined(invoker.helper_deps)) {
|
||
helper_deps = invoker.helper_deps
|
||
}
|
||
if (defined(invoker.helper_frameworks)) {
|
||
helper_frameworks = invoker.helper_frameworks
|
||
}
|
||
if (defined(invoker.helper_defines)) {
|
||
helper_defines = invoker.helper_defines
|
||
}
|
||
|
||
helper_name_suffix = _helper_suffix
|
||
helper_bundle_id_suffix = _helper_bundle_id
|
||
}
|
||
}
|
||
|
||
bundle_data("${app_name}_framework_bundle_data") {
|
||
testonly = app_testonly
|
||
sources = [
|
||
"$root_out_dir/$cef_framework_name.framework",
|
||
]
|
||
|
||
public_deps = [
|
||
":cef_framework",
|
||
]
|
||
|
||
foreach(helper_params, chrome_mac_helpers) {
|
||
sources += [
|
||
"$root_out_dir/${app_helper_name}${helper_params[2]}.app",
|
||
]
|
||
public_deps += [ ":${app_name}_helper_app_${helper_params[0]}" ]
|
||
}
|
||
|
||
outputs = [
|
||
"{{bundle_contents_dir}}/Frameworks/{{source_file_part}}",
|
||
]
|
||
}
|
||
|
||
tweak_info_plist("${app_name}_plist") {
|
||
testonly = app_testonly
|
||
info_plist = invoker.info_plist
|
||
args = [
|
||
"--scm=1",
|
||
"--version",
|
||
cef_plist_version,
|
||
]
|
||
}
|
||
|
||
mac_app_bundle(app_name) {
|
||
testonly = app_testonly
|
||
output_name = app_name
|
||
|
||
sources = invoker.sources
|
||
|
||
public_deps = [ ":libcef_dll_wrapper" ]
|
||
deps = [
|
||
":cef_make_headers",
|
||
":libcef_dll_wrapper",
|
||
":${app_name}_framework_bundle_data",
|
||
]
|
||
if (defined(invoker.deps)) {
|
||
deps += invoker.deps
|
||
}
|
||
|
||
if (defined(invoker.frameworks)) {
|
||
frameworks = invoker.frameworks
|
||
}
|
||
|
||
if (defined(invoker.defines)) {
|
||
defines = invoker.defines
|
||
}
|
||
|
||
info_plist_target = ":${app_name}_plist"
|
||
}
|
||
}
|
||
|
||
|
||
#
|
||
# cefclient app targets.
|
||
#
|
||
|
||
bundle_data("cefclient_resources_bundle_data") {
|
||
sources = gypi_paths2.shared_sources_resources +
|
||
gypi_paths2.cefclient_sources_resources + [
|
||
"tests/cefclient/mac/cefclient.icns",
|
||
]
|
||
|
||
outputs = [
|
||
"{{bundle_resources_dir}}/{{source_file_part}}",
|
||
]
|
||
}
|
||
|
||
bundle_data("cefclient_resources_bundle_data_english") {
|
||
sources = [
|
||
"tests/cefclient/mac/English.lproj/InfoPlist.strings",
|
||
]
|
||
|
||
outputs = [
|
||
"{{bundle_resources_dir}}/English.lproj/{{source_file_part}}",
|
||
]
|
||
}
|
||
|
||
mac_xib_bundle_data("cefclient_xibs") {
|
||
sources = [
|
||
"tests/cefclient/mac/English.lproj/MainMenu.xib",
|
||
]
|
||
|
||
output_path = "{{bundle_resources_dir}}/English.lproj"
|
||
}
|
||
|
||
cef_app("cefclient") {
|
||
# Necessary because the cef_framework target is testonly.
|
||
testonly = true
|
||
|
||
helper_info_plist = "tests/cefclient/mac/helper-Info.plist.in"
|
||
helper_sources = includes_common +
|
||
includes_mac +
|
||
gypi_paths2.includes_wrapper +
|
||
gypi_paths2.includes_wrapper_mac +
|
||
gypi_paths2.shared_sources_common +
|
||
gypi_paths2.shared_sources_renderer +
|
||
gypi_paths2.shared_sources_mac_helper +
|
||
gypi_paths2.cefclient_sources_common +
|
||
gypi_paths2.cefclient_sources_renderer
|
||
helper_defines = [
|
||
"CEF_USE_SANDBOX",
|
||
]
|
||
|
||
info_plist = "tests/cefclient/mac/Info.plist.in"
|
||
sources = includes_common +
|
||
includes_mac +
|
||
gypi_paths2.includes_wrapper +
|
||
gypi_paths2.includes_wrapper_mac +
|
||
gypi_paths2.shared_sources_browser +
|
||
gypi_paths2.shared_sources_common +
|
||
gypi_paths2.shared_sources_mac +
|
||
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",
|
||
]
|
||
frameworks = [
|
||
"AppKit.framework",
|
||
"IOSurface.framework",
|
||
"OpenGL.framework",
|
||
]
|
||
defines = [
|
||
"CEF_USE_SANDBOX",
|
||
]
|
||
}
|
||
|
||
|
||
#
|
||
# 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") {
|
||
# Necessary because the cef_framework target is testonly.
|
||
testonly = true
|
||
|
||
helper_info_plist = "tests/cefsimple/mac/helper-Info.plist.in"
|
||
helper_sources = includes_common +
|
||
includes_mac +
|
||
gypi_paths2.includes_wrapper +
|
||
gypi_paths2.includes_wrapper_mac +
|
||
gypi_paths2.cefsimple_sources_mac_helper
|
||
helper_defines = [
|
||
"CEF_USE_SANDBOX",
|
||
]
|
||
|
||
info_plist = "tests/cefsimple/mac/Info.plist.in"
|
||
sources = includes_common +
|
||
includes_mac +
|
||
gypi_paths2.includes_wrapper +
|
||
gypi_paths2.includes_wrapper_mac +
|
||
gypi_paths2.cefsimple_sources_common +
|
||
gypi_paths2.cefsimple_sources_mac
|
||
deps = [
|
||
":cefsimple_resources_bundle_data",
|
||
":cefsimple_resources_bundle_data_english",
|
||
":cefsimple_xibs",
|
||
]
|
||
frameworks = [
|
||
"AppKit.framework",
|
||
]
|
||
defines = [
|
||
"CEF_USE_SANDBOX",
|
||
]
|
||
}
|
||
|
||
|
||
#
|
||
# ceftests app targets.
|
||
#
|
||
|
||
bundle_data("ceftests_resources_bundle_data") {
|
||
sources = gypi_paths2.shared_sources_resources + [
|
||
"tests/ceftests/mac/ceftests.icns",
|
||
]
|
||
|
||
outputs = [
|
||
"{{bundle_resources_dir}}/{{source_file_part}}",
|
||
]
|
||
}
|
||
|
||
bundle_data("ceftests_resources_bundle_data_english") {
|
||
sources = [
|
||
"tests/ceftests/mac/English.lproj/InfoPlist.strings",
|
||
]
|
||
|
||
outputs = [
|
||
"{{bundle_resources_dir}}/English.lproj/{{source_file_part}}",
|
||
]
|
||
}
|
||
|
||
mac_xib_bundle_data("ceftests_xibs") {
|
||
sources = [
|
||
"tests/ceftests/mac/English.lproj/MainMenu.xib",
|
||
]
|
||
output_path = "{{bundle_resources_dir}}/English.lproj"
|
||
}
|
||
|
||
cef_app("ceftests") {
|
||
testonly = true
|
||
|
||
helper_info_plist = "tests/ceftests/mac/helper-Info.plist.in"
|
||
helper_sources = gypi_paths2.shared_sources_common +
|
||
gypi_paths2.shared_sources_renderer +
|
||
gypi_paths2.shared_sources_mac_helper +
|
||
gypi_paths2.ceftests_sources_mac_helper +
|
||
gypi_paths2.ceftests_sources_mac_helper_shared
|
||
helper_deps = [
|
||
":gtest_teamcity",
|
||
"//testing/gtest",
|
||
]
|
||
helper_frameworks = [
|
||
"AppKit.framework",
|
||
]
|
||
helper_defines = [
|
||
"CEF_USE_SANDBOX",
|
||
"CEF_TESTS_IN_SRC_DIRECTORY",
|
||
]
|
||
|
||
info_plist = "tests/ceftests/mac/Info.plist.in"
|
||
sources = includes_common +
|
||
includes_mac +
|
||
gypi_paths2.includes_wrapper +
|
||
gypi_paths2.includes_wrapper_mac +
|
||
gypi_paths2.shared_sources_browser +
|
||
gypi_paths2.shared_sources_common +
|
||
gypi_paths2.shared_sources_mac +
|
||
gypi_paths2.ceftests_sources_common +
|
||
gypi_paths2.ceftests_sources_mac
|
||
deps = [
|
||
":ceftests_resources_bundle_data",
|
||
":ceftests_resources_bundle_data_english",
|
||
":ceftests_xibs",
|
||
":gtest_teamcity",
|
||
"//testing/gtest",
|
||
]
|
||
frameworks = [
|
||
"AppKit.framework",
|
||
]
|
||
defines = [
|
||
"CEF_USE_SANDBOX",
|
||
"CEF_TESTS_IN_SRC_DIRECTORY",
|
||
]
|
||
}
|
||
} 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("glib") {
|
||
packages = [
|
||
"glib-2.0",
|
||
]
|
||
}
|
||
}
|
||
|
||
if (is_linux && cef_use_gtk) {
|
||
pkg_config("gtk") {
|
||
packages = [
|
||
"gmodule-2.0",
|
||
"gtk+-3.0",
|
||
"gthread-2.0",
|
||
"gtk+-unix-print-3.0",
|
||
"xi",
|
||
]
|
||
}
|
||
}
|
||
|
||
if (is_linux) {
|
||
copy("copy_cefclient_files") {
|
||
sources = gypi_paths2.shared_sources_resources +
|
||
gypi_paths2.cefclient_sources_resources
|
||
outputs = [ "${root_out_dir}/cefclient_files/{{source_file_part}}" ]
|
||
}
|
||
}
|
||
|
||
executable("cefclient") {
|
||
# Necessary because the libcef target is testonly.
|
||
testonly = true
|
||
|
||
sources = includes_common +
|
||
gypi_paths2.includes_wrapper +
|
||
gypi_paths2.shared_sources_browser +
|
||
gypi_paths2.shared_sources_common +
|
||
gypi_paths2.shared_sources_renderer +
|
||
gypi_paths2.cefclient_sources_browser +
|
||
gypi_paths2.cefclient_sources_common +
|
||
gypi_paths2.cefclient_sources_renderer
|
||
|
||
deps = [
|
||
":libcef",
|
||
":libcef_dll_wrapper",
|
||
]
|
||
|
||
defines = [
|
||
"CEF_USE_SANDBOX",
|
||
]
|
||
|
||
if (is_win) {
|
||
sources += includes_win +
|
||
gypi_paths2.shared_sources_win +
|
||
gypi_paths2.cefclient_sources_win +
|
||
gypi_paths2.cefclient_sources_resources_win_rc
|
||
|
||
# Set /SUBSYSTEM:WINDOWS.
|
||
configs -= [ "//build/config/win:console" ]
|
||
configs += [ "//build/config/win:windowed" ]
|
||
|
||
# Delay-load as many DLLs as possible for sandbox and startup perf
|
||
# improvements.
|
||
configs += [ "//build/config/win:delayloads" ]
|
||
|
||
defines += [
|
||
"CEF_USE_ATL",
|
||
]
|
||
|
||
deps += [
|
||
":cef_sandbox",
|
||
"//build/win:default_exe_manifest",
|
||
]
|
||
|
||
libs = [
|
||
"comctl32.lib",
|
||
"d3d11.lib",
|
||
"imm32.lib",
|
||
"oleacc.lib",
|
||
"rpcrt4.lib",
|
||
"shlwapi.lib",
|
||
]
|
||
|
||
if (target_cpu != "arm64") {
|
||
libs += [
|
||
"glu32.lib",
|
||
"opengl32.lib",
|
||
]
|
||
ldflags = [
|
||
"/DELAYLOAD:glu32.dll",
|
||
"/DELAYLOAD:oleaut32.dll",
|
||
"/DELAYLOAD:opengl32.dll",
|
||
]
|
||
}
|
||
}
|
||
|
||
if (is_linux) {
|
||
sources += includes_linux +
|
||
gypi_paths2.shared_sources_linux +
|
||
gypi_paths2.cefclient_sources_linux
|
||
|
||
deps += [
|
||
":copy_cefclient_files",
|
||
]
|
||
|
||
libs = [
|
||
"GL",
|
||
"X11",
|
||
]
|
||
|
||
if (cef_use_gtk) {
|
||
configs += [
|
||
":gtk",
|
||
]
|
||
cflags = [
|
||
# Don't warn about deprecated GDK/GTK functions.
|
||
"-Wno-deprecated-declarations",
|
||
]
|
||
}
|
||
|
||
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") {
|
||
# Necessary because the libcef target is testonly.
|
||
testonly = true
|
||
|
||
sources = includes_common +
|
||
gypi_paths2.includes_wrapper +
|
||
gypi_paths2.cefsimple_sources_common
|
||
|
||
deps = [
|
||
":libcef",
|
||
":libcef_dll_wrapper",
|
||
]
|
||
|
||
defines = [
|
||
"CEF_USE_SANDBOX",
|
||
]
|
||
|
||
if (is_win) {
|
||
sources += includes_win +
|
||
gypi_paths2.cefsimple_sources_win +
|
||
gypi_paths2.cefsimple_sources_resources_win_rc
|
||
|
||
# Set /SUBSYSTEM:WINDOWS.
|
||
configs -= [ "//build/config/win:console" ]
|
||
configs += [ "//build/config/win:windowed" ]
|
||
|
||
# Delay-load as many DLLs as possible for sandbox and startup perf
|
||
# improvements.
|
||
configs += [ "//build/config/win:delayloads" ]
|
||
|
||
deps += [
|
||
":cef_sandbox",
|
||
"//build/win:default_exe_manifest",
|
||
]
|
||
|
||
libs = [
|
||
"comctl32.lib",
|
||
"shlwapi.lib",
|
||
"rpcrt4.lib",
|
||
]
|
||
}
|
||
|
||
if (is_linux) {
|
||
sources += includes_linux +
|
||
gypi_paths2.cefsimple_sources_linux
|
||
|
||
if (ozone_platform_x11) {
|
||
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" ]
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
#
|
||
# ceftests targets.
|
||
#
|
||
|
||
if (is_linux) {
|
||
copy("copy_ceftests_files") {
|
||
sources = gypi_paths2.shared_sources_resources
|
||
outputs = [ "${root_out_dir}/ceftests_files/{{source_file_part}}" ]
|
||
}
|
||
}
|
||
|
||
executable("ceftests") {
|
||
testonly = true
|
||
|
||
sources = includes_common +
|
||
gypi_paths2.includes_wrapper +
|
||
gypi_paths2.shared_sources_browser +
|
||
gypi_paths2.shared_sources_common +
|
||
gypi_paths2.shared_sources_renderer +
|
||
gypi_paths2.ceftests_sources_common
|
||
|
||
deps = [
|
||
":libcef",
|
||
":libcef_dll_wrapper",
|
||
":gtest_teamcity",
|
||
"//testing/gtest",
|
||
]
|
||
|
||
defines = [
|
||
"CEF_USE_SANDBOX",
|
||
"CEF_TESTS_IN_SRC_DIRECTORY",
|
||
]
|
||
|
||
if (is_win) {
|
||
sources += gypi_paths2.shared_sources_win +
|
||
gypi_paths2.ceftests_sources_win +
|
||
gypi_paths2.ceftests_sources_resources_win_rc
|
||
|
||
# Delay-load as many DLLs as possible for sandbox and startup perf
|
||
# improvements.
|
||
configs += [ "//build/config/win:delayloads" ]
|
||
|
||
deps += [
|
||
":cef_sandbox",
|
||
"//build/win:default_exe_manifest",
|
||
]
|
||
}
|
||
|
||
if (is_linux) {
|
||
sources += gypi_paths2.shared_sources_linux +
|
||
gypi_paths2.ceftests_sources_linux
|
||
|
||
if (ozone_platform_x11) {
|
||
libs = [
|
||
"X11",
|
||
]
|
||
} else {
|
||
if (!use_sysroot) {
|
||
configs += [ ":glib" ]
|
||
}
|
||
}
|
||
|
||
deps += [
|
||
":copy_ceftests_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" ]
|
||
}
|
||
}
|
||
}
|