mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-18 05:00:48 +01:00
Add cef_api_hash.h generated by the translator tool (see issue #2596)
This splits out the API hashes from the cef_version.h file which is generated at build time. Changes to the cef_api_hash.h file are committed to the repo and represent potentially breaking API changes. This commit history will be used to calculate the version number.
This commit is contained in:
parent
725ed88529
commit
a76f40eb83
@ -34,6 +34,7 @@
|
|||||||
'include/base/internal/cef_lock_impl.h',
|
'include/base/internal/cef_lock_impl.h',
|
||||||
'include/base/internal/cef_raw_scoped_refptr_mismatch_checker.h',
|
'include/base/internal/cef_raw_scoped_refptr_mismatch_checker.h',
|
||||||
'include/base/internal/cef_thread_checker_impl.h',
|
'include/base/internal/cef_thread_checker_impl.h',
|
||||||
|
'include/cef_api_hash.h',
|
||||||
'include/cef_base.h',
|
'include/cef_base.h',
|
||||||
'include/cef_version.h',
|
'include/cef_version.h',
|
||||||
'include/internal/cef_export.h',
|
'include/internal/cef_export.h',
|
||||||
|
76
include/cef_api_hash.h
Normal file
76
include/cef_api_hash.h
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
// Copyright (c) 2019 Marshall A. Greenblatt. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||||
|
// Framework nor the names of its contributors may be used to endorse
|
||||||
|
// or promote products derived from this software without specific prior
|
||||||
|
// written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// This file was generated by the CEF translator tool. If making changes by
|
||||||
|
// hand only do so within the body of existing method and function
|
||||||
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
|
// for more information.
|
||||||
|
//
|
||||||
|
// $hash=b5fa5783096eaa1af5e76645e2557e123af56848$
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef CEF_INCLUDE_API_HASH_H_
|
||||||
|
#define CEF_INCLUDE_API_HASH_H_
|
||||||
|
|
||||||
|
#include "include/internal/cef_export.h"
|
||||||
|
|
||||||
|
// The API hash is created by analyzing CEF header files for C API type
|
||||||
|
// definitions. The hash value will change when header files are modified in a
|
||||||
|
// way that may cause binary incompatibility with other builds. The universal
|
||||||
|
// hash value will change if any platform is affected whereas the platform hash
|
||||||
|
// values will change only if that particular platform is affected.
|
||||||
|
#define CEF_API_HASH_UNIVERSAL "8ae24aac4bd16d2e2d87e7d6561985064990670e"
|
||||||
|
#if defined(OS_WIN)
|
||||||
|
#define CEF_API_HASH_PLATFORM "fe476e7a38a8270fe783981b4bc6fac4284ab9fe"
|
||||||
|
#elif defined(OS_MACOSX)
|
||||||
|
#define CEF_API_HASH_PLATFORM "ab1b4d8c4578b0bcdc97f28f13a10384057bdf95"
|
||||||
|
#elif defined(OS_LINUX)
|
||||||
|
#define CEF_API_HASH_PLATFORM "73f24626e0179a3f5664d64ffe0fa2aab9edf7cf"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
///
|
||||||
|
// Returns CEF API hashes for the libcef library. The returned string is owned
|
||||||
|
// by the library and should not be freed. The |entry| parameter describes which
|
||||||
|
// hash value will be returned:
|
||||||
|
// 0 - CEF_API_HASH_PLATFORM
|
||||||
|
// 1 - CEF_API_HASH_UNIVERSAL
|
||||||
|
// 2 - CEF_COMMIT_HASH (from cef_version.h)
|
||||||
|
///
|
||||||
|
CEF_EXPORT const char* cef_api_hash(int entry);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif // CEF_INCLUDE_API_HASH_H_
|
@ -9,11 +9,11 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=a87daf3d3e3bd604ac3c008561676181d42f3266$
|
// $hash=0e24c6b07a7377337132b09396d9e5f3e4eca517$
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "libcef_dll/ctocpp/command_line_ctocpp.h"
|
#include "libcef_dll/ctocpp/command_line_ctocpp.h"
|
||||||
#include "include/cef_version.h"
|
#include "include/cef_api_hash.h"
|
||||||
#include "libcef_dll/transfer_util.h"
|
#include "libcef_dll/transfer_util.h"
|
||||||
|
|
||||||
// STATIC METHODS - Body may be edited by hand.
|
// STATIC METHODS - Body may be edited by hand.
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
#include "include/cef_api_hash.h"
|
||||||
#include "include/cef_version.h"
|
#include "include/cef_version.h"
|
||||||
|
|
||||||
CEF_EXPORT int cef_version_info(int entry) {
|
CEF_EXPORT int cef_version_info(int entry) {
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=ef8269462464beba6718a2e0d03e0f1cb41901bf$
|
// $hash=4a4744491587c5f5b1ce8726d8dd08ad04646b92$
|
||||||
//
|
//
|
||||||
|
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
@ -58,6 +58,7 @@
|
|||||||
#include "include/capi/views/cef_scroll_view_capi.h"
|
#include "include/capi/views/cef_scroll_view_capi.h"
|
||||||
#include "include/capi/views/cef_textfield_capi.h"
|
#include "include/capi/views/cef_textfield_capi.h"
|
||||||
#include "include/capi/views/cef_window_capi.h"
|
#include "include/capi/views/cef_window_capi.h"
|
||||||
|
#include "include/cef_api_hash.h"
|
||||||
#include "include/cef_version.h"
|
#include "include/cef_version.h"
|
||||||
#include "include/internal/cef_logging_internal.h"
|
#include "include/internal/cef_logging_internal.h"
|
||||||
#include "include/internal/cef_string_list.h"
|
#include "include/internal/cef_string_list.h"
|
||||||
@ -333,8 +334,8 @@ typedef struct _cef_textfield_t* (*cef_textfield_create_ptr)(
|
|||||||
struct _cef_textfield_delegate_t*);
|
struct _cef_textfield_delegate_t*);
|
||||||
typedef struct _cef_window_t* (*cef_window_create_top_level_ptr)(
|
typedef struct _cef_window_t* (*cef_window_create_top_level_ptr)(
|
||||||
struct _cef_window_delegate_t*);
|
struct _cef_window_delegate_t*);
|
||||||
typedef int (*cef_version_info_ptr)(int);
|
|
||||||
typedef const char* (*cef_api_hash_ptr)(int);
|
typedef const char* (*cef_api_hash_ptr)(int);
|
||||||
|
typedef int (*cef_version_info_ptr)(int);
|
||||||
typedef int (*cef_get_min_log_level_ptr)();
|
typedef int (*cef_get_min_log_level_ptr)();
|
||||||
typedef int (*cef_get_vlog_level_ptr)(const char*, size_t);
|
typedef int (*cef_get_vlog_level_ptr)(const char*, size_t);
|
||||||
typedef void (*cef_log_ptr)(const char*, int, int, const char*);
|
typedef void (*cef_log_ptr)(const char*, int, int, const char*);
|
||||||
@ -656,8 +657,8 @@ struct libcef_pointers {
|
|||||||
cef_scroll_view_create_ptr cef_scroll_view_create;
|
cef_scroll_view_create_ptr cef_scroll_view_create;
|
||||||
cef_textfield_create_ptr cef_textfield_create;
|
cef_textfield_create_ptr cef_textfield_create;
|
||||||
cef_window_create_top_level_ptr cef_window_create_top_level;
|
cef_window_create_top_level_ptr cef_window_create_top_level;
|
||||||
cef_version_info_ptr cef_version_info;
|
|
||||||
cef_api_hash_ptr cef_api_hash;
|
cef_api_hash_ptr cef_api_hash;
|
||||||
|
cef_version_info_ptr cef_version_info;
|
||||||
cef_get_min_log_level_ptr cef_get_min_log_level;
|
cef_get_min_log_level_ptr cef_get_min_log_level;
|
||||||
cef_get_vlog_level_ptr cef_get_vlog_level;
|
cef_get_vlog_level_ptr cef_get_vlog_level;
|
||||||
cef_log_ptr cef_log;
|
cef_log_ptr cef_log;
|
||||||
@ -864,8 +865,8 @@ int libcef_init_pointers(const char* path) {
|
|||||||
INIT_ENTRY(cef_scroll_view_create);
|
INIT_ENTRY(cef_scroll_view_create);
|
||||||
INIT_ENTRY(cef_textfield_create);
|
INIT_ENTRY(cef_textfield_create);
|
||||||
INIT_ENTRY(cef_window_create_top_level);
|
INIT_ENTRY(cef_window_create_top_level);
|
||||||
INIT_ENTRY(cef_version_info);
|
|
||||||
INIT_ENTRY(cef_api_hash);
|
INIT_ENTRY(cef_api_hash);
|
||||||
|
INIT_ENTRY(cef_version_info);
|
||||||
INIT_ENTRY(cef_get_min_log_level);
|
INIT_ENTRY(cef_get_min_log_level);
|
||||||
INIT_ENTRY(cef_get_vlog_level);
|
INIT_ENTRY(cef_get_vlog_level);
|
||||||
INIT_ENTRY(cef_log);
|
INIT_ENTRY(cef_log);
|
||||||
@ -1098,8 +1099,8 @@ int cef_create_url(const struct _cef_urlparts_t* parts, cef_string_t* url) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
NO_SANITIZE("cfi-icall")
|
||||||
cef_string_userfree_t
|
cef_string_userfree_t cef_format_url_for_security_display(
|
||||||
cef_format_url_for_security_display(const cef_string_t* origin_url) {
|
const cef_string_t* origin_url) {
|
||||||
return g_libcef_pointers.cef_format_url_for_security_display(origin_url);
|
return g_libcef_pointers.cef_format_url_for_security_display(origin_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1590,54 +1591,46 @@ struct _cef_translator_test_t* cef_translator_test_create() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
NO_SANITIZE("cfi-icall")
|
||||||
struct
|
struct _cef_translator_test_ref_ptr_library_t*
|
||||||
_cef_translator_test_ref_ptr_library_t* cef_translator_test_ref_ptr_library_create(
|
cef_translator_test_ref_ptr_library_create(int value) {
|
||||||
int value) {
|
|
||||||
return g_libcef_pointers.cef_translator_test_ref_ptr_library_create(value);
|
return g_libcef_pointers.cef_translator_test_ref_ptr_library_create(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
NO_SANITIZE("cfi-icall")
|
||||||
struct
|
struct _cef_translator_test_ref_ptr_library_child_t*
|
||||||
_cef_translator_test_ref_ptr_library_child_t* cef_translator_test_ref_ptr_library_child_create(
|
cef_translator_test_ref_ptr_library_child_create(int value, int other_value) {
|
||||||
int value,
|
|
||||||
int other_value) {
|
|
||||||
return g_libcef_pointers.cef_translator_test_ref_ptr_library_child_create(
|
return g_libcef_pointers.cef_translator_test_ref_ptr_library_child_create(
|
||||||
value, other_value);
|
value, other_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
NO_SANITIZE("cfi-icall")
|
||||||
struct
|
struct _cef_translator_test_ref_ptr_library_child_child_t*
|
||||||
_cef_translator_test_ref_ptr_library_child_child_t* cef_translator_test_ref_ptr_library_child_child_create(
|
cef_translator_test_ref_ptr_library_child_child_create(int value,
|
||||||
int value,
|
int other_value,
|
||||||
int other_value,
|
int other_other_value) {
|
||||||
int other_other_value) {
|
|
||||||
return g_libcef_pointers
|
return g_libcef_pointers
|
||||||
.cef_translator_test_ref_ptr_library_child_child_create(
|
.cef_translator_test_ref_ptr_library_child_child_create(
|
||||||
value, other_value, other_other_value);
|
value, other_value, other_other_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
NO_SANITIZE("cfi-icall")
|
||||||
struct
|
struct _cef_translator_test_scoped_library_t*
|
||||||
_cef_translator_test_scoped_library_t* cef_translator_test_scoped_library_create(
|
cef_translator_test_scoped_library_create(int value) {
|
||||||
int value) {
|
|
||||||
return g_libcef_pointers.cef_translator_test_scoped_library_create(value);
|
return g_libcef_pointers.cef_translator_test_scoped_library_create(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
NO_SANITIZE("cfi-icall")
|
||||||
struct
|
struct _cef_translator_test_scoped_library_child_t*
|
||||||
_cef_translator_test_scoped_library_child_t* cef_translator_test_scoped_library_child_create(
|
cef_translator_test_scoped_library_child_create(int value, int other_value) {
|
||||||
int value,
|
|
||||||
int other_value) {
|
|
||||||
return g_libcef_pointers.cef_translator_test_scoped_library_child_create(
|
return g_libcef_pointers.cef_translator_test_scoped_library_child_create(
|
||||||
value, other_value);
|
value, other_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall")
|
NO_SANITIZE("cfi-icall")
|
||||||
struct
|
struct _cef_translator_test_scoped_library_child_child_t*
|
||||||
_cef_translator_test_scoped_library_child_child_t* cef_translator_test_scoped_library_child_child_create(
|
cef_translator_test_scoped_library_child_child_create(int value,
|
||||||
int value,
|
int other_value,
|
||||||
int other_value,
|
int other_other_value) {
|
||||||
int other_other_value) {
|
|
||||||
return g_libcef_pointers
|
return g_libcef_pointers
|
||||||
.cef_translator_test_scoped_library_child_child_create(value, other_value,
|
.cef_translator_test_scoped_library_child_child_create(value, other_value,
|
||||||
other_other_value);
|
other_other_value);
|
||||||
@ -1727,14 +1720,14 @@ struct _cef_window_t* cef_window_create_top_level(
|
|||||||
return g_libcef_pointers.cef_window_create_top_level(delegate);
|
return g_libcef_pointers.cef_window_create_top_level(delegate);
|
||||||
}
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall") int cef_version_info(int entry) {
|
|
||||||
return g_libcef_pointers.cef_version_info(entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall") const char* cef_api_hash(int entry) {
|
NO_SANITIZE("cfi-icall") const char* cef_api_hash(int entry) {
|
||||||
return g_libcef_pointers.cef_api_hash(entry);
|
return g_libcef_pointers.cef_api_hash(entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NO_SANITIZE("cfi-icall") int cef_version_info(int entry) {
|
||||||
|
return g_libcef_pointers.cef_version_info(entry);
|
||||||
|
}
|
||||||
|
|
||||||
NO_SANITIZE("cfi-icall") int cef_get_min_log_level() {
|
NO_SANITIZE("cfi-icall") int cef_get_min_log_level() {
|
||||||
return g_libcef_pointers.cef_get_min_log_level();
|
return g_libcef_pointers.cef_get_min_log_level();
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
// implementations. See the translator.README.txt file in the tools directory
|
// implementations. See the translator.README.txt file in the tools directory
|
||||||
// for more information.
|
// for more information.
|
||||||
//
|
//
|
||||||
// $hash=a53efd61643236ca14fddb5541f23ef2d9d1dc54$
|
// $hash=32eea715f2566d1b6a4e3d263e35400cf7c53869$
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "include/capi/cef_app_capi.h"
|
#include "include/capi/cef_app_capi.h"
|
||||||
@ -26,6 +26,7 @@
|
|||||||
#include "include/capi/cef_v8_capi.h"
|
#include "include/capi/cef_v8_capi.h"
|
||||||
#include "include/capi/cef_web_plugin_capi.h"
|
#include "include/capi/cef_web_plugin_capi.h"
|
||||||
#include "include/capi/test/cef_test_helpers_capi.h"
|
#include "include/capi/test/cef_test_helpers_capi.h"
|
||||||
|
#include "include/cef_api_hash.h"
|
||||||
#include "include/cef_app.h"
|
#include "include/cef_app.h"
|
||||||
#include "include/cef_crash_util.h"
|
#include "include/cef_crash_util.h"
|
||||||
#include "include/cef_file_util.h"
|
#include "include/cef_file_util.h"
|
||||||
@ -38,7 +39,6 @@
|
|||||||
#include "include/cef_task.h"
|
#include "include/cef_task.h"
|
||||||
#include "include/cef_trace.h"
|
#include "include/cef_trace.h"
|
||||||
#include "include/cef_v8.h"
|
#include "include/cef_v8.h"
|
||||||
#include "include/cef_version.h"
|
|
||||||
#include "include/cef_web_plugin.h"
|
#include "include/cef_web_plugin.h"
|
||||||
#include "include/test/cef_test_helpers.h"
|
#include "include/test/cef_test_helpers.h"
|
||||||
#include "libcef_dll/cpptoc/app_cpptoc.h"
|
#include "libcef_dll/cpptoc/app_cpptoc.h"
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
// reserved. Use of this source code is governed by a BSD-style license that
|
// reserved. Use of this source code is governed by a BSD-style license that
|
||||||
// can be found in the LICENSE file.
|
// can be found in the LICENSE file.
|
||||||
|
|
||||||
|
#include "include/cef_api_hash.h"
|
||||||
#include "include/cef_version.h"
|
#include "include/cef_version.h"
|
||||||
#include "tests/gtest/include/gtest/gtest.h"
|
#include "tests/gtest/include/gtest/gtest.h"
|
||||||
|
|
||||||
|
@ -44,6 +44,7 @@ class cef_api_hash:
|
|||||||
self.included_files = []
|
self.included_files = []
|
||||||
|
|
||||||
self.excluded_files = [
|
self.excluded_files = [
|
||||||
|
"cef_api_hash.h",
|
||||||
"cef_version.h",
|
"cef_version.h",
|
||||||
"internal/cef_tuple.h",
|
"internal/cef_tuple.h",
|
||||||
"internal/cef_types_wrappers.h",
|
"internal/cef_types_wrappers.h",
|
||||||
|
@ -246,7 +246,7 @@ def format_translation_includes(header, body):
|
|||||||
result += '#include <algorithm>\n'
|
result += '#include <algorithm>\n'
|
||||||
|
|
||||||
if body.find('cef_api_hash(') > 0:
|
if body.find('cef_api_hash(') > 0:
|
||||||
result += '#include "include/cef_version.h"\n'
|
result += '#include "include/cef_api_hash.h"\n'
|
||||||
|
|
||||||
# identify what CppToC classes are being used
|
# identify what CppToC classes are being used
|
||||||
p = re.compile('([A-Za-z0-9_]{1,})CppToC')
|
p = re.compile('([A-Za-z0-9_]{1,})CppToC')
|
||||||
@ -452,12 +452,47 @@ def get_next_function_impl(existing, name):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def get_copyright():
|
def get_copyright(full=False):
|
||||||
result = \
|
if full:
|
||||||
|
result = \
|
||||||
|
"""// Copyright (c) $YEAR$ Marshall A. Greenblatt. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the name Chromium Embedded
|
||||||
|
// Framework nor the names of its contributors may be used to endorse
|
||||||
|
// or promote products derived from this software without specific prior
|
||||||
|
// written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
"""
|
||||||
|
else:
|
||||||
|
result = \
|
||||||
"""// Copyright (c) $YEAR$ The Chromium Embedded Framework Authors. All rights
|
"""// Copyright (c) $YEAR$ The Chromium Embedded Framework Authors. All rights
|
||||||
// reserved. Use of this source code is governed by a BSD-style license that
|
// reserved. Use of this source code is governed by a BSD-style license that
|
||||||
// can be found in the LICENSE file.
|
// can be found in the LICENSE file.
|
||||||
//
|
"""
|
||||||
|
|
||||||
|
result += \
|
||||||
|
"""//
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// This file was generated by the CEF translator tool. If making changes by
|
// This file was generated by the CEF translator tool. If making changes by
|
||||||
|
@ -29,7 +29,7 @@ print "\nGenerating CEF version header file..."
|
|||||||
cmd = [
|
cmd = [
|
||||||
'python', 'tools/make_version_header.py', '--header',
|
'python', 'tools/make_version_header.py', '--header',
|
||||||
'include/cef_version.h', '--cef_version', 'VERSION.in', '--chrome_version',
|
'include/cef_version.h', '--cef_version', 'VERSION.in', '--chrome_version',
|
||||||
'../chrome/VERSION', '--cpp_header_dir', 'include'
|
'../chrome/VERSION'
|
||||||
]
|
]
|
||||||
RunAction(cef_dir, cmd)
|
RunAction(cef_dir, cmd)
|
||||||
|
|
||||||
|
77
tools/make_api_hash_header.py
Normal file
77
tools/make_api_hash_header.py
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
# Copyright (c) 2019 The Chromium Embedded Framework Authors. All rights
|
||||||
|
# reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
# can be found in the LICENSE file.
|
||||||
|
|
||||||
|
from cef_api_hash import cef_api_hash
|
||||||
|
from cef_parser import *
|
||||||
|
from file_util import *
|
||||||
|
|
||||||
|
|
||||||
|
def make_api_hash_header(cpp_header_dir):
|
||||||
|
# calculate api hashes
|
||||||
|
api_hash_calculator = cef_api_hash(cpp_header_dir, verbose=False)
|
||||||
|
api_hash = api_hash_calculator.calculate()
|
||||||
|
|
||||||
|
result = get_copyright(full=True) + \
|
||||||
|
"""#ifndef CEF_INCLUDE_API_HASH_H_
|
||||||
|
#define CEF_INCLUDE_API_HASH_H_
|
||||||
|
|
||||||
|
#include "include/internal/cef_export.h"
|
||||||
|
|
||||||
|
// The API hash is created by analyzing CEF header files for C API type
|
||||||
|
// definitions. The hash value will change when header files are modified in a
|
||||||
|
// way that may cause binary incompatibility with other builds. The universal
|
||||||
|
// hash value will change if any platform is affected whereas the platform hash
|
||||||
|
// values will change only if that particular platform is affected.
|
||||||
|
#define CEF_API_HASH_UNIVERSAL "$UNIVERSAL$"
|
||||||
|
#if defined(OS_WIN)
|
||||||
|
#define CEF_API_HASH_PLATFORM "$WINDOWS$"
|
||||||
|
#elif defined(OS_MACOSX)
|
||||||
|
#define CEF_API_HASH_PLATFORM "$MACOSX$"
|
||||||
|
#elif defined(OS_LINUX)
|
||||||
|
#define CEF_API_HASH_PLATFORM "$LINUX$"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
///
|
||||||
|
// Returns CEF API hashes for the libcef library. The returned string is owned
|
||||||
|
// by the library and should not be freed. The |entry| parameter describes which
|
||||||
|
// hash value will be returned:
|
||||||
|
// 0 - CEF_API_HASH_PLATFORM
|
||||||
|
// 1 - CEF_API_HASH_UNIVERSAL
|
||||||
|
// 2 - CEF_COMMIT_HASH (from cef_version.h)
|
||||||
|
///
|
||||||
|
CEF_EXPORT const char* cef_api_hash(int entry);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif // CEF_INCLUDE_API_HASH_H_
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Substitute hash values for placeholders.
|
||||||
|
for platform, value in api_hash.iteritems():
|
||||||
|
result = result.replace('$%s$' % platform.upper(), value)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def write_api_hash_header(header, cpp_header_dir):
|
||||||
|
newcontents = make_api_hash_header(cpp_header_dir)
|
||||||
|
return (header, newcontents)
|
||||||
|
|
||||||
|
|
||||||
|
# Test the module.
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# Verify that the correct number of command-line arguments are provided.
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
sys.stderr.write('Usage: ' + sys.argv[0] + ' <cppheaderdir>')
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
# Dump the result to stdout.
|
||||||
|
sys.stdout.write(make_api_hash_header(sys.argv[1]))
|
@ -8,6 +8,7 @@ import os
|
|||||||
|
|
||||||
# Other headers that export C API functions.
|
# Other headers that export C API functions.
|
||||||
OTHER_HEADERS = [
|
OTHER_HEADERS = [
|
||||||
|
'cef_api_hash.h',
|
||||||
'cef_version.h',
|
'cef_version.h',
|
||||||
'internal/cef_logging_internal.h',
|
'internal/cef_logging_internal.h',
|
||||||
'internal/cef_string_list.h',
|
'internal/cef_string_list.h',
|
||||||
@ -205,7 +206,7 @@ if __name__ == "__main__":
|
|||||||
# Create the header object. Should match the logic in translator.py.
|
# Create the header object. Should match the logic in translator.py.
|
||||||
header = obj_header()
|
header = obj_header()
|
||||||
header.set_root_directory(cpp_header_dir)
|
header.set_root_directory(cpp_header_dir)
|
||||||
excluded_files = ['cef_application_mac.h', 'cef_version.h']
|
excluded_files = ['cef_api_hash.h', 'cef_application_mac.h', 'cef_version.h']
|
||||||
header.add_directory(cpp_header_dir, excluded_files)
|
header.add_directory(cpp_header_dir, excluded_files)
|
||||||
header.add_directory(os.path.join(cpp_header_dir, 'test'))
|
header.add_directory(os.path.join(cpp_header_dir, 'test'))
|
||||||
header.add_directory(os.path.join(cpp_header_dir, 'views'))
|
header.add_directory(os.path.join(cpp_header_dir, 'views'))
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
from date_util import *
|
from date_util import *
|
||||||
from file_util import *
|
from file_util import *
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
from cef_api_hash import cef_api_hash
|
|
||||||
import git_util as git
|
import git_util as git
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
@ -35,11 +34,6 @@ parser.add_option(
|
|||||||
dest='chrome_version',
|
dest='chrome_version',
|
||||||
metavar='FILE',
|
metavar='FILE',
|
||||||
help='input Chrome version config file [required]')
|
help='input Chrome version config file [required]')
|
||||||
parser.add_option(
|
|
||||||
'--cpp_header_dir',
|
|
||||||
dest='cpp_header_dir',
|
|
||||||
metavar='DIR',
|
|
||||||
help='input directory for C++ header files [required]')
|
|
||||||
parser.add_option(
|
parser.add_option(
|
||||||
'-q',
|
'-q',
|
||||||
'--quiet',
|
'--quiet',
|
||||||
@ -50,12 +44,12 @@ parser.add_option(
|
|||||||
(options, args) = parser.parse_args()
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
# the header option is required
|
# the header option is required
|
||||||
if options.header is None or options.cef_version is None or options.chrome_version is None or options.cpp_header_dir is None:
|
if options.header is None or options.cef_version is None or options.chrome_version is None:
|
||||||
parser.print_help(sys.stdout)
|
parser.print_help(sys.stdout)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
|
||||||
def write_version_header(header, chrome_version, cef_version, cpp_header_dir):
|
def write_version_header(header, chrome_version, cef_version):
|
||||||
""" Creates the header file for the current revision and Chrome version information
|
""" Creates the header file for the current revision and Chrome version information
|
||||||
if the information has changed or if the file doesn't already exist. """
|
if the information has changed or if the file doesn't already exist. """
|
||||||
|
|
||||||
@ -84,10 +78,6 @@ def write_version_header(header, chrome_version, cef_version, cpp_header_dir):
|
|||||||
version = '%s.%s.%s.g%s' % (args['CEF_MAJOR'], args['BUILD'], commit_number,
|
version = '%s.%s.%s.g%s' % (args['CEF_MAJOR'], args['BUILD'], commit_number,
|
||||||
commit_hash[:7])
|
commit_hash[:7])
|
||||||
|
|
||||||
# calculate api hashes
|
|
||||||
api_hash_calculator = cef_api_hash(cpp_header_dir, verbose=False)
|
|
||||||
api_hashes = api_hash_calculator.calculate()
|
|
||||||
|
|
||||||
newcontents = '// Copyright (c) '+year+' Marshall A. Greenblatt. All rights reserved.\n'+\
|
newcontents = '// Copyright (c) '+year+' Marshall A. Greenblatt. All rights reserved.\n'+\
|
||||||
'//\n'+\
|
'//\n'+\
|
||||||
'// Redistribution and use in source and binary forms, with or without\n'+\
|
'// Redistribution and use in source and binary forms, with or without\n'+\
|
||||||
@ -139,20 +129,6 @@ def write_version_header(header, chrome_version, cef_version, cpp_header_dir):
|
|||||||
'#ifdef __cplusplus\n'+\
|
'#ifdef __cplusplus\n'+\
|
||||||
'extern "C" {\n'+\
|
'extern "C" {\n'+\
|
||||||
'#endif\n\n'+\
|
'#endif\n\n'+\
|
||||||
'// The API hash is created by analyzing CEF header files for C API type\n'+\
|
|
||||||
'// definitions. The hash value will change when header files are modified\n'+\
|
|
||||||
'// in a way that may cause binary incompatibility with other builds. The\n'+\
|
|
||||||
'// universal hash value will change if any platform is affected whereas the\n'+\
|
|
||||||
'// platform hash values will change only if that particular platform is\n'+\
|
|
||||||
'// affected.\n'+\
|
|
||||||
'#define CEF_API_HASH_UNIVERSAL "' + api_hashes['universal'] + '"\n'+\
|
|
||||||
'#if defined(OS_WIN)\n'+\
|
|
||||||
'#define CEF_API_HASH_PLATFORM "' + api_hashes['windows'] + '"\n'+\
|
|
||||||
'#elif defined(OS_MACOSX)\n'+\
|
|
||||||
'#define CEF_API_HASH_PLATFORM "' + api_hashes['macosx'] + '"\n'+\
|
|
||||||
'#elif defined(OS_LINUX)\n'+\
|
|
||||||
'#define CEF_API_HASH_PLATFORM "' + api_hashes['linux'] + '"\n'+\
|
|
||||||
'#endif\n\n'+\
|
|
||||||
'// Returns CEF version information for the libcef library. The |entry|\n'+\
|
'// Returns CEF version information for the libcef library. The |entry|\n'+\
|
||||||
'// parameter describes which version component will be returned:\n'+\
|
'// parameter describes which version component will be returned:\n'+\
|
||||||
'// 0 - CEF_VERSION_MAJOR\n'+\
|
'// 0 - CEF_VERSION_MAJOR\n'+\
|
||||||
@ -163,15 +139,6 @@ def write_version_header(header, chrome_version, cef_version, cpp_header_dir):
|
|||||||
'// 5 - CHROME_VERSION_PATCH\n'+\
|
'// 5 - CHROME_VERSION_PATCH\n'+\
|
||||||
'///\n'+\
|
'///\n'+\
|
||||||
'CEF_EXPORT int cef_version_info(int entry);\n\n'+\
|
'CEF_EXPORT int cef_version_info(int entry);\n\n'+\
|
||||||
'///\n'+\
|
|
||||||
'// Returns CEF API hashes for the libcef library. The returned string is owned\n'+\
|
|
||||||
'// by the library and should not be freed. The |entry| parameter describes which\n'+\
|
|
||||||
'// hash value will be returned:\n'+\
|
|
||||||
'// 0 - CEF_API_HASH_PLATFORM\n'+\
|
|
||||||
'// 1 - CEF_API_HASH_UNIVERSAL\n'+\
|
|
||||||
'// 2 - CEF_COMMIT_HASH\n'+\
|
|
||||||
'///\n'+\
|
|
||||||
'CEF_EXPORT const char* cef_api_hash(int entry);\n\n'+\
|
|
||||||
'#ifdef __cplusplus\n'+\
|
'#ifdef __cplusplus\n'+\
|
||||||
'}\n'+\
|
'}\n'+\
|
||||||
'#endif\n\n'+\
|
'#endif\n\n'+\
|
||||||
@ -185,7 +152,7 @@ def write_version_header(header, chrome_version, cef_version, cpp_header_dir):
|
|||||||
|
|
||||||
|
|
||||||
written = write_version_header(options.header, options.chrome_version,
|
written = write_version_header(options.header, options.chrome_version,
|
||||||
options.cef_version, options.cpp_header_dir)
|
options.cef_version)
|
||||||
if not options.quiet:
|
if not options.quiet:
|
||||||
if written:
|
if written:
|
||||||
sys.stdout.write('File ' + options.header + ' updated.\n')
|
sys.stdout.write('File ' + options.header + ' updated.\n')
|
||||||
|
@ -87,7 +87,7 @@ if __name__ == "__main__":
|
|||||||
# Create the header object. Should match the logic in translator.py.
|
# Create the header object. Should match the logic in translator.py.
|
||||||
header = obj_header()
|
header = obj_header()
|
||||||
header.set_root_directory(cpp_header_dir)
|
header.set_root_directory(cpp_header_dir)
|
||||||
excluded_files = ['cef_application_mac.h', 'cef_version.h']
|
excluded_files = ['cef_api_hash.h', 'cef_application_mac.h', 'cef_version.h']
|
||||||
header.add_directory(cpp_header_dir, excluded_files)
|
header.add_directory(cpp_header_dir, excluded_files)
|
||||||
header.add_directory(os.path.join(cpp_header_dir, 'views'))
|
header.add_directory(os.path.join(cpp_header_dir, 'views'))
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
# create the header object
|
# create the header object
|
||||||
header = obj_header()
|
header = obj_header()
|
||||||
excluded_files = ['cef_application_mac.h', 'cef_version.h']
|
excluded_files = ['cef_api_hash.h', 'cef_application_mac.h', 'cef_version.h']
|
||||||
header.add_directory(sys.argv[1], excluded_files)
|
header.add_directory(sys.argv[1], excluded_files)
|
||||||
|
|
||||||
# dump the result to stdout
|
# dump the result to stdout
|
||||||
|
@ -7,6 +7,7 @@ from cef_parser import *
|
|||||||
from clang_util import clang_format
|
from clang_util import clang_format
|
||||||
from file_util import *
|
from file_util import *
|
||||||
import hashlib
|
import hashlib
|
||||||
|
from make_api_hash_header import *
|
||||||
from make_capi_header import *
|
from make_capi_header import *
|
||||||
from make_cpptoc_header import *
|
from make_cpptoc_header import *
|
||||||
from make_cpptoc_impl import *
|
from make_cpptoc_impl import *
|
||||||
@ -72,6 +73,7 @@ cpp_header_dir = os.path.join(root_dir, 'include')
|
|||||||
cpp_header_test_dir = os.path.join(cpp_header_dir, 'test')
|
cpp_header_test_dir = os.path.join(cpp_header_dir, 'test')
|
||||||
cpp_header_views_dir = os.path.join(cpp_header_dir, 'views')
|
cpp_header_views_dir = os.path.join(cpp_header_dir, 'views')
|
||||||
capi_header_dir = os.path.join(cpp_header_dir, 'capi')
|
capi_header_dir = os.path.join(cpp_header_dir, 'capi')
|
||||||
|
api_hash_header = os.path.join(cpp_header_dir, 'cef_api_hash.h')
|
||||||
libcef_dll_dir = os.path.join(root_dir, 'libcef_dll')
|
libcef_dll_dir = os.path.join(root_dir, 'libcef_dll')
|
||||||
cpptoc_global_impl = os.path.join(libcef_dll_dir, 'libcef_dll.cc')
|
cpptoc_global_impl = os.path.join(libcef_dll_dir, 'libcef_dll.cc')
|
||||||
ctocpp_global_impl = os.path.join(libcef_dll_dir, 'wrapper',
|
ctocpp_global_impl = os.path.join(libcef_dll_dir, 'wrapper',
|
||||||
@ -96,7 +98,7 @@ header = obj_header()
|
|||||||
|
|
||||||
# add include files to be processed
|
# add include files to be processed
|
||||||
header.set_root_directory(cpp_header_dir)
|
header.set_root_directory(cpp_header_dir)
|
||||||
excluded_files = ['cef_application_mac.h', 'cef_version.h']
|
excluded_files = ['cef_api_hash.h', 'cef_application_mac.h', 'cef_version.h']
|
||||||
header.add_directory(cpp_header_dir, excluded_files)
|
header.add_directory(cpp_header_dir, excluded_files)
|
||||||
header.add_directory(cpp_header_test_dir)
|
header.add_directory(cpp_header_test_dir)
|
||||||
header.add_directory(cpp_header_views_dir)
|
header.add_directory(cpp_header_views_dir)
|
||||||
@ -236,5 +238,11 @@ if not options.quiet:
|
|||||||
sys.stdout.write('Generating ' + libcef_dll_dylib_impl + ' file...\n')
|
sys.stdout.write('Generating ' + libcef_dll_dylib_impl + ' file...\n')
|
||||||
update_file(*write_libcef_dll_dylib_impl(header, libcef_dll_dylib_impl))
|
update_file(*write_libcef_dll_dylib_impl(header, libcef_dll_dylib_impl))
|
||||||
|
|
||||||
|
# Output the API hash header file. This must be done last because it reads files
|
||||||
|
# that were potentially written by proceeding operations.
|
||||||
|
if not options.quiet:
|
||||||
|
sys.stdout.write('Generating API hash header...\n')
|
||||||
|
update_file(*write_api_hash_header(api_hash_header, cpp_header_dir))
|
||||||
|
|
||||||
if not options.quiet:
|
if not options.quiet:
|
||||||
sys.stdout.write('Done - Wrote ' + str(writect) + ' files.\n')
|
sys.stdout.write('Done - Wrote ' + str(writect) + ' files.\n')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user