mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add initial support for API versioning (see #3836)
- Generated files are now created when running cef_create_projects or the new version_manager.py tool. These files are still created in the cef/ source tree (same location as before) but Git ignores them due to the generated .gitignore file. - API hashes are committed to Git as a new cef_api_versions.json file. This file is used for both code generation and CEF version calculation (replacing the previous usage of cef_api_hash.h for this purpose). It will be updated by the CEF admin before merging breaking API changes upstream. - As an added benefit to the above, contributor PRs will no longer contain generated code that is susceptible to frequent merge conflicts. - From a code generation perspective, the main difference is that we now use versioned structs (e.g. cef_browser_0_t instead of cef_browser_t) on the libcef (dll/framework) side. Most of the make_*.py tool changes are related to supporting this. - From the client perspective, you can now define CEF_API_VERSION in the project configuration (or get CEF_EXPERIMENTAL by default). This define will change the API exposed in CEF’s include/ and include/capi header files. All client-side targets including libcef_dll_wrapper will need be recompiled when changing this define. - Examples of the new API-related define usage are provided in cef_api_version_test.h, api_version_test_impl.cc and api_version_unittest.cc. To test: - Run `ceftests --gtest_filter=ApiVersionTest.*` - Add `cef_api_version=13300` to GN_DEFINES. Re-run configure, build and ceftests steps. - Repeat with 13301, 13302, 13303 (all supported test versions).
This commit is contained in:
@@ -6,6 +6,7 @@ from __future__ import absolute_import
|
||||
from __future__ import print_function
|
||||
from bazel_util import bazel_substitute, bazel_last_error, bazel_set_quiet
|
||||
from cef_version import VersionFormatter
|
||||
from clang_util import clang_format_inplace
|
||||
from date_util import *
|
||||
from exec_util import exec_cmd
|
||||
from file_util import *
|
||||
@@ -226,7 +227,12 @@ def transfer_doxyfile(dst_dir, quiet):
|
||||
sys.stdout.write('Creating Doxyfile file.\n')
|
||||
|
||||
|
||||
def transfer_gypi_files(src_dir, gypi_paths, gypi_path_prefix, dst_dir, quiet):
|
||||
def transfer_gypi_files(src_dir,
|
||||
gypi_paths,
|
||||
gypi_path_prefix,
|
||||
dst_dir,
|
||||
quiet,
|
||||
format=False):
|
||||
""" Transfer files from one location to another. """
|
||||
for path in gypi_paths:
|
||||
src = os.path.join(src_dir, path)
|
||||
@@ -235,6 +241,11 @@ def transfer_gypi_files(src_dir, gypi_paths, gypi_path_prefix, dst_dir, quiet):
|
||||
make_dir(dst_path, quiet)
|
||||
copy_file(src, dst, quiet)
|
||||
|
||||
# Apply clang-format for C/C++ files.
|
||||
if format and os.path.splitext(dst)[1][1:] in ('c', 'cc', 'cpp', 'h'):
|
||||
print(dst)
|
||||
clang_format_inplace(dst)
|
||||
|
||||
|
||||
def extract_toolchain_cmd(build_dir,
|
||||
exe_name,
|
||||
@@ -925,17 +936,19 @@ if mode == 'standard' or mode == 'minimal':
|
||||
transfer_gypi_files(cef_dir, cef_paths2['includes_wrapper'], \
|
||||
'include/', include_dir, options.quiet)
|
||||
transfer_gypi_files(cef_dir, cef_paths['autogen_cpp_includes'], \
|
||||
'include/', include_dir, options.quiet)
|
||||
'include/', include_dir, options.quiet, format=True)
|
||||
transfer_gypi_files(cef_dir, cef_paths['autogen_capi_includes'], \
|
||||
'include/', include_dir, options.quiet)
|
||||
'include/', include_dir, options.quiet, format=True)
|
||||
|
||||
# Transfer generated include files.
|
||||
generated_includes = [
|
||||
'cef_api_versions.h',
|
||||
'cef_color_ids.h',
|
||||
'cef_command_ids.h',
|
||||
'cef_config.h',
|
||||
'cef_pack_resources.h',
|
||||
'cef_pack_strings.h',
|
||||
'cef_version.h',
|
||||
]
|
||||
for include in generated_includes:
|
||||
# Debug and Release build should be the same so grab whichever exists.
|
||||
@@ -953,7 +966,7 @@ if mode == 'standard' or mode == 'minimal':
|
||||
transfer_gypi_files(cef_dir, cef_paths2['libcef_dll_wrapper_sources_common'], \
|
||||
'libcef_dll/', libcef_dll_dir, options.quiet)
|
||||
transfer_gypi_files(cef_dir, cef_paths['autogen_client_side'], \
|
||||
'libcef_dll/', libcef_dll_dir, options.quiet)
|
||||
'libcef_dll/', libcef_dll_dir, options.quiet, format=True)
|
||||
|
||||
if mode == 'standard' or mode == 'minimal':
|
||||
# transfer additional files
|
||||
|
Reference in New Issue
Block a user