Generate pack header files using GN (issue #1403)
This commit is contained in:
parent
0e940c4128
commit
88a8dad9c9
82
BUILD.gn
82
BUILD.gn
|
@ -535,13 +535,9 @@ static_library("libcef_static") {
|
|||
]
|
||||
|
||||
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",
|
||||
# Generate pack files and associated CEF header files.
|
||||
":make_pack_header_resources",
|
||||
":make_pack_header_strings",
|
||||
|
||||
# Generate API bindings for extensions.
|
||||
# TODO(cef): Enable if/when CEF exposes its own Mojo APIs. See
|
||||
|
@ -849,7 +845,11 @@ static_library("libcef_static") {
|
|||
config("libcef_dll_wrapper_config") {
|
||||
include_dirs = [
|
||||
".",
|
||||
# Source files included in the binary distrib use include paths relative to
|
||||
# the tests directory.
|
||||
"tests",
|
||||
# For generated include headers.
|
||||
"$root_out_dir/includes",
|
||||
]
|
||||
defines = [ "USING_CEF_SHARED" ]
|
||||
}
|
||||
|
@ -983,7 +983,10 @@ repack("pak_devtools") {
|
|||
"$root_gen_dir/blink/devtools_resources.pak",
|
||||
]
|
||||
|
||||
deps = [
|
||||
# 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 = [
|
||||
"//content/browser/devtools:resources",
|
||||
]
|
||||
|
||||
|
@ -1078,6 +1081,69 @@ repack("pak") {
|
|||
output = "$root_out_dir/cef.pak"
|
||||
}
|
||||
|
||||
# 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)
|
||||
|
||||
deps = [
|
||||
# List all targets that generate pack files here. The grit targets that
|
||||
# generate |inputs| will be picked up via public_deps.
|
||||
":pak",
|
||||
":pak_100_percent",
|
||||
":pak_200_percent",
|
||||
":pak_devtools",
|
||||
":pak_extensions",
|
||||
":repack_locales_pack",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
# Generate cef_pack_resources.h.
|
||||
make_pack_header("resources") {
|
||||
header = "$root_out_dir/includes/include/cef_pack_resources.h"
|
||||
inputs = [
|
||||
"$root_gen_dir/blink/grit/devtools_resources.h",
|
||||
"$root_gen_dir/blink/public/resources/grit/blink_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/content/grit/content_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/net/grit/net_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",
|
||||
"$root_gen_dir/cef/grit/cef_resources.h",
|
||||
]
|
||||
}
|
||||
|
||||
# Generate cef_pack_strings.h.
|
||||
make_pack_header("strings") {
|
||||
header = "$root_out_dir/includes/include/cef_pack_strings.h"
|
||||
inputs = [
|
||||
"$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/strings/grit/components_strings.h",
|
||||
"$root_gen_dir/content/app/strings/grit/content_strings.h",
|
||||
"$root_gen_dir/extensions/strings/grit/extensions_strings.h",
|
||||
"$root_gen_dir/ui/strings/grit/ui_strings.h",
|
||||
"$root_gen_dir/cef/grit/cef_strings.h",
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# libcef dll/framework target.
|
||||
|
|
10
cef.gyp
10
cef.gyp
|
@ -469,6 +469,8 @@
|
|||
'.',
|
||||
# Necessary to allow unittest files to access cefclient files.
|
||||
'tests',
|
||||
# For generated include headers.
|
||||
'<(PRODUCT_DIR)/includes',
|
||||
],
|
||||
'conditions': [
|
||||
[ 'OS=="win"', {
|
||||
|
@ -870,7 +872,7 @@
|
|||
'<@(header_inputs)',
|
||||
],
|
||||
'outputs': [
|
||||
'include/cef_pack_resources.h',
|
||||
'<(PRODUCT_DIR)/includes/include/cef_pack_resources.h',
|
||||
],
|
||||
'action': ['python', '<(make_pack_header_path)', '<@(_outputs)',
|
||||
'<@(header_inputs)'],
|
||||
|
@ -894,7 +896,7 @@
|
|||
'<@(header_inputs)',
|
||||
],
|
||||
'outputs': [
|
||||
'include/cef_pack_strings.h',
|
||||
'<(PRODUCT_DIR)/includes/include/cef_pack_strings.h',
|
||||
],
|
||||
'action': ['python', '<(make_pack_header_path)', '<@(_outputs)',
|
||||
'<@(header_inputs)'],
|
||||
|
@ -1616,7 +1618,7 @@
|
|||
'.',
|
||||
# cefclient includes are relative to the tests directory to make
|
||||
# creation of binary releases easier.
|
||||
'tests'
|
||||
'tests',
|
||||
],
|
||||
'link_settings': {
|
||||
'libraries': [
|
||||
|
@ -1765,6 +1767,8 @@
|
|||
'.',
|
||||
# Necessary to allow unittest files to access cefclient files.
|
||||
'tests',
|
||||
# For generated include headers.
|
||||
'<(PRODUCT_DIR)/includes',
|
||||
],
|
||||
'sources': [
|
||||
'tests/cefclient/browser/resource_util.cc',
|
||||
|
|
|
@ -40,8 +40,6 @@
|
|||
'include/base/internal/cef_raw_scoped_refptr_mismatch_checker.h',
|
||||
'include/base/internal/cef_thread_checker_impl.h',
|
||||
'include/cef_base.h',
|
||||
'include/cef_pack_resources.h',
|
||||
'include/cef_pack_strings.h',
|
||||
'include/cef_version.h',
|
||||
'include/internal/cef_export.h',
|
||||
'include/internal/cef_logging_internal.h',
|
||||
|
|
|
@ -388,6 +388,26 @@ cef_paths = cef_paths['variables']
|
|||
cef_paths2 = eval_file(os.path.join(cef_dir, 'cef_paths2.gypi'))
|
||||
cef_paths2 = cef_paths2['variables']
|
||||
|
||||
# Determine the build directory suffix.
|
||||
build_dir_suffix = ''
|
||||
if use_gn:
|
||||
# CEF uses a consistent directory naming scheme for GN via
|
||||
# GetAllPlatformConfigs in gn_args.py.
|
||||
if options.x64build:
|
||||
build_dir_suffix = '_GN_x64'
|
||||
else:
|
||||
build_dir_suffix = '_GN_x86'
|
||||
else:
|
||||
# GYP outputs both x86 and x64 builds to the same directory on Linux and
|
||||
# Mac OS X. On Windows it suffixes the directory name for x64 builds.
|
||||
if platform == 'windows' and options.x64build:
|
||||
build_dir_suffix = '_x64'
|
||||
|
||||
# Determine the build directory paths.
|
||||
out_dir = os.path.join(src_dir, 'out')
|
||||
build_dir_debug = os.path.join(out_dir, 'Debug' + build_dir_suffix)
|
||||
build_dir_release = os.path.join(out_dir, 'Release' + build_dir_suffix)
|
||||
|
||||
if mode == 'standard' or mode == 'minimal':
|
||||
# create the include directory
|
||||
include_dir = os.path.join(output_dir, 'include')
|
||||
|
@ -413,6 +433,20 @@ if mode == 'standard' or mode == 'minimal':
|
|||
transfer_gypi_files(cef_dir, cef_paths['autogen_capi_includes'], \
|
||||
'include/', include_dir, options.quiet)
|
||||
|
||||
# Transfer generated include files.
|
||||
generated_includes = [
|
||||
'cef_pack_resources.h',
|
||||
'cef_pack_strings.h',
|
||||
]
|
||||
for include in generated_includes:
|
||||
# Debug and Release build should be the same so grab whichever exists.
|
||||
src_path = os.path.join(build_dir_release, 'includes', 'include', include)
|
||||
if not os.path.exists(src_path):
|
||||
src_path = os.path.join(build_dir_debug, 'includes', 'include', include)
|
||||
if not os.path.exists(src_path):
|
||||
raise Exception('Missing generated header file: %s' % include)
|
||||
copy_file(src_path, os.path.join(include_dir, include), options.quiet)
|
||||
|
||||
# transfer common libcef_dll_wrapper files
|
||||
transfer_gypi_files(cef_dir, cef_paths2['libcef_dll_wrapper_sources_base'], \
|
||||
'libcef_dll/', libcef_dll_dir, options.quiet)
|
||||
|
@ -484,28 +518,6 @@ if mode == 'standard':
|
|||
copy_file(os.path.join(cef_dir, 'cef_paths.gypi'), \
|
||||
os.path.join(output_dir, 'cef_paths.gypi'), options.quiet)
|
||||
|
||||
|
||||
# Determine the build directory suffix.
|
||||
build_dir_suffix = ''
|
||||
if use_gn:
|
||||
# CEF uses a consistent directory naming scheme for GN via
|
||||
# GetAllPlatformConfigs in gn_args.py.
|
||||
if options.x64build:
|
||||
build_dir_suffix = '_GN_x64'
|
||||
else:
|
||||
build_dir_suffix = '_GN_x86'
|
||||
else:
|
||||
# GYP outputs both x86 and x64 builds to the same directory on Linux and
|
||||
# Mac OS X. On Windows it suffixes the directory name for x64 builds.
|
||||
if platform == 'windows' and options.x64build:
|
||||
build_dir_suffix = '_x64'
|
||||
|
||||
# Determine the build directory paths.
|
||||
out_dir = os.path.join(src_dir, 'out')
|
||||
build_dir_debug = os.path.join(out_dir, 'Debug' + build_dir_suffix)
|
||||
build_dir_release = os.path.join(out_dir, 'Release' + build_dir_suffix)
|
||||
|
||||
|
||||
if platform == 'windows':
|
||||
binaries = [
|
||||
'd3dcompiler_47.dll',
|
||||
|
@ -525,8 +537,11 @@ if platform == 'windows':
|
|||
'obj\\base\\base_static.lib',
|
||||
'obj\\cef\\cef_sandbox.lib',
|
||||
'obj\\base\\third_party\\dynamic_annotations\\dynamic_annotations.lib',
|
||||
'obj\\sandbox\\sandbox.lib',
|
||||
]
|
||||
if use_gn:
|
||||
sandbox_libs.append('obj\\sandbox\\win\\sandbox.lib')
|
||||
else:
|
||||
sandbox_libs.append('obj\\sandbox\\sandbox.lib')
|
||||
|
||||
valid_build_dir = None
|
||||
|
||||
|
|
Loading…
Reference in New Issue