Assume release CEF build by default under Unix
This prevents wxWebViewChromium from referencing debug-only functions that are not defined in the release build of libcef_dll_wrapper. Unfortunately, CEF build doesn't provide any way to detect if the wrappers were built in debug or in release mode, so just assume the latter and add --enable-cef-debug configure option to build with a debug build of CEF wrapper if necessary.
This commit is contained in:
parent
b5e278c0eb
commit
4816448cff
5 changed files with 71 additions and 1 deletions
37
configure
vendored
37
configure
vendored
|
|
@ -1240,6 +1240,7 @@ enable_printarch
|
||||||
enable_svg
|
enable_svg
|
||||||
enable_webview
|
enable_webview
|
||||||
enable_webviewchromium
|
enable_webviewchromium
|
||||||
|
enable_cef_debug
|
||||||
enable_graphics_ctx
|
enable_graphics_ctx
|
||||||
enable_graphics_d2d
|
enable_graphics_d2d
|
||||||
enable_clipboard
|
enable_clipboard
|
||||||
|
|
@ -2210,6 +2211,7 @@ Optional Features:
|
||||||
--enable-svg use wxSVGFileDC device context
|
--enable-svg use wxSVGFileDC device context
|
||||||
--enable-webview use wxWebView library
|
--enable-webview use wxWebView library
|
||||||
--enable-webviewchromium use wxWebView Chromium backend
|
--enable-webviewchromium use wxWebView Chromium backend
|
||||||
|
--enable-cef_debug use debug build of CEF wrapper
|
||||||
--enable-graphics_ctx use graphics context 2D drawing API
|
--enable-graphics_ctx use graphics context 2D drawing API
|
||||||
--enable-graphics-d2d use Direct2D-based graphics context
|
--enable-graphics-d2d use Direct2D-based graphics context
|
||||||
--enable-clipboard use wxClipboard class
|
--enable-clipboard use wxClipboard class
|
||||||
|
|
@ -8857,6 +8859,36 @@ fi
|
||||||
eval "$wx_cv_use_webviewchromium"
|
eval "$wx_cv_use_webviewchromium"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
enablestring=
|
||||||
|
defaultval=
|
||||||
|
if test -z "$defaultval"; then
|
||||||
|
if test x"$enablestring" = xdisable; then
|
||||||
|
defaultval=yes
|
||||||
|
else
|
||||||
|
defaultval=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check whether --enable-cef_debug was given.
|
||||||
|
if test "${enable_cef_debug+set}" = set; then :
|
||||||
|
enableval=$enable_cef_debug;
|
||||||
|
if test "$enableval" = yes; then
|
||||||
|
wx_cv_use_cef_debug='wxUSE_CEF_DEBUG=yes'
|
||||||
|
else
|
||||||
|
wx_cv_use_cef_debug='wxUSE_CEF_DEBUG=no'
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
wx_cv_use_cef_debug='wxUSE_CEF_DEBUG=${'DEFAULT_wxUSE_CEF_DEBUG":-$defaultval}"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
eval "$wx_cv_use_cef_debug"
|
||||||
|
|
||||||
|
|
||||||
if test "$wxUSE_MAC" != 1; then
|
if test "$wxUSE_MAC" != 1; then
|
||||||
|
|
||||||
enablestring=
|
enablestring=
|
||||||
|
|
@ -39810,6 +39842,11 @@ $as_echo "$wx_cv_lib_cef" >&6; }
|
||||||
USE_WEBVIEW_CHROMIUM=1
|
USE_WEBVIEW_CHROMIUM=1
|
||||||
$as_echo "#define wxUSE_WEBVIEW_CHROMIUM 1" >>confdefs.h
|
$as_echo "#define wxUSE_WEBVIEW_CHROMIUM 1" >>confdefs.h
|
||||||
|
|
||||||
|
|
||||||
|
if test "$wxUSE_CEF_DEBUG" = "yes"; then
|
||||||
|
$as_echo "#define wxHAVE_CEF_DEBUG 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
as_fn_error $? "CEF not detected: $cef_error
|
as_fn_error $? "CEF not detected: $cef_error
|
||||||
|
|
||||||
|
|
|
||||||
11
configure.ac
11
configure.ac
|
|
@ -789,6 +789,11 @@ dnl This one is not enabled by default as it requires CEF to be available under
|
||||||
dnl 3rdparty/cef.
|
dnl 3rdparty/cef.
|
||||||
WX_ARG_ENABLE(webviewchromium, [ --enable-webviewchromium use wxWebView Chromium backend], wxUSE_WEBVIEW_CHROMIUM)
|
WX_ARG_ENABLE(webviewchromium, [ --enable-webviewchromium use wxWebView Chromium backend], wxUSE_WEBVIEW_CHROMIUM)
|
||||||
|
|
||||||
|
dnl When using wxWebViewChromium, we assume that CEF wrapper DLL was built in
|
||||||
|
dnl release mode, use this option if it was built in debug one, i.e. with
|
||||||
|
dnl -DCMAKE_BUILD_TYPE=Debug
|
||||||
|
WX_ARG_ENABLE(cef_debug, [ --enable-cef_debug use debug build of CEF wrapper], wxUSE_CEF_DEBUG)
|
||||||
|
|
||||||
dnl wxDC is implemented in terms of wxGraphicsContext in wxOSX so the latter
|
dnl wxDC is implemented in terms of wxGraphicsContext in wxOSX so the latter
|
||||||
dnl can't be disabled, don't even provide an option to do it
|
dnl can't be disabled, don't even provide an option to do it
|
||||||
if test "$wxUSE_MAC" != 1; then
|
if test "$wxUSE_MAC" != 1; then
|
||||||
|
|
@ -6971,6 +6976,12 @@ if test "$wxUSE_WEBVIEW" = "yes"; then
|
||||||
wxUSE_WEBVIEW="yes"
|
wxUSE_WEBVIEW="yes"
|
||||||
USE_WEBVIEW_CHROMIUM=1
|
USE_WEBVIEW_CHROMIUM=1
|
||||||
AC_DEFINE(wxUSE_WEBVIEW_CHROMIUM)
|
AC_DEFINE(wxUSE_WEBVIEW_CHROMIUM)
|
||||||
|
|
||||||
|
dnl Just trust the option value, we don't really have any simple
|
||||||
|
dnl way to check the CEF wrapper DLL build type.
|
||||||
|
if test "$wxUSE_CEF_DEBUG" = "yes"; then
|
||||||
|
AC_DEFINE(wxHAVE_CEF_DEBUG)
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
AC_MSG_ERROR([CEF not detected: $cef_error
|
AC_MSG_ERROR([CEF not detected: $cef_error
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,11 @@
|
||||||
2. Unpack the archive into `3rdparty/cef` directory under wxWidgets source
|
2. Unpack the archive into `3rdparty/cef` directory under wxWidgets source
|
||||||
directory.
|
directory.
|
||||||
3. Build `libcef_dll_wrapper` using the instructions provided in the CEF
|
3. Build `libcef_dll_wrapper` using the instructions provided in the CEF
|
||||||
distribution, but, in short, just by using `cmake` to do it.
|
distribution, but, in short, just by using `cmake` to do it. Please note
|
||||||
|
that if you use `-DCMAKE_BUILD_TYPE=Debug` under Unix when building it, you
|
||||||
|
need to pass `--enable-cef_debug` option to wxWidgets configure to avoid
|
||||||
|
mismatches between various definitions in the wrapper itself and in
|
||||||
|
wxWidgets.
|
||||||
4. Copy the static library binary in the platform-dependent location:
|
4. Copy the static library binary in the platform-dependent location:
|
||||||
- Under MSW, copy `libcefl_dll_wrapper.lib` file to either
|
- Under MSW, copy `libcefl_dll_wrapper.lib` file to either
|
||||||
`3rdparty/cef/Release` or `3rdparty/cef/Debug` depending on the build
|
`3rdparty/cef/Release` or `3rdparty/cef/Debug` depending on the build
|
||||||
|
|
|
||||||
|
|
@ -601,6 +601,11 @@
|
||||||
#define wxUSE_SELECT_DISPATCHER 0
|
#define wxUSE_SELECT_DISPATCHER 0
|
||||||
#define wxUSE_EPOLL_DISPATCHER 0
|
#define wxUSE_EPOLL_DISPATCHER 0
|
||||||
|
|
||||||
|
/*
|
||||||
|
Use debug version of CEF in wxWebViewChromium.
|
||||||
|
*/
|
||||||
|
#undef wxHAVE_CEF_DEBUG
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Use GStreamer for Unix.
|
Use GStreamer for Unix.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,15 @@
|
||||||
#include <gdk/gdkx.h>
|
#include <gdk/gdkx.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// When not using debug version of CEF under Unix we need to make sure to
|
||||||
|
// predefine NDEBUG before including its headers to avoid ODR violations.
|
||||||
|
#ifndef wxHAVE_CEF_DEBUG
|
||||||
|
#ifndef NDEBUG
|
||||||
|
#define NDEBUG
|
||||||
|
#define wxUNDEF_NDEBUG
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __WXOSX__
|
#ifdef __WXOSX__
|
||||||
#include "wx/osx/private/webview_chromium.h"
|
#include "wx/osx/private/webview_chromium.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -55,6 +64,10 @@ wxGCC_WARNING_RESTORE(unused-parameter)
|
||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef wxUNDEF_NDEBUG
|
||||||
|
#undef NDEBUG
|
||||||
|
#endif
|
||||||
|
|
||||||
#if CHROME_VERSION_BUILD < 5845
|
#if CHROME_VERSION_BUILD < 5845
|
||||||
#error "Unsupported CEF version"
|
#error "Unsupported CEF version"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue