From 095a93e0c09b4cfd137a4bec80a5641e6df7c494 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 9 Jan 2020 11:52:47 +0000 Subject: [PATCH 01/48] Add wxWebView::IsBackendAvailable() This allows to check if a specified backend has been registered before creation of a new instance --- include/wx/webview.h | 1 + interface/wx/webview.h | 8 ++++++++ src/common/webview.cpp | 7 +++++++ 3 files changed, 16 insertions(+) diff --git a/include/wx/webview.h b/include/wx/webview.h index 9975325392..4ae7c8c616 100644 --- a/include/wx/webview.h +++ b/include/wx/webview.h @@ -151,6 +151,7 @@ public: static void RegisterFactory(const wxString& backend, wxSharedPtr factory); + static bool IsBackendAvailable(const wxString& backend); // General methods virtual void EnableContextMenu(bool enable = true) diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 685760d60b..cc7cce47af 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -427,6 +427,14 @@ public: static void RegisterFactory(const wxString& backend, wxSharedPtr factory); + /** + Allows to check if a specific backend is currently available + + @since 3.1.4 + */ + static bool IsBackendAvailable(const wxString& backend); + + /** Get the title of the current web page, or its URL/path if title is not available. diff --git a/src/common/webview.cpp b/src/common/webview.cpp index 5121e385eb..214d82ab5d 100644 --- a/src/common/webview.cpp +++ b/src/common/webview.cpp @@ -86,6 +86,13 @@ void wxWebView::RegisterFactory(const wxString& backend, } // static +bool wxWebView::IsBackendAvailable(const wxString& backend) +{ + wxStringWebViewFactoryMap::iterator iter = FindFactory(backend); + return (iter != m_factoryMap.end()); +} + +// static wxStringWebViewFactoryMap::iterator wxWebView::FindFactory(const wxString &backend) { // Initialise the map, it checks internally for existing factories From 1afeaa324d7e463d9fce73769f2a82332d91e5b9 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 9 Jan 2020 13:19:51 +0100 Subject: [PATCH 02/48] Added new build option wxUSE_WEBVIEW_EDGE --- build/cmake/options.cmake | 1 + build/cmake/setup.h.in | 2 ++ include/wx/android/setup.h | 7 +++++++ include/wx/gtk/setup0.h | 7 +++++++ include/wx/motif/setup0.h | 7 +++++++ include/wx/msw/setup0.h | 7 +++++++ include/wx/osx/setup0.h | 7 +++++++ include/wx/setup_inc.h | 7 +++++++ include/wx/univ/setup0.h | 7 +++++++ setup.h.in | 2 ++ 10 files changed, 54 insertions(+) diff --git a/build/cmake/options.cmake b/build/cmake/options.cmake index c9196f766e..1c0cfb8c82 100644 --- a/build/cmake/options.cmake +++ b/build/cmake/options.cmake @@ -420,6 +420,7 @@ if(WIN32) wx_option(wxUSE_TASKBARICON_BALLOONS "enable wxTaskBarIcon::ShowBalloon() method (Win32 only)") wx_option(wxUSE_UXTHEME "enable support for Windows XP themed look (Win32 only)") wx_option(wxUSE_WEBVIEW_IE "use wxWebView IE backend (Win32 only)") + wx_option(wxUSE_WEBVIEW_EDGE "use wxWebView Edge (Chromium) backend (Windows 7+ only)" OFF) wx_option(wxUSE_WXDIB "use wxDIB class (Win32 only)") if(MSVC_VERSION GREATER 1600 AND NOT CMAKE_VS_PLATFORM_TOOLSET MATCHES "_xp$") set(wxUSE_WINRT_DEFAULT ON) diff --git a/build/cmake/setup.h.in b/build/cmake/setup.h.in index 2b5c6a29a1..abc2bfba7e 100644 --- a/build/cmake/setup.h.in +++ b/build/cmake/setup.h.in @@ -336,6 +336,8 @@ #cmakedefine01 wxUSE_WEBVIEW_IE #endif +#cmakedefine01 wxUSE_WEBVIEW_EDGE + #if (defined(__WXGTK__) && !defined(__WXGTK3__)) || defined(__WXOSX__) #cmakedefine01 wxUSE_WEBVIEW_WEBKIT #else diff --git a/include/wx/android/setup.h b/include/wx/android/setup.h index 0906ca46b3..485b3c11dd 100644 --- a/include/wx/android/setup.h +++ b/include/wx/android/setup.h @@ -759,6 +759,13 @@ #define wxUSE_WEBVIEW_IE 0 #endif +// Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) +// +// Default is 0 +// +// Recommended setting: 1 when building for Windows with WebView2 SDK +#define wxUSE_WEBVIEW_EDGE 0 + // Use the WebKit wxWebView backend // // Default is 1 on GTK and OSX diff --git a/include/wx/gtk/setup0.h b/include/wx/gtk/setup0.h index 8355fbf4b3..230560034a 100644 --- a/include/wx/gtk/setup0.h +++ b/include/wx/gtk/setup0.h @@ -760,6 +760,13 @@ #define wxUSE_WEBVIEW_IE 0 #endif +// Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) +// +// Default is 0 +// +// Recommended setting: 1 when building for Windows with WebView2 SDK +#define wxUSE_WEBVIEW_EDGE 0 + // Use the WebKit wxWebView backend // // Default is 1 on GTK and OSX diff --git a/include/wx/motif/setup0.h b/include/wx/motif/setup0.h index 8d9bc1f23d..922189d5cb 100644 --- a/include/wx/motif/setup0.h +++ b/include/wx/motif/setup0.h @@ -760,6 +760,13 @@ #define wxUSE_WEBVIEW_IE 0 #endif +// Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) +// +// Default is 0 +// +// Recommended setting: 1 when building for Windows with WebView2 SDK +#define wxUSE_WEBVIEW_EDGE 0 + // Use the WebKit wxWebView backend // // Default is 1 on GTK and OSX diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h index 22ba9acf3b..471dd40401 100644 --- a/include/wx/msw/setup0.h +++ b/include/wx/msw/setup0.h @@ -760,6 +760,13 @@ #define wxUSE_WEBVIEW_IE 0 #endif +// Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) +// +// Default is 0 +// +// Recommended setting: 1 when building for Windows with WebView2 SDK +#define wxUSE_WEBVIEW_EDGE 0 + // Use the WebKit wxWebView backend // // Default is 1 on GTK and OSX diff --git a/include/wx/osx/setup0.h b/include/wx/osx/setup0.h index dcf2fc0333..bcdab60411 100644 --- a/include/wx/osx/setup0.h +++ b/include/wx/osx/setup0.h @@ -766,6 +766,13 @@ #define wxUSE_WEBVIEW_IE 0 #endif +// Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) +// +// Default is 0 +// +// Recommended setting: 1 when building for Windows with WebView2 SDK +#define wxUSE_WEBVIEW_EDGE 0 + // Use the WebKit wxWebView backend // // Default is 1 on GTK and OSX diff --git a/include/wx/setup_inc.h b/include/wx/setup_inc.h index 76b0149ffe..ed372c2b68 100644 --- a/include/wx/setup_inc.h +++ b/include/wx/setup_inc.h @@ -756,6 +756,13 @@ #define wxUSE_WEBVIEW_IE 0 #endif +// Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) +// +// Default is 0 +// +// Recommended setting: 1 when building for Windows with WebView2 SDK +#define wxUSE_WEBVIEW_EDGE 0 + // Use the WebKit wxWebView backend // // Default is 1 on GTK and OSX diff --git a/include/wx/univ/setup0.h b/include/wx/univ/setup0.h index 35f85aa0a2..00f7923f77 100644 --- a/include/wx/univ/setup0.h +++ b/include/wx/univ/setup0.h @@ -759,6 +759,13 @@ #define wxUSE_WEBVIEW_IE 0 #endif +// Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) +// +// Default is 0 +// +// Recommended setting: 1 when building for Windows with WebView2 SDK +#define wxUSE_WEBVIEW_EDGE 0 + // Use the WebKit wxWebView backend // // Default is 1 on GTK and OSX diff --git a/setup.h.in b/setup.h.in index b2491c00df..6164e14d8d 100644 --- a/setup.h.in +++ b/setup.h.in @@ -336,6 +336,8 @@ #define wxUSE_WEBVIEW_IE 0 #endif +#define wxUSE_WEBVIEW_EDGE 0 + #if (defined(__WXGTK__) && !defined(__WXGTK3__)) || defined(__WXOSX__) #define wxUSE_WEBVIEW_WEBKIT 0 #else From 6a99e7e2737298cba913c14f121d4b826457305b Mon Sep 17 00:00:00 2001 From: Markus Pingel Date: Thu, 9 Jan 2020 13:54:42 +0100 Subject: [PATCH 03/48] Add wxWebView Edge (Chromium) implementation This backend requires WebView2 SDK and enables usage of Edge (Chromium) on Windows 7 and newer --- .gitignore | 2 + build/cmake/files.cmake | 1 + build/cmake/lib/webview/CMakeLists.txt | 16 + build/files | 2 + include/wx/msw/webview_edgec.h | 181 +++++++ include/wx/msw/webviewhistoryitem_ie.h | 2 +- include/wx/webview.h | 1 + interface/wx/webview.h | 10 + samples/webview/webview.cpp | 9 +- src/common/webview.cpp | 10 + src/msw/webview_edgec.cpp | 712 +++++++++++++++++++++++++ 11 files changed, 943 insertions(+), 3 deletions(-) create mode 100644 include/wx/msw/webview_edgec.h create mode 100644 src/msw/webview_edgec.cpp diff --git a/.gitignore b/.gitignore index 22753a30f2..8f047f3bfe 100644 --- a/.gitignore +++ b/.gitignore @@ -475,3 +475,5 @@ # /utils/wxrc/ /utils/wxrc/wxrc_vc[789].sln + +/3rdparty/webview2 diff --git a/build/cmake/files.cmake b/build/cmake/files.cmake index 8df1296a50..5efad18cfa 100644 --- a/build/cmake/files.cmake +++ b/build/cmake/files.cmake @@ -2835,6 +2835,7 @@ set(HTML_CMN_HDR set(WEBVIEW_MSW_SRC src/msw/webview_ie.cpp + src/msw/webview_edgec.cpp ) set(WEBVIEW_CMN_SRC diff --git a/build/cmake/lib/webview/CMakeLists.txt b/build/cmake/lib/webview/CMakeLists.txt index ac4caca35e..ea8b3cbe89 100644 --- a/build/cmake/lib/webview/CMakeLists.txt +++ b/build/cmake/lib/webview/CMakeLists.txt @@ -34,6 +34,22 @@ endif() if(APPLE) wx_lib_link_libraries(webview PUBLIC "-framework WebKit") +elseif(WXMSW) + if(wxUSE_WEBVIEW_EDGE) + wx_lib_include_directories(webview PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/webview2/build/native/include) + + if (${CMAKE_SIZEOF_VOID_P} EQUAL 4) + set(WEBVIEW2_ARCH x86) + else() + set(WEBVIEW2_ARCH x64) + endif() + + wx_lib_link_libraries(webview PUBLIC "${PROJECT_SOURCE_DIR}/3rdparty/webview2/build/native/${WEBVIEW2_ARCH}/WebView2Loader.dll.lib") + add_custom_command(TARGET webview POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + "${PROJECT_SOURCE_DIR}/3rdparty/webview2/build/native/${WEBVIEW2_ARCH}/WebView2Loader.dll" + $/"WebView2Loader.dll") + endif() elseif(WXGTK) if(LIBSOUP_FOUND) wx_lib_include_directories(webview PUBLIC ${LIBSOUP_INCLUDE_DIRS}) diff --git a/build/files b/build/files index 31e387eaf6..ec255b4188 100644 --- a/build/files +++ b/build/files @@ -2788,6 +2788,7 @@ HTML_CMN_HDR = WEBVIEW_MSW_SRC = src/msw/webview_ie.cpp + src/msw/webview_edgec.cpp WEBVIEW_CMN_SRC = src/common/webview.cpp src/common/webviewarchivehandler.cpp @@ -2796,6 +2797,7 @@ WEBVIEW_CMN_SRC = WEBVIEW_MSW_HDR = wx/msw/webviewhistoryitem_ie.h wx/msw/webview_ie.h + wx/msw/webview_edgec.h WEBVIEW_CMN_HDR = wx/webview.h wx/webviewarchivehandler.h diff --git a/include/wx/msw/webview_edgec.h b/include/wx/msw/webview_edgec.h new file mode 100644 index 0000000000..f81e01de38 --- /dev/null +++ b/include/wx/msw/webview_edgec.h @@ -0,0 +1,181 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: include/wx/msw/webview_edge.h +// Purpose: wxMSW Edge Chromium wxWebView backend +// Author: Markus Pingel +// Created: 2019-12-15 +// Copyright: (c) 2019 wxWidgets development team +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef wxWebViewEdgeC_H +#define wxWebViewEdgeC_H + +#include "wx/setup.h" + +#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_EDGE && defined(__WXMSW__) + +#include "wx/control.h" +#include "wx/webview.h" +#include "wx/msw/private/comptr.h" + +#include + + +class WXDLLIMPEXP_WEBVIEW wxWebViewEdge : public wxWebView +{ +public: + + wxWebViewEdge() {} + + wxWebViewEdge(wxWindow* parent, + wxWindowID id, + const wxString& url = wxWebViewDefaultURLStr, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxWebViewNameStr) + { + Create(parent, id, url, pos, size, style, name); + } + + ~wxWebViewEdge(); + + bool Create(wxWindow* parent, + wxWindowID id, + const wxString& url = wxWebViewDefaultURLStr, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxWebViewNameStr) wxOVERRIDE; + + virtual void LoadURL(const wxString& url) wxOVERRIDE; + virtual void LoadHistoryItem(wxSharedPtr item) wxOVERRIDE; + virtual wxVector > GetBackwardHistory() wxOVERRIDE; + virtual wxVector > GetForwardHistory() wxOVERRIDE; + + virtual bool CanGoForward() const wxOVERRIDE; + virtual bool CanGoBack() const wxOVERRIDE; + virtual void GoBack() wxOVERRIDE; + virtual void GoForward() wxOVERRIDE; + virtual void ClearHistory() wxOVERRIDE; + virtual void EnableHistory(bool enable = true) wxOVERRIDE; + virtual void Stop() wxOVERRIDE; + virtual void Reload(wxWebViewReloadFlags flags = wxWEBVIEW_RELOAD_DEFAULT) wxOVERRIDE; + + virtual wxString GetPageSource() const wxOVERRIDE; + virtual wxString GetPageText() const wxOVERRIDE; + + virtual bool IsBusy() const wxOVERRIDE; + virtual wxString GetCurrentURL() const wxOVERRIDE; + virtual wxString GetCurrentTitle() const wxOVERRIDE; + + virtual void SetZoomType(wxWebViewZoomType) wxOVERRIDE; + virtual wxWebViewZoomType GetZoomType() const wxOVERRIDE; + virtual bool CanSetZoomType(wxWebViewZoomType type) const wxOVERRIDE; + + virtual void Print() wxOVERRIDE; + + virtual wxWebViewZoom GetZoom() const wxOVERRIDE; + virtual void SetZoom(wxWebViewZoom zoom) wxOVERRIDE; + + //Clipboard functions + virtual bool CanCut() const wxOVERRIDE; + virtual bool CanCopy() const wxOVERRIDE; + virtual bool CanPaste() const wxOVERRIDE; + virtual void Cut() wxOVERRIDE; + virtual void Copy() wxOVERRIDE; + virtual void Paste() wxOVERRIDE; + + //Undo / redo functionality + virtual bool CanUndo() const wxOVERRIDE; + virtual bool CanRedo() const wxOVERRIDE; + virtual void Undo() wxOVERRIDE; + virtual void Redo() wxOVERRIDE; + + //Find function + virtual long Find(const wxString& text, int flags = wxWEBVIEW_FIND_DEFAULT) wxOVERRIDE; + + //Editing functions + virtual void SetEditable(bool enable = true) wxOVERRIDE; + virtual bool IsEditable() const wxOVERRIDE; + + //Selection + virtual void SelectAll() wxOVERRIDE; + virtual bool HasSelection() const wxOVERRIDE; + virtual void DeleteSelection() wxOVERRIDE; + virtual wxString GetSelectedText() const wxOVERRIDE; + virtual wxString GetSelectedSource() const wxOVERRIDE; + virtual void ClearSelection() wxOVERRIDE; + + virtual void EnableContextMenu(bool enable = true) wxOVERRIDE; + virtual bool IsContextMenuEnabled() const wxOVERRIDE; + + virtual bool RunScript(const wxString& javascript, wxString* output = NULL) wxOVERRIDE; + + virtual void RegisterHandler(wxSharedPtr handler) wxOVERRIDE; + + virtual void* GetNativeBackend() const wxOVERRIDE { return m_webView; } + + // ---- Edge-specific methods + + static bool IsAvailable(); + +protected: + virtual void DoSetPage(const wxString& html, const wxString& baseUrl) wxOVERRIDE; + +private: + bool m_initialized = false; + bool m_isBusy = false; + wxString m_pendingURL; + + wxCOMPtr m_webViewEnvironment; + wxCOMPtr m_webView; + + EventRegistrationToken m_navigationStartingToken = { }; + EventRegistrationToken m_navigationCompletedToken = { }; + EventRegistrationToken m_newWindowRequestedToken = { }; + EventRegistrationToken m_documentStateChangedToken = { }; + + void OnSize(wxSizeEvent& event); + + void UpdateBounds(); + + void InitWebViewCtrl(); + + bool RunScriptSync(const wxString& javascript, wxString* output = NULL); + + static int ms_isAvailable; + + static void Initialize(); + + static void Uninitalize(); + + friend class wxWebViewEdgeModule; + + wxVector > m_historyList; + int m_historyPosition; + bool m_historyLoadingFromList; + bool m_historyEnabled; + + wxDECLARE_DYNAMIC_CLASS(wxWebViewEdge); +}; + +class WXDLLIMPEXP_WEBVIEW wxWebViewFactoryEdge : public wxWebViewFactory +{ +public: + virtual wxWebView* Create() wxOVERRIDE { return new wxWebViewEdge; } + virtual wxWebView* Create(wxWindow* parent, + wxWindowID id, + const wxString& url = wxWebViewDefaultURLStr, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = wxWebViewNameStr) wxOVERRIDE + { + return new wxWebViewEdge(parent, id, url, pos, size, style, name); + } +}; + +#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_EDGE && defined(__WXMSW__) + +#endif // wxWebViewEdgeC_H diff --git a/include/wx/msw/webviewhistoryitem_ie.h b/include/wx/msw/webviewhistoryitem_ie.h index 6edfbb3932..e719b82a9f 100644 --- a/include/wx/msw/webviewhistoryitem_ie.h +++ b/include/wx/msw/webviewhistoryitem_ie.h @@ -11,7 +11,7 @@ #include "wx/setup.h" -#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__) +#if wxUSE_WEBVIEW && (wxUSE_WEBVIEW_IE || wxUSE_WEBVIEW_EDGE) && defined(__WXMSW__) class WXDLLIMPEXP_WEBVIEW wxWebViewHistoryItem { diff --git a/include/wx/webview.h b/include/wx/webview.h index 4ae7c8c616..6e5e4aafdd 100644 --- a/include/wx/webview.h +++ b/include/wx/webview.h @@ -101,6 +101,7 @@ extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewNameStr[]; extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewDefaultURLStr[]; extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendDefault[]; extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendIE[]; +extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendEdge[]; extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendWebKit[]; class WXDLLIMPEXP_WEBVIEW wxWebViewFactory : public wxObject diff --git a/interface/wx/webview.h b/interface/wx/webview.h index cc7cce47af..c1d5f1da11 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -279,6 +279,16 @@ public: this article for more information. This backend has full support for custom schemes and virtual file systems. + @par wxWEBVIEW_BACKEND_EDGE (MSW) + + The Edge (Chromium) backend uses Microsoft's + Edge WebView2. + It is available for Windows 7 and newer. + This backend has currently a few features missing but is still + a better choice than IE when just displaying web content. The unsupported + features are the following: virtual filesystems, custom urls, + text selection, find, source code. + @par wxWEBVIEW_WEBKIT (GTK) Under GTK the WebKit backend uses diff --git a/samples/webview/webview.cpp b/samples/webview/webview.cpp index 60160c56ce..d7c7c16667 100644 --- a/samples/webview/webview.cpp +++ b/samples/webview/webview.cpp @@ -21,7 +21,7 @@ #include "wx/wx.h" #endif -#if !wxUSE_WEBVIEW_WEBKIT && !wxUSE_WEBVIEW_WEBKIT2 && !wxUSE_WEBVIEW_IE +#if !wxUSE_WEBVIEW_WEBKIT && !wxUSE_WEBVIEW_WEBKIT2 && !wxUSE_WEBVIEW_IE && !wxUSE_WEBVIEW_EDGE #error "A wxWebView backend is required by this sample" #endif @@ -365,7 +365,12 @@ WebFrame::WebFrame(const wxString& url) : topsizer->Add(m_info, wxSizerFlags().Expand()); // Create the webview - m_browser = wxWebView::New(this, wxID_ANY, url); + wxString backend = wxWebViewBackendDefault; +#ifdef __WXMSW__ + if (wxWebView::IsBackendAvailable(wxWebViewBackendEdge)) + backend = wxWebViewBackendEdge; +#endif + m_browser = wxWebView::New(this, wxID_ANY, url, wxDefaultPosition, wxDefaultSize, backend); topsizer->Add(m_browser, wxSizerFlags().Expand().Proportion(1)); //We register the wxfs:// protocol for testing purposes diff --git a/src/common/webview.cpp b/src/common/webview.cpp index 214d82ab5d..c9be93add5 100644 --- a/src/common/webview.cpp +++ b/src/common/webview.cpp @@ -23,6 +23,7 @@ #include "wx/gtk/webview_webkit.h" #elif defined(__WXMSW__) #include "wx/msw/webview_ie.h" +#include "wx/msw/webview_edgec.h" #endif // DLL options compatibility check: @@ -32,6 +33,7 @@ WX_CHECK_BUILD_OPTIONS("wxWEBVIEW") extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewNameStr[] = "wxWebView"; extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewDefaultURLStr[] = "about:blank"; extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendIE[] = "wxWebViewIE"; +extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendEdge[] = "wxWebViewEdge"; extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendWebKit[] = "wxWebViewWebKit"; #ifdef __WXMSW__ @@ -108,6 +110,14 @@ void wxWebView::InitFactoryMap() if(m_factoryMap.find(wxWebViewBackendIE) == m_factoryMap.end()) RegisterFactory(wxWebViewBackendIE, wxSharedPtr (new wxWebViewFactoryIE)); + +#if wxUSE_WEBVIEW_EDGE + if (wxWebViewEdge::IsAvailable() && + m_factoryMap.find(wxWebViewBackendEdge) == m_factoryMap.end()) + RegisterFactory(wxWebViewBackendEdge, wxSharedPtr + (new wxWebViewFactoryEdge)); +#endif + #else if(m_factoryMap.find(wxWebViewBackendWebKit) == m_factoryMap.end()) RegisterFactory(wxWebViewBackendWebKit, wxSharedPtr diff --git a/src/msw/webview_edgec.cpp b/src/msw/webview_edgec.cpp new file mode 100644 index 0000000000..778a673c1e --- /dev/null +++ b/src/msw/webview_edgec.cpp @@ -0,0 +1,712 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: source/msw/webview_edgec.cpp +// Purpose: wxMSW Edge Chromium wxWebView backend implementation +// Author: Markus Pingel +// Created: 2019-12-15 +// Copyright: (c) 2019 wxWidgets development team +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#if defined(__BORLANDC__) +#pragma hdrstop +#endif + +#include "wx/msw/webview_edgec.h" + +#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_EDGE + +#include "wx/filename.h" +#include "wx/module.h" +#include "wx/thread.h" +#include "wx/private/jsscriptwrapper.h" + +#include + +using namespace Microsoft::WRL; + +wxIMPLEMENT_DYNAMIC_CLASS(wxWebViewEdge, wxWebView); + +#define WX_ERROR2_CASE(error, wxerror) \ + case error: \ + event.SetString(#error); \ + event.SetInt(wxerror); \ + break; + +int wxWebViewEdge::ms_isAvailable = -1; + +bool wxWebViewEdge::IsAvailable() +{ + if (ms_isAvailable == -1) + Initialize(); + + return (ms_isAvailable == 1); +} + +void wxWebViewEdge::Initialize() +{ + LPWSTR versionStr; + if (SUCCEEDED(GetWebView2BrowserVersionInfo(NULL, &versionStr))) + { + if (versionStr) + ms_isAvailable = 1; + } +} + +void wxWebViewEdge::Uninitalize() +{ + if (ms_isAvailable == 1) + { + ms_isAvailable = -1; + } +} + +wxWebViewEdge::~wxWebViewEdge() +{ + if (m_webView) + { + // TOOD: Remove additional events + m_webView->remove_NavigationCompleted(m_navigationCompletedToken); + m_webView->remove_NavigationStarting(m_navigationStartingToken); + m_webView->remove_DocumentStateChanged(m_documentStateChangedToken); + m_webView->remove_NewWindowRequested(m_newWindowRequestedToken); + } +} + +bool wxWebViewEdge::Create(wxWindow* parent, + wxWindowID id, + const wxString& url, + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name) +{ + m_initialized = false; + m_isBusy = false; + + m_historyLoadingFromList = false; + m_historyEnabled = true; + m_historyPosition = -1; + + if (!wxControl::Create(parent, id, pos, size, style, + wxDefaultValidator, name)) + { + return false; + } + + if (!IsAvailable()) + return false; + + m_pendingURL = url; + + Bind(wxEVT_SIZE, &wxWebViewEdge::OnSize, this); + + LPCWSTR subFolder = nullptr; + LPCWSTR additionalBrowserSwitches = nullptr; + + HRESULT hr = CreateWebView2EnvironmentWithDetails( + subFolder, nullptr, additionalBrowserSwitches, + Callback( + [this](HRESULT WXUNUSED(result), IWebView2Environment* environment) -> HRESULT + { + environment->QueryInterface(IID_PPV_ARGS(&m_webViewEnvironment)); + m_webViewEnvironment->CreateWebView( + GetHWND(), Callback( + [this](HRESULT WXUNUSED(result), IWebView2WebView* webview) -> HRESULT + { + webview->QueryInterface(IID_PPV_ARGS(&m_webView)); + UpdateBounds(); + InitWebViewCtrl(); + return S_OK; + }) + .Get()); + return S_OK; + }).Get()); + return SUCCEEDED(hr); +} + +void wxWebViewEdge::InitWebViewCtrl() +{ + m_initialized = true; + UpdateBounds(); + + // Connect and handle the various WebView events + + m_webView->add_NavigationStarting( + Callback( + [this](IWebView2WebView* WXUNUSED(sender), IWebView2NavigationStartingEventArgs* args) -> HRESULT + { + m_isBusy = true; + wxString evtURL; + PWSTR uri; + if (SUCCEEDED(args->get_Uri(&uri))) + evtURL = wxString(uri); + wxWebViewEvent event(wxEVT_WEBVIEW_NAVIGATING, GetId(), evtURL, wxString()); + event.SetEventObject(this); + HandleWindowEvent(event); + + if (!event.IsAllowed()) + args->put_Cancel(true); + + return S_OK; + }) + .Get(), &m_navigationStartingToken); + + m_webView->add_DocumentStateChanged( + Callback( + [this](IWebView2WebView* sender, IWebView2DocumentStateChangedEventArgs* WXUNUSED(args)) -> HRESULT + { + PWSTR uri; + sender->get_Source(&uri); + wxString evtURL(uri); + if (evtURL.Cmp(L"about:blank") == 0) + { + evtURL = L""; + } + + // AddPendingEvent(wxWebViewEvent(wxEVT_WEBVIEW_NAVIGATED, GetId(), uri, wxString())); + // SetWindowText(m_toolbar->addressBarWindow, uri.get()); + return S_OK; + }) + .Get(), + &m_documentStateChangedToken); + + m_webView->add_NavigationCompleted( + Callback( + [this](IWebView2WebView* sender, IWebView2NavigationCompletedEventArgs* args) -> HRESULT + { + BOOL isSuccess; + if (FAILED(args->get_IsSuccess(&isSuccess))) + isSuccess = false; + m_isBusy = false; + PWSTR _uri; + sender->get_Source(&_uri); + wxString uri(_uri); + + if (!isSuccess) + { + WEBVIEW2_WEB_ERROR_STATUS status; + + wxWebViewEvent event(wxEVT_WEBVIEW_ERROR, GetId(), uri, wxString()); + event.SetEventObject(this); + + if (SUCCEEDED(args->get_WebErrorStatus(&status))) + { + switch (status) + { + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNKNOWN, wxWEBVIEW_NAV_ERR_OTHER) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_TIMEOUT, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED, wxWEBVIEW_NAV_ERR_USER_CANCELLED) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED, wxWEBVIEW_NAV_ERR_OTHER) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR, wxWEBVIEW_NAV_ERR_OTHER) + } + } + HandleWindowEvent(event); + } + else + { + AddPendingEvent(wxWebViewEvent(wxEVT_WEBVIEW_NAVIGATED, GetId(), uri, wxString())); + if (m_historyEnabled && !m_historyLoadingFromList && + (uri == GetCurrentURL()) || + (GetCurrentURL().substr(0, 4) == "file" && + wxFileName::URLToFileName(GetCurrentURL()).GetFullPath() == uri)) + { + // If we are not at the end of the list, then erase everything + // between us and the end before adding the new page + if (m_historyPosition != static_cast(m_historyList.size()) - 1) + { + m_historyList.erase(m_historyList.begin() + m_historyPosition + 1, + m_historyList.end()); + } + wxSharedPtr item(new wxWebViewHistoryItem(uri, GetCurrentTitle())); + m_historyList.push_back(item); + m_historyPosition++; + } + //Reset as we are done now + m_historyLoadingFromList = false; + } + return S_OK; + }) + .Get(), &m_navigationCompletedToken); + m_webView->add_NewWindowRequested( + Callback( + [this](IWebView2WebView* WXUNUSED(sender), IWebView2NewWindowRequestedEventArgs* args) -> HRESULT + { + PWSTR uri; + args->get_Uri(&uri); + wxString evtURL(uri); + AddPendingEvent(wxWebViewEvent(wxEVT_WEBVIEW_NEWWINDOW, GetId(), evtURL, wxString())); + args->put_Handled(true); + return S_OK; + }).Get(), &m_newWindowRequestedToken); + LoadURL(m_pendingURL); +} + +void wxWebViewEdge::OnSize(wxSizeEvent& event) +{ + UpdateBounds(); + event.Skip(); +} + +void wxWebViewEdge::UpdateBounds() +{ + RECT r; + wxCopyRectToRECT(GetClientRect(), r); + if (m_webView) + m_webView->put_Bounds(r); +} + +void wxWebViewEdge::LoadURL(const wxString& url) +{ + if (!m_webView) + { + m_pendingURL = url; + return; + } + if (FAILED(m_webView->Navigate(url.wc_str()))) + wxLogError("Could not navigate to URL"); +} + +void wxWebViewEdge::LoadHistoryItem(wxSharedPtr item) +{ + int pos = -1; + for (unsigned int i = 0; i < m_historyList.size(); i++) + { + //We compare the actual pointers to find the correct item + if (m_historyList[i].get() == item.get()) + pos = i; + } + // TODO: wxASSERT_MSG(pos != static_cast(m_impl->m_historyList.size()), "invalid history item"); + m_historyLoadingFromList = true; + LoadURL(item->GetUrl()); + m_historyPosition = pos; +} + +wxVector > wxWebViewEdge::GetBackwardHistory() +{ + wxVector > backhist; + //As we don't have std::copy or an iterator constructor in the wxwidgets + //native vector we construct it by hand + for (int i = 0; i < m_historyPosition; i++) + { + backhist.push_back(m_historyList[i]); + } + return backhist; +} + +wxVector > wxWebViewEdge::GetForwardHistory() +{ + wxVector > forwardhist; + //As we don't have std::copy or an iterator constructor in the wxwidgets + //native vector we construct it by hand + for (int i = m_historyPosition + 1; i < static_cast(m_historyList.size()); i++) + { + forwardhist.push_back(m_historyList[i]); + } + return forwardhist; +} + +bool wxWebViewEdge::CanGoForward() const +{ + if (m_historyEnabled) + return m_historyPosition != static_cast(m_historyList.size()) - 1; + else + return false; + + /* + BOOL result = false; + if (m_webView && SUCCEEDED(m_webView->get_CanGoForward(&result))) + return result; + else + return false; + */ +} + +bool wxWebViewEdge::CanGoBack() const +{ + if (m_historyEnabled) + return m_historyPosition > 0; + else + return false; + /* + BOOL result = false; + + if (m_webView && SUCCEEDED(m_webView->get_CanGoBack(&result))) + return result; + else + return false; + */ +} + +void wxWebViewEdge::GoBack() +{ + LoadHistoryItem(m_historyList[m_historyPosition - 1]); + /* if (m_webView) + m_webView->GoBack(); */ +} + +void wxWebViewEdge::GoForward() +{ + LoadHistoryItem(m_historyList[m_historyPosition + 1]); + /* if (m_webView) + m_webView->GoForward(); */ +} + +void wxWebViewEdge::ClearHistory() +{ + m_historyList.clear(); + m_historyPosition = -1; +} + +void wxWebViewEdge::EnableHistory(bool enable) +{ + m_historyEnabled = enable; + m_historyList.clear(); + m_historyPosition = -1; +} + +void wxWebViewEdge::Stop() +{ + if (m_webView) + m_webView->Stop(); +} + +void wxWebViewEdge::Reload(wxWebViewReloadFlags WXUNUSED(flags)) +{ + if (m_webView) + m_webView->Reload(); +} + +wxString wxWebViewEdge::GetPageSource() const +{ + return wxString(); +} + +wxString wxWebViewEdge::GetPageText() const +{ + return wxString(); +} + +bool wxWebViewEdge::IsBusy() const +{ + return m_isBusy; +} + +wxString wxWebViewEdge::GetCurrentURL() const +{ + LPWSTR uri; + if (m_webView && SUCCEEDED(m_webView->get_Source(&uri))) + return wxString(uri); + else + return wxString(); +} + +wxString wxWebViewEdge::GetCurrentTitle() const +{ + PWSTR _title; + if (m_webView && SUCCEEDED(m_webView->get_DocumentTitle(&_title))) + return wxString(_title); + else + return wxString(); +} + +void wxWebViewEdge::SetZoomType(wxWebViewZoomType) +{ + +} + +wxWebViewZoomType wxWebViewEdge::GetZoomType() const +{ + return wxWEBVIEW_ZOOM_TYPE_LAYOUT; +} + +bool wxWebViewEdge::CanSetZoomType(wxWebViewZoomType type) const +{ + return (type == wxWEBVIEW_ZOOM_TYPE_LAYOUT); +} + +void wxWebViewEdge::Print() +{ + +} + +wxWebViewZoom wxWebViewEdge::GetZoom() const +{ + double old_zoom_factor = 0.0f; + m_webView->get_ZoomFactor(&old_zoom_factor); + if (old_zoom_factor > 1.7f) + return wxWEBVIEW_ZOOM_LARGEST; + if (old_zoom_factor > 1.3f) + return wxWEBVIEW_ZOOM_LARGE; + if (old_zoom_factor > 0.8f) + return wxWEBVIEW_ZOOM_MEDIUM; + if (old_zoom_factor > 0.6f) + return wxWEBVIEW_ZOOM_SMALL; + return wxWEBVIEW_ZOOM_TINY; +} + +void wxWebViewEdge::SetZoom(wxWebViewZoom zoom) +{ + double old_zoom_factor = 0.0f; + m_webView->get_ZoomFactor(&old_zoom_factor); + double zoom_factor = 1.0f; + switch (zoom) + { + case wxWEBVIEW_ZOOM_LARGEST: + zoom_factor = 2.0f; + break; + case wxWEBVIEW_ZOOM_LARGE: + zoom_factor = 1.5f; + break; + case wxWEBVIEW_ZOOM_MEDIUM: + zoom_factor = 1.0f; + break; + case wxWEBVIEW_ZOOM_SMALL: + zoom_factor = 0.75f; + break; + case wxWEBVIEW_ZOOM_TINY: + zoom_factor = 0.5f; + break; + default: + break; + } + m_webView->put_ZoomFactor(zoom_factor); +} + +bool wxWebViewEdge::CanCut() const +{ + return false; +} + +bool wxWebViewEdge::CanCopy() const +{ + return false; +} + +bool wxWebViewEdge::CanPaste() const +{ + return false; +} + +void wxWebViewEdge::Cut() +{ + +} + +void wxWebViewEdge::Copy() +{ + +} + +void wxWebViewEdge::Paste() +{ + +} + +bool wxWebViewEdge::CanUndo() const +{ + return false; +} + +bool wxWebViewEdge::CanRedo() const +{ + return false; +} + +void wxWebViewEdge::Undo() +{ + +} + +void wxWebViewEdge::Redo() +{ + +} + +long wxWebViewEdge::Find(const wxString& WXUNUSED(text), int WXUNUSED(flags)) +{ + return -1; +} + +//Editing functions +void wxWebViewEdge::SetEditable(bool WXUNUSED(enable)) +{ + +} + +bool wxWebViewEdge::IsEditable() const +{ + return false; +} + +void wxWebViewEdge::SelectAll() +{ + +} + +bool wxWebViewEdge::HasSelection() const +{ + return false; +} + +void wxWebViewEdge::DeleteSelection() +{ + +} + +wxString wxWebViewEdge::GetSelectedText() const +{ + return wxString(); +} + +wxString wxWebViewEdge::GetSelectedSource() const +{ + return wxString(); +} + +void wxWebViewEdge::ClearSelection() +{ + +} + +void wxWebViewEdge::EnableContextMenu(bool enable) +{ + wxCOMPtr settings; + if (SUCCEEDED(m_webView->get_Settings(&settings))) + { + wxCOMPtr settings2; + if (SUCCEEDED(settings->QueryInterface(IID_PPV_ARGS(&settings2)))) + { + settings2->put_AreDefaultContextMenusEnabled(enable); + } + } +} + +bool wxWebViewEdge::IsContextMenuEnabled() const +{ + wxCOMPtr settings; + if (SUCCEEDED(m_webView->get_Settings(&settings))) + { + wxCOMPtr settings2; + if (SUCCEEDED(settings->QueryInterface(IID_PPV_ARGS(&settings2)))) + { + BOOL menusEnabled = TRUE; + settings2->get_AreDefaultContextMenusEnabled(&menusEnabled); + + if (!menusEnabled) + return false; + } + } + + return true; +} + +bool wxWebViewEdge::RunScriptSync(const wxString& javascript, wxString* output) +{ + bool scriptExecuted = false; + + HRESULT hr = m_webView->ExecuteScript(javascript.wc_str(), Callback( + [&scriptExecuted, output](HRESULT error, PCWSTR result) -> HRESULT + { + if (error == S_OK) + { + if (output) + output->assign(result); + } + else + wxLogError(_("RunScript failed: %.8x"), error); + + scriptExecuted = true; + + return S_OK; + }).Get()); + + + while (!scriptExecuted) + wxYield(); + + return SUCCEEDED(hr); +} + +bool wxWebViewEdge::RunScript(const wxString& javascript, wxString* output) +{ + wxJSScriptWrapper wrapJS(javascript, &m_runScriptCount); + + // This string is also used as an error indicator: it's cleared if there is + // no error or used in the warning message below if there is one. + wxString result; + if (RunScriptSync(wrapJS.GetWrappedCode(), &result) + && result == wxS("true")) + { + if (RunScriptSync(wrapJS.GetOutputCode(), &result)) + { + if (output) + *output = result; + result.clear(); + } + + RunScriptSync(wrapJS.GetCleanUpCode()); + } + + if (!result.empty()) + { + wxLogWarning(_("Error running JavaScript: %s"), result); + return false; + } + + return true; +} + +void wxWebViewEdge::RegisterHandler(wxSharedPtr handler) +{ + +} + +void wxWebViewEdge::DoSetPage(const wxString& html, const wxString& WXUNUSED(baseUrl)) +{ + if (m_webView) + m_webView->NavigateToString(html.wc_str()); +} + +// ---------------------------------------------------------------------------- +// Module ensuring all global/singleton objects are destroyed on shutdown. +// ---------------------------------------------------------------------------- + +class wxWebViewEdgeModule : public wxModule +{ +public: + wxWebViewEdgeModule() + { + } + + virtual bool OnInit() wxOVERRIDE + { + return true; + } + + virtual void OnExit() wxOVERRIDE + { + wxWebViewEdge::Uninitalize(); + } + +private: + wxDECLARE_DYNAMIC_CLASS(wxWebViewEdgeModule); +}; + +wxIMPLEMENT_DYNAMIC_CLASS(wxWebViewEdgeModule, wxModule); + +#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_EDGE From 6750d30102250b913d59f04c3fbb818bd40c4ebf Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 9 Jan 2020 23:04:08 +0100 Subject: [PATCH 04/48] Load WebView2Loader.dll dynamically --- build/cmake/lib/webview/CMakeLists.txt | 1 - include/wx/msw/webview_edgec.h | 4 ++- src/msw/webview_edgec.cpp | 50 +++++++++++++++++++++++--- 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/build/cmake/lib/webview/CMakeLists.txt b/build/cmake/lib/webview/CMakeLists.txt index ea8b3cbe89..261c6c61ee 100644 --- a/build/cmake/lib/webview/CMakeLists.txt +++ b/build/cmake/lib/webview/CMakeLists.txt @@ -44,7 +44,6 @@ elseif(WXMSW) set(WEBVIEW2_ARCH x64) endif() - wx_lib_link_libraries(webview PUBLIC "${PROJECT_SOURCE_DIR}/3rdparty/webview2/build/native/${WEBVIEW2_ARCH}/WebView2Loader.dll.lib") add_custom_command(TARGET webview POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/3rdparty/webview2/build/native/${WEBVIEW2_ARCH}/WebView2Loader.dll" diff --git a/include/wx/msw/webview_edgec.h b/include/wx/msw/webview_edgec.h index f81e01de38..abb7ad6192 100644 --- a/include/wx/msw/webview_edgec.h +++ b/include/wx/msw/webview_edgec.h @@ -15,6 +15,7 @@ #if wxUSE_WEBVIEW && wxUSE_WEBVIEW_EDGE && defined(__WXMSW__) #include "wx/control.h" +#include "wx/dynlib.h" #include "wx/webview.h" #include "wx/msw/private/comptr.h" @@ -145,8 +146,9 @@ private: bool RunScriptSync(const wxString& javascript, wxString* output = NULL); static int ms_isAvailable; + static wxDynamicLibrary ms_loaderDll; - static void Initialize(); + static bool Initialize(); static void Uninitalize(); diff --git a/src/msw/webview_edgec.cpp b/src/msw/webview_edgec.cpp index 778a673c1e..13b57a7d0a 100644 --- a/src/msw/webview_edgec.cpp +++ b/src/msw/webview_edgec.cpp @@ -36,29 +36,69 @@ wxIMPLEMENT_DYNAMIC_CLASS(wxWebViewEdge, wxWebView); break; int wxWebViewEdge::ms_isAvailable = -1; +// WebView2Loader typedefs +typedef HRESULT (__stdcall *PFNWXCreateWebView2EnvironmentWithDetails)( + PCWSTR browserExecutableFolder, + PCWSTR userDataFolder, + PCWSTR additionalBrowserArguments, + IWebView2CreateWebView2EnvironmentCompletedHandler* environment_created_handler); +typedef HRESULT(__stdcall *PFNWXGetWebView2BrowserVersionInfo)( + PCWSTR browserExecutableFolder, + LPWSTR* versionInfo); + +PFNWXCreateWebView2EnvironmentWithDetails wxCreateWebView2EnvironmentWithDetails = NULL; +PFNWXGetWebView2BrowserVersionInfo wxGetWebView2BrowserVersionInfo = NULL; + +int wxWebViewEdgeChromium::ms_isAvailable = -1; +wxDynamicLibrary wxWebViewEdgeChromium::ms_loaderDll; bool wxWebViewEdge::IsAvailable() { if (ms_isAvailable == -1) - Initialize(); + { + if (!Initialize()) + ms_isAvailable = 0; + else + ms_isAvailable = 1; + } return (ms_isAvailable == 1); } -void wxWebViewEdge::Initialize() +bool wxWebViewEdge::Initialize() { +#define RESOLVE_LOADER_FUNCTION(type, funcname) \ + wx##funcname = (type)ms_loaderDll.GetSymbol(wxT(#funcname)); \ + if ( !wx##funcname ) \ + return false + + // WebView2 is only available for Windows 7 or newer + if (!wxCheckOsVersion(6, 1)) + return false; + + if (!ms_loaderDll.Load("WebView2Loader.dll", wxDL_DEFAULT | wxDL_QUIET)) + return false; + + // Try to load functions from loader DLL + RESOLVE_LOADER_FUNCTION(PFNWXCreateWebView2EnvironmentWithDetails, CreateWebView2EnvironmentWithDetails); + RESOLVE_LOADER_FUNCTION(PFNWXGetWebView2BrowserVersionInfo, GetWebView2BrowserVersionInfo); + + // Check if a Edge browser can be found by the loader DLL LPWSTR versionStr; - if (SUCCEEDED(GetWebView2BrowserVersionInfo(NULL, &versionStr))) + if (SUCCEEDED(wxGetWebView2BrowserVersionInfo(NULL, &versionStr))) { if (versionStr) - ms_isAvailable = 1; + return true; } + + return false; } void wxWebViewEdge::Uninitalize() { if (ms_isAvailable == 1) { + ms_loaderDll.Unload(); ms_isAvailable = -1; } } @@ -106,7 +146,7 @@ bool wxWebViewEdge::Create(wxWindow* parent, LPCWSTR subFolder = nullptr; LPCWSTR additionalBrowserSwitches = nullptr; - HRESULT hr = CreateWebView2EnvironmentWithDetails( + HRESULT hr = wxCreateWebView2EnvironmentWithDetails( subFolder, nullptr, additionalBrowserSwitches, Callback( [this](HRESULT WXUNUSED(result), IWebView2Environment* environment) -> HRESULT From f2196abca31af19c68891679de35d8e1343a78e9 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Fri, 10 Jan 2020 11:02:10 +0100 Subject: [PATCH 05/48] Add wxWebViewEdgeChromium to other build systems --- Makefile.in | 59 +++++-- build/bakefiles/files.bkl | 6 +- build/bakefiles/multilib.bkl | 8 +- build/cmake/files.cmake | 1 + build/msw/makefile.bcc | 31 +++- build/msw/makefile.gcc | 242 ++++++++------------------- build/msw/makefile.vc | 35 +++- build/msw/wx_vc7_core.vcproj | 3 + build/msw/wx_vc7_webview.vcproj | 30 ++-- build/msw/wx_vc8_core.vcproj | 4 + build/msw/wx_vc8_webview.vcproj | 56 ++++--- build/msw/wx_vc9_core.vcproj | 4 + build/msw/wx_vc9_webview.vcproj | 56 ++++--- build/msw/wx_webview.vcxproj | 19 ++- build/msw/wx_webview.vcxproj.filters | 7 +- samples/ownerdrw/makefile.gcc | 5 +- samples/render/makefile.gcc | 5 +- samples/richtext/makefile.gcc | 5 +- samples/xti/makefile.gcc | 5 +- tests/makefile.gcc | 15 +- utils/wxrc/makefile.gcc | 5 +- 21 files changed, 289 insertions(+), 312 deletions(-) diff --git a/Makefile.in b/Makefile.in index f47ff00145..f0eba0756d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1650,33 +1650,34 @@ WEBVIEWDLL_CXXFLAGS = $(__webviewdll_PCH_INC) -D__WX$(TOOLKIT)__ \ $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) -DWXBUILDING $(__INC_TIFF_BUILD_p) \ $(__INC_TIFF_p) $(__INC_JPEG_p) $(__INC_PNG_p) $(__INC_ZLIB_p) \ $(__INC_REGEX_p) $(__INC_EXPAT_p) -DWXUSINGDLL -DWXMAKINGDLL_WEBVIEW \ - $(__webviewdll_ext_dir_define_p) $(PIC_FLAG) $(CXXWARNINGS) $(CPPFLAGS) \ - $(CXXFLAGS) + $(__webviewdll_ext_dir_define_p) $(__webview_additional_include_p) \ + $(PIC_FLAG) $(CXXWARNINGS) $(CPPFLAGS) $(CXXFLAGS) WEBVIEWDLL_OBJCXXFLAGS = $(__webviewdll_PCH_INC) -D__WX$(TOOLKIT)__ \ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \ $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) -DWXBUILDING $(__INC_TIFF_BUILD_p) \ $(__INC_TIFF_p) $(__INC_JPEG_p) $(__INC_PNG_p) $(__INC_ZLIB_p) \ $(__INC_REGEX_p) $(__INC_EXPAT_p) -DWXUSINGDLL -DWXMAKINGDLL_WEBVIEW \ - $(__webviewdll_ext_dir_define_p) $(PIC_FLAG) $(CPPFLAGS) $(OBJCXXFLAGS) + $(__webviewdll_ext_dir_define_p) $(__webview_additional_include_p) \ + $(PIC_FLAG) $(CPPFLAGS) $(OBJCXXFLAGS) WEBVIEWDLL_OBJECTS = \ - $(__webviewdll___win32rc) \ $(__WEBVIEW_SRC_PLATFORM_OBJECTS_2) \ webviewdll_webview.o \ webviewdll_webviewarchivehandler.o \ - webviewdll_webviewfshandler.o + webviewdll_webviewfshandler.o \ + $(__webviewdll___win32rc) WEBVIEWDLL_ODEP = $(_____pch_wxprec_webviewdll_wx_wxprec_h_gch___depname) WEBVIEWLIB_CXXFLAGS = $(__webviewlib_PCH_INC) -D__WX$(TOOLKIT)__ \ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \ $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) -DWXBUILDING $(__INC_TIFF_BUILD_p) \ $(__INC_TIFF_p) $(__INC_JPEG_p) $(__INC_PNG_p) $(__INC_ZLIB_p) \ $(__INC_REGEX_p) $(__INC_EXPAT_p) $(__webviewdll_ext_dir_define_p) \ - $(CXXWARNINGS) $(CPPFLAGS) $(CXXFLAGS) + $(__webview_additional_include_p) $(CXXWARNINGS) $(CPPFLAGS) $(CXXFLAGS) WEBVIEWLIB_OBJCXXFLAGS = $(__webviewlib_PCH_INC) -D__WX$(TOOLKIT)__ \ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \ $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) -DWXBUILDING $(__INC_TIFF_BUILD_p) \ $(__INC_TIFF_p) $(__INC_JPEG_p) $(__INC_PNG_p) $(__INC_ZLIB_p) \ $(__INC_REGEX_p) $(__INC_EXPAT_p) $(__webviewdll_ext_dir_define_p) \ - $(CPPFLAGS) $(OBJCXXFLAGS) + $(__webview_additional_include_p) $(CPPFLAGS) $(OBJCXXFLAGS) WEBVIEWLIB_OBJECTS = \ $(__WEBVIEW_SRC_PLATFORM_OBJECTS_3) \ webviewlib_webview.o \ @@ -2260,8 +2261,11 @@ COND_PLATFORM_WIN32_1_GTK_PLATFORM_HDR = \ @COND_TOOLKIT_GTK@WEBVIEW_HDR_PLATFORM = \ @COND_TOOLKIT_GTK@ wx/gtk/webviewhistoryitem_webkit.h \ @COND_TOOLKIT_GTK@ wx/gtk/webview_webkit.h -@COND_TOOLKIT_MSW@WEBVIEW_HDR_PLATFORM = \ -@COND_TOOLKIT_MSW@ wx/msw/webviewhistoryitem_ie.h wx/msw/webview_ie.h +COND_TOOLKIT_MSW_WEBVIEW_HDR_PLATFORM = \ + wx/msw/webviewhistoryitem_ie.h \ + wx/msw/webview_ie.h \ + wx/msw/webview_edgec.h +@COND_TOOLKIT_MSW@WEBVIEW_HDR_PLATFORM = $(COND_TOOLKIT_MSW_WEBVIEW_HDR_PLATFORM) @COND_TOOLKIT_COCOA@OPENGL_HDR_PLATFORM = wx/cocoa/glcanvas.h @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@OPENGL_HDR_PLATFORM \ @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ = wx/gtk1/glcanvas.h wx/unix/glx11.h @@ -6132,7 +6136,8 @@ COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_1 = \ @COND_PLATFORM_MACOSX_1@ = monodll_osx_webview_webkit.o @COND_TOOLKIT_GTK@__WEBVIEW_SRC_PLATFORM_OBJECTS = \ @COND_TOOLKIT_GTK@ monodll_gtk_webview_webkit.o monodll_webview_webkit2.o -@COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS = monodll_webview_ie.o +@COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS = \ +@COND_TOOLKIT_MSW@ monodll_webview_ie.o monodll_webview_edgec.o @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__AUI_GTK_SRC_OBJECTS \ @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ = monodll_tabartgtk.o @COND_TOOLKIT_MSW@__AUI_PLATFORM_SRC_OBJECTS = \ @@ -8121,7 +8126,8 @@ COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_3 = \ @COND_PLATFORM_MACOSX_1@ = monolib_osx_webview_webkit.o @COND_TOOLKIT_GTK@__WEBVIEW_SRC_PLATFORM_OBJECTS_1 = \ @COND_TOOLKIT_GTK@ monolib_gtk_webview_webkit.o monolib_webview_webkit2.o -@COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS_1 = monolib_webview_ie.o +@COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS_1 = \ +@COND_TOOLKIT_MSW@ monolib_webview_ie.o monolib_webview_edgec.o @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__AUI_GTK_SRC_OBJECTS_1 \ @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ = monolib_tabartgtk.o @COND_TOOLKIT_MSW@__AUI_PLATFORM_SRC_OBJECTS_1 = \ @@ -12324,14 +12330,17 @@ COND_USE_SOTWOSYMLINKS_1___webviewdll___so_symlinks_uninst_cmd = rm -f \ COND_USE_SOVERSOLARIS_1___webviewdll___so_symlinks_uninst_cmd = rm -f \ $(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview-$(WX_RELEASE)$(HOST_SUFFIX).$(DLLIMP_SUFFIX) @COND_USE_SOVERSOLARIS_1@__webviewdll___so_symlinks_uninst_cmd = $(COND_USE_SOVERSOLARIS_1___webviewdll___so_symlinks_uninst_cmd) -@COND_PLATFORM_WIN32_1@__webviewdll___win32rc = webviewdll_version_rc.o @COND_PLATFORM_MACOSX_1@__WEBVIEW_SRC_PLATFORM_OBJECTS_2 \ @COND_PLATFORM_MACOSX_1@ = webviewdll_osx_webview_webkit.o @COND_TOOLKIT_GTK@__WEBVIEW_SRC_PLATFORM_OBJECTS_2 = \ @COND_TOOLKIT_GTK@ webviewdll_gtk_webview_webkit.o \ @COND_TOOLKIT_GTK@ webviewdll_webview_webkit2.o @COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS_2 = \ -@COND_TOOLKIT_MSW@ webviewdll_webview_ie.o +@COND_TOOLKIT_MSW@ webviewdll_webview_ie.o webviewdll_webview_edgec.o +@COND_TOOLKIT_MSW@__webview_additional_include_p_1 = \ +@COND_TOOLKIT_MSW@ --include-dir \ +@COND_TOOLKIT_MSW@ $(top_srcdir)/3rdparty/webview2/build/native/include +@COND_PLATFORM_WIN32_1@__webviewdll___win32rc = webviewdll_version_rc.o COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_WEBVIEW_1___webviewlib___depname = \ $(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT) @COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_WEBVIEW_1@__webviewlib___depname = $(COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_WEBVIEW_1___webviewlib___depname) @@ -12351,7 +12360,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_WEBVIEW_1___webviewlib___depname = \ @COND_TOOLKIT_GTK@ webviewlib_gtk_webview_webkit.o \ @COND_TOOLKIT_GTK@ webviewlib_webview_webkit2.o @COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS_3 = \ -@COND_TOOLKIT_MSW@ webviewlib_webview_ie.o +@COND_TOOLKIT_MSW@ webviewlib_webview_ie.o webviewlib_webview_edgec.o @COND_SHARED_1@____wxwebview_namedll_DEP = $(__webviewdll___depname) @COND_SHARED_0@____wxwebview_namelib_DEP = $(__webviewlib___depname) COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_QA_1___qadll___depname = \ @@ -13729,6 +13738,8 @@ COND_PLATFORM_MACOSX_1___OSX_LOWLEVEL_SRC_OBJECTS_1_4 = \ @COND_USE_WEBVIEW_WEBKIT2_1@__webviewdll_ext_dir_define_p \ @COND_USE_WEBVIEW_WEBKIT2_1@ = \ @COND_USE_WEBVIEW_WEBKIT2_1@ -DWX_WEB_EXTENSIONS_DIRECTORY=\"$(PLUGINS_INST_DIR)/web-extensions\" +@COND_TOOLKIT_MSW@__webview_additional_include_p = \ +@COND_TOOLKIT_MSW@ -I$(top_srcdir)/3rdparty/webview2/build/native/include @COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_HTML_1@__htmldll_library_link_DEP \ @COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_HTML_1@ = $(__htmldll___depname) @COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_HTML_1@__htmldll_library_link_LIBR \ @@ -14302,7 +14313,7 @@ distclean: clean @COND_MONOLITHIC_0_USE_HTML_1@wxhtml: $(____wxhtml_namedll_DEP) $(____wxhtml_namelib_DEP) -@COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_1@$(LIBDIRNAME)/$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(dll___targetsuf3): $(WEBVIEWDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla___depname) $(__wxexpat___depname) $(__wxzlib___depname) $(__wxregex___depname) $(__webviewdll___win32rc) $(__coredll___depname) $(__basedll___depname) +@COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_1@$(LIBDIRNAME)/$(DLLPREFIX)$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(dll___targetsuf3): $(WEBVIEWDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla___depname) $(__wxexpat___depname) $(__wxzlib___depname) $(__wxregex___depname) $(__coredll___depname) $(__basedll___depname) $(__webviewdll___win32rc) @COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_1@ $(SHARED_LD_CXX) $@ $(WEBVIEWDLL_OBJECTS) -L$(LIBDIRNAME) -L$(LIBDIRNAME) -L$(LIBDIRNAME) $(__webviewdll___macinstnamecmd) $(__webviewdll___importlib) $(__webviewdll___soname_flags) $(WXMACVERSION_CMD) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX) -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) $(EXTRALIBS_WEBVIEW) $(LIBS) @COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_1@ $(DYLIB_RPATH_POSTLINK) @COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_WEBVIEW_1@ @@ -17108,6 +17119,9 @@ monodll_htmllbox.o: $(srcdir)/src/generic/htmllbox.cpp $(MONODLL_ODEP) monodll_webview_ie.o: $(srcdir)/src/msw/webview_ie.cpp $(MONODLL_ODEP) $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/webview_ie.cpp +monodll_webview_edgec.o: $(srcdir)/src/msw/webview_edgec.cpp $(MONODLL_ODEP) + $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/webview_edgec.cpp + monodll_gtk_webview_webkit.o: $(srcdir)/src/gtk/webview_webkit.cpp $(MONODLL_ODEP) $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/webview_webkit.cpp @@ -22385,6 +22399,9 @@ monolib_htmllbox.o: $(srcdir)/src/generic/htmllbox.cpp $(MONOLIB_ODEP) monolib_webview_ie.o: $(srcdir)/src/msw/webview_ie.cpp $(MONOLIB_ODEP) $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/webview_ie.cpp +monolib_webview_edgec.o: $(srcdir)/src/msw/webview_edgec.cpp $(MONOLIB_ODEP) + $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/webview_edgec.cpp + monolib_gtk_webview_webkit.o: $(srcdir)/src/gtk/webview_webkit.cpp $(MONOLIB_ODEP) $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/webview_webkit.cpp @@ -35963,12 +35980,12 @@ htmllib_htmllbox.o: $(srcdir)/src/generic/htmllbox.cpp $(HTMLLIB_ODEP) @COND_PLATFORM_MACOSX_1@htmllib_chm.o: $(srcdir)/src/html/chm.cpp $(HTMLLIB_ODEP) @COND_PLATFORM_MACOSX_1@ $(CXXC) -c -o $@ $(HTMLLIB_CXXFLAGS) $(srcdir)/src/html/chm.cpp -webviewdll_version_rc.o: $(srcdir)/src/msw/version.rc $(WEBVIEWDLL_ODEP) - $(WINDRES) -i$< -o$@ $(__WIN32_DPI_MANIFEST_p) --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_67) $(__DEBUG_DEFINE_p_66) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) --define WXBUILDING --define WXDLLNAME=$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG) $(__RCDEFDIR_p) --include-dir $(top_srcdir)/include $(__INC_TIFF_BUILD_p_66) $(__INC_TIFF_p_66) $(__INC_JPEG_p_66) $(__INC_PNG_p_65) $(__INC_ZLIB_p_67) $(__INC_REGEX_p_65) $(__INC_EXPAT_p_65) --define WXUSINGDLL --define WXMAKINGDLL_WEBVIEW $(__webviewdll_ext_dir_define_p_0) - webviewdll_webview_ie.o: $(srcdir)/src/msw/webview_ie.cpp $(WEBVIEWDLL_ODEP) $(CXXC) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(srcdir)/src/msw/webview_ie.cpp +webviewdll_webview_edgec.o: $(srcdir)/src/msw/webview_edgec.cpp $(WEBVIEWDLL_ODEP) + $(CXXC) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(srcdir)/src/msw/webview_edgec.cpp + webviewdll_gtk_webview_webkit.o: $(srcdir)/src/gtk/webview_webkit.cpp $(WEBVIEWDLL_ODEP) $(CXXC) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(srcdir)/src/gtk/webview_webkit.cpp @@ -35987,9 +36004,15 @@ webviewdll_webviewarchivehandler.o: $(srcdir)/src/common/webviewarchivehandler.c webviewdll_webviewfshandler.o: $(srcdir)/src/common/webviewfshandler.cpp $(WEBVIEWDLL_ODEP) $(CXXC) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(srcdir)/src/common/webviewfshandler.cpp +webviewdll_version_rc.o: $(srcdir)/src/msw/version.rc $(WEBVIEWDLL_ODEP) + $(WINDRES) -i$< -o$@ $(__WIN32_DPI_MANIFEST_p) --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_67) $(__DEBUG_DEFINE_p_66) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) --define WXBUILDING --define WXDLLNAME=$(WXDLLNAMEPREFIXGUI)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG) $(__RCDEFDIR_p) --include-dir $(top_srcdir)/include $(__INC_TIFF_BUILD_p_66) $(__INC_TIFF_p_66) $(__INC_JPEG_p_66) $(__INC_PNG_p_65) $(__INC_ZLIB_p_67) $(__INC_REGEX_p_65) $(__INC_EXPAT_p_65) --define WXUSINGDLL --define WXMAKINGDLL_WEBVIEW $(__webviewdll_ext_dir_define_p_0) $(__webview_additional_include_p_1) + webviewlib_webview_ie.o: $(srcdir)/src/msw/webview_ie.cpp $(WEBVIEWLIB_ODEP) $(CXXC) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(srcdir)/src/msw/webview_ie.cpp +webviewlib_webview_edgec.o: $(srcdir)/src/msw/webview_edgec.cpp $(WEBVIEWLIB_ODEP) + $(CXXC) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(srcdir)/src/msw/webview_edgec.cpp + webviewlib_gtk_webview_webkit.o: $(srcdir)/src/gtk/webview_webkit.cpp $(WEBVIEWLIB_ODEP) $(CXXC) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(srcdir)/src/gtk/webview_webkit.cpp diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl index 88ad21a562..d39a372fc4 100644 --- a/build/bakefiles/files.bkl +++ b/build/bakefiles/files.bkl @@ -3015,7 +3015,10 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! - src/msw/webview_ie.cpp + + src/msw/webview_ie.cpp + src/msw/webview_edgec.cpp + src/gtk/webview_webkit.cpp src/gtk/webview_webkit2.cpp @@ -3036,6 +3039,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! wx/msw/webviewhistoryitem_ie.h wx/msw/webview_ie.h + wx/msw/webview_edgec.h wx/gtk/webviewhistoryitem_webkit.h diff --git a/build/bakefiles/multilib.bkl b/build/bakefiles/multilib.bkl index dedebdb51a..b9ec796c82 100644 --- a/build/bakefiles/multilib.bkl +++ b/build/bakefiles/multilib.bkl @@ -176,6 +176,10 @@ + + $(TOP_SRCDIR)3rdparty/webview2/build/native/include + + WXUSINGDLL @@ -186,6 +190,7 @@ basedll $(EXTRALIBS_WEBVIEW) $(WEBVIEW_HDR) + $(webview_additional_include) $(webviewdll_ext_dir_define) $(WEBVIEW_SRC) $(WEBVIEW_HDR) + $(webview_additional_include) @@ -404,7 +410,7 @@ $(STC_SRC) $(STC_HDR) - + stc=stclib+stcdll diff --git a/build/cmake/files.cmake b/build/cmake/files.cmake index 5efad18cfa..3285075adb 100644 --- a/build/cmake/files.cmake +++ b/build/cmake/files.cmake @@ -2847,6 +2847,7 @@ set(WEBVIEW_CMN_SRC set(WEBVIEW_MSW_HDR wx/msw/webviewhistoryitem_ie.h wx/msw/webview_ie.h + wx/msw/webview_edgec.h ) set(WEBVIEW_CMN_HDR diff --git a/build/msw/makefile.bcc b/build/msw/makefile.bcc index 0c9399730d..9077167101 100644 --- a/build/msw/makefile.bcc +++ b/build/msw/makefile.bcc @@ -1127,11 +1127,12 @@ WEBVIEWDLL_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \ -I$(SETUPHDIR) -I..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES) \ -DWXBUILDING -I..\..\src\tiff\libtiff -I..\..\src\jpeg -I..\..\src\png \ -I..\..\src\zlib -I..\..\src\regex -I..\..\src\expat\expat\lib -DWXUSINGDLL \ - -DWXMAKINGDLL_WEBVIEW -Hu -H=$(OBJS)\wxprec_webviewdll.csm $(CPPFLAGS) \ - $(CXXFLAGS) + -DWXMAKINGDLL_WEBVIEW -I..\..\3rdparty\webview2\build\native\include -Hu \ + -H=$(OBJS)\wxprec_webviewdll.csm $(CPPFLAGS) $(CXXFLAGS) WEBVIEWDLL_OBJECTS = \ $(OBJS)\webviewdll_dummy.obj \ $(OBJS)\webviewdll_webview_ie.obj \ + $(OBJS)\webviewdll_webview_edgec.obj \ $(OBJS)\webviewdll_webview.obj \ $(OBJS)\webviewdll_webviewarchivehandler.obj \ $(OBJS)\webviewdll_webviewfshandler.obj @@ -1141,11 +1142,13 @@ WEBVIEWLIB_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \ $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) \ -I$(SETUPHDIR) -I..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES) \ -DWXBUILDING -I..\..\src\tiff\libtiff -I..\..\src\jpeg -I..\..\src\png \ - -I..\..\src\zlib -I..\..\src\regex -I..\..\src\expat\expat\lib -Hu \ + -I..\..\src\zlib -I..\..\src\regex -I..\..\src\expat\expat\lib \ + -I..\..\3rdparty\webview2\build\native\include -Hu \ -H=$(OBJS)\wxprec_webviewlib.csm $(CPPFLAGS) $(CXXFLAGS) WEBVIEWLIB_OBJECTS = \ $(OBJS)\webviewlib_dummy.obj \ $(OBJS)\webviewlib_webview_ie.obj \ + $(OBJS)\webviewlib_webview_edgec.obj \ $(OBJS)\webviewlib_webview.obj \ $(OBJS)\webviewlib_webviewarchivehandler.obj \ $(OBJS)\webviewlib_webviewfshandler.obj @@ -1677,6 +1680,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_winpars.obj \ $(OBJS)\monodll_htmllbox.obj \ $(OBJS)\monodll_webview_ie.obj \ + $(OBJS)\monodll_webview_edgec.obj \ $(OBJS)\monodll_webview.obj \ $(OBJS)\monodll_webviewarchivehandler.obj \ $(OBJS)\monodll_webviewfshandler.obj \ @@ -2510,6 +2514,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_winpars.obj \ $(OBJS)\monolib_htmllbox.obj \ $(OBJS)\monolib_webview_ie.obj \ + $(OBJS)\monolib_webview_edgec.obj \ $(OBJS)\monolib_webview.obj \ $(OBJS)\monolib_webviewarchivehandler.obj \ $(OBJS)\monolib_webviewfshandler.obj \ @@ -5351,7 +5356,7 @@ wxhtml: $(____wxhtml_namedll_DEP) $(____wxhtml_namelib_DEP) !endif !if "$(MONOLITHIC)" == "0" && "$(SHARED)" == "1" && "$(USE_GUI)" == "1" && "$(USE_WEBVIEW)" == "1" -$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG).dll: $(OBJS)\webviewdll_dummy.obj $(WEBVIEWDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\wxexpat$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxzlib$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib $(OBJS)\webviewdll_version.res $(__coredll___depname) $(__basedll___depname) +$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG).dll: $(OBJS)\webviewdll_dummy.obj $(WEBVIEWDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\wxexpat$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxzlib$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib $(__coredll___depname) $(__basedll___depname) $(OBJS)\webviewdll_version.res ilink32 -Tpd -q -L$(BCCDIR)\lib -L$(BCCDIR)\lib\psdk $(__DEBUGINFO) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) @&&| c0d32.obj $(WEBVIEWDLL_OBJECTS),$@,, $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) ole2w32.lib oleacc.lib uxtheme.lib $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib $(LIBDIRNAME)\wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib import32.lib cw32$(__THREADSFLAG_14)$(__RUNTIME_LIBS_5).lib,, $(OBJS)\webviewdll_version.res | @@ -7235,6 +7240,9 @@ $(OBJS)\monodll_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\monodll_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_ie.cpp +$(OBJS)\monodll_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp + $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp + $(OBJS)\monodll_webview.obj: ..\..\src\common\webview.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\webview.cpp @@ -9787,6 +9795,9 @@ $(OBJS)\monolib_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\monolib_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_ie.cpp +$(OBJS)\monolib_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp + $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp + $(OBJS)\monolib_webview.obj: ..\..\src\common\webview.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\webview.cpp @@ -15976,12 +15987,12 @@ $(OBJS)\htmllib_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\webviewdll_dummy.obj: ..\..\src\common\dummy.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWDLL_CXXFLAGS) -H ..\..\src\common\dummy.cpp -$(OBJS)\webviewdll_version.res: ..\..\src\msw\version.rc - brcc32 -32 -r -fo$@ -i$(BCCDIR)\include -dwxUSE_DPI_AWARE_MANIFEST=$(USE_DPI_AWARE_MANIFEST) -d__WXMSW__ $(__WXUNIV_DEFINE_p_67) $(__DEBUG_DEFINE_p_66) $(__NDEBUG_DEFINE_p_65) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) $(__UNICODE_DEFINE_p_67) -i$(SETUPHDIR) -i..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES_4) -dWXBUILDING -dWXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG) -i$(BCCDIR)\include\windows\sdk -i..\..\src\tiff\libtiff -i..\..\src\jpeg -i..\..\src\png -i..\..\src\zlib -i..\..\src\regex -i..\..\src\expat\expat\lib -dWXUSINGDLL -dWXMAKINGDLL_WEBVIEW ..\..\src\msw\version.rc - $(OBJS)\webviewdll_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_ie.cpp +$(OBJS)\webviewdll_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp + $(CXX) -q -c -P -o$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp + $(OBJS)\webviewdll_webview.obj: ..\..\src\common\webview.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\common\webview.cpp @@ -15991,12 +16002,18 @@ $(OBJS)\webviewdll_webviewarchivehandler.obj: ..\..\src\common\webviewarchivehan $(OBJS)\webviewdll_webviewfshandler.obj: ..\..\src\common\webviewfshandler.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\common\webviewfshandler.cpp +$(OBJS)\webviewdll_version.res: ..\..\src\msw\version.rc + brcc32 -32 -r -fo$@ -i$(BCCDIR)\include -dwxUSE_DPI_AWARE_MANIFEST=$(USE_DPI_AWARE_MANIFEST) -d__WXMSW__ $(__WXUNIV_DEFINE_p_67) $(__DEBUG_DEFINE_p_66) $(__NDEBUG_DEFINE_p_65) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) $(__UNICODE_DEFINE_p_67) -i$(SETUPHDIR) -i..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES_4) -dWXBUILDING -dWXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG) -i$(BCCDIR)\include\windows\sdk -i..\..\src\tiff\libtiff -i..\..\src\jpeg -i..\..\src\png -i..\..\src\zlib -i..\..\src\regex -i..\..\src\expat\expat\lib -dWXUSINGDLL -dWXMAKINGDLL_WEBVIEW -i..\..\3rdparty\webview2\build\native\include ..\..\src\msw\version.rc + $(OBJS)\webviewlib_dummy.obj: ..\..\src\common\dummy.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWLIB_CXXFLAGS) -H ..\..\src\common\dummy.cpp $(OBJS)\webviewlib_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_ie.cpp +$(OBJS)\webviewlib_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp + $(CXX) -q -c -P -o$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp + $(OBJS)\webviewlib_webview.obj: ..\..\src\common\webview.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\common\webview.cpp diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc index 33ab759620..38fe9df5f7 100644 --- a/build/msw/makefile.gcc +++ b/build/msw/makefile.gcc @@ -1127,15 +1127,17 @@ WEBVIEWDLL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \ -I$(SETUPHDIR) -I..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES) -W -Wall \ -DWXBUILDING -I..\..\src\tiff\libtiff -I..\..\src\jpeg -I..\..\src\png \ -I..\..\src\zlib -I..\..\src\regex -I..\..\src\expat\expat\lib -DWXUSINGDLL \ - -DWXMAKINGDLL_WEBVIEW $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \ - -Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS) + -DWXMAKINGDLL_WEBVIEW -I..\..\3rdparty\webview2\build\native\include \ + $(__RTTIFLAG) $(__EXCEPTIONSFLAG) -Wno-ctor-dtor-privacy $(CPPFLAGS) \ + $(CXXFLAGS) WEBVIEWDLL_OBJECTS = \ $(OBJS)\webviewdll_dummy.o \ - $(OBJS)\webviewdll_version_rc.o \ $(OBJS)\webviewdll_webview_ie.o \ + $(OBJS)\webviewdll_webview_edgec.o \ $(OBJS)\webviewdll_webview.o \ $(OBJS)\webviewdll_webviewarchivehandler.o \ - $(OBJS)\webviewdll_webviewfshandler.o + $(OBJS)\webviewdll_webviewfshandler.o \ + $(OBJS)\webviewdll_version_rc.o WEBVIEWLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \ $(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \ $(__DEBUG_DEFINE_p) $(__NDEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \ @@ -1143,11 +1145,12 @@ WEBVIEWLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \ -I$(SETUPHDIR) -I..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES) -W -Wall \ -DWXBUILDING -I..\..\src\tiff\libtiff -I..\..\src\jpeg -I..\..\src\png \ -I..\..\src\zlib -I..\..\src\regex -I..\..\src\expat\expat\lib \ - $(__RTTIFLAG) $(__EXCEPTIONSFLAG) -Wno-ctor-dtor-privacy $(CPPFLAGS) \ - $(CXXFLAGS) + -I..\..\3rdparty\webview2\build\native\include $(__RTTIFLAG) \ + $(__EXCEPTIONSFLAG) -Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS) WEBVIEWLIB_OBJECTS = \ $(OBJS)\webviewlib_dummy.o \ $(OBJS)\webviewlib_webview_ie.o \ + $(OBJS)\webviewlib_webview_edgec.o \ $(OBJS)\webviewlib_webview.o \ $(OBJS)\webviewlib_webviewarchivehandler.o \ $(OBJS)\webviewlib_webviewfshandler.o @@ -1702,6 +1705,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_winpars.o \ $(OBJS)\monodll_htmllbox.o \ $(OBJS)\monodll_webview_ie.o \ + $(OBJS)\monodll_webview_edgec.o \ $(OBJS)\monodll_webview.o \ $(OBJS)\monodll_webviewarchivehandler.o \ $(OBJS)\monodll_webviewfshandler.o \ @@ -2541,6 +2545,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_winpars.o \ $(OBJS)\monolib_htmllbox.o \ $(OBJS)\monolib_webview_ie.o \ + $(OBJS)\monolib_webview_edgec.o \ $(OBJS)\monolib_webview.o \ $(OBJS)\monolib_webviewarchivehandler.o \ $(OBJS)\monolib_webviewfshandler.o \ @@ -5261,87 +5266,60 @@ clean: setup_h: $(SETUPHDIR)\wx ..\..\include\wx\$(__SETUP_H_SUBDIR_FILENAMES)\setup.h $(SETUPHDIR)\wx\setup.h $(SETUPHDIR)\wx\msw\rcdefs.h $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a: $(WXREGEX_OBJECTS) - $(foreach f,$(subst \,/,$(WXREGEX_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(WXREGEX_OBJECTS) ranlib $@ $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a: $(WXZLIB_OBJECTS) - $(foreach f,$(subst \,/,$(WXZLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(WXZLIB_OBJECTS) ranlib $@ ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwxpng$(WXDEBUGFLAG).a: $(WXPNG_OBJECTS) - $(foreach f,$(subst \,/,$(WXPNG_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(WXPNG_OBJECTS) ranlib $@ endif ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwxjpeg$(WXDEBUGFLAG).a: $(WXJPEG_OBJECTS) - $(foreach f,$(subst \,/,$(WXJPEG_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(WXJPEG_OBJECTS) ranlib $@ endif ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwxtiff$(WXDEBUGFLAG).a: $(WXTIFF_OBJECTS) - $(foreach f,$(subst \,/,$(WXTIFF_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(WXTIFF_OBJECTS) ranlib $@ endif $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a: $(WXEXPAT_OBJECTS) - $(foreach f,$(subst \,/,$(WXEXPAT_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(WXEXPAT_OBJECTS) ranlib $@ ifeq ($(USE_STC),1) $(LIBDIRNAME)\libwxscintilla$(WXDEBUGFLAG).a: $(WXSCINTILLA_OBJECTS) - $(foreach f,$(subst \,/,$(WXSCINTILLA_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(WXSCINTILLA_OBJECTS) ranlib $@ endif ifeq ($(MONOLITHIC),1) ifeq ($(SHARED),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)$(WXCOMPILER)$(VENDORTAG).dll: $(MONODLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\monodll_version_rc.o $(__wxscintilla_library_link_DEP) - $(foreach f,$(subst \,/,$(MONODLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__wxscintilla) - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(MONODLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__wxscintilla) endif endif ifeq ($(MONOLITHIC),1) ifeq ($(SHARED),0) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a: $(MONOLIB_OBJECTS) - $(foreach f,$(subst \,/,$(MONOLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(MONOLIB_OBJECTS) ranlib $@ endif endif @@ -5349,21 +5327,15 @@ endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) $(LIBDIRNAME)\wxbase$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)$(WXCOMPILER)$(VENDORTAG).dll: $(BASEDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\basedll_version_rc.o - $(foreach f,$(subst \,/,$(BASEDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(BASEDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme endif endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a: $(BASELIB_OBJECTS) - $(foreach f,$(subst \,/,$(BASELIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(BASELIB_OBJECTS) ranlib $@ endif endif @@ -5375,21 +5347,15 @@ endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) $(LIBDIRNAME)\wxbase$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net$(WXCOMPILER)$(VENDORTAG).dll: $(NETDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\netdll_version_rc.o $(__basedll___depname) - $(foreach f,$(subst \,/,$(NETDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(NETDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.a: $(NETLIB_OBJECTS) - $(foreach f,$(subst \,/,$(NETLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(NETLIB_OBJECTS) ranlib $@ endif endif @@ -5402,10 +5368,7 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core$(WXCOMPILER)$(VENDORTAG).dll: $(COREDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\coredll_version_rc.o $(__basedll___depname) - $(foreach f,$(subst \,/,$(COREDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(COREDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5414,11 +5377,8 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a: $(CORELIB_OBJECTS) - $(foreach f,$(subst \,/,$(CORELIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(CORELIB_OBJECTS) ranlib $@ endif endif @@ -5434,10 +5394,7 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv$(WXCOMPILER)$(VENDORTAG).dll: $(ADVDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\advdll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(ADVDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(ADVDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5446,11 +5403,8 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.a: $(ADVLIB_OBJECTS) - $(foreach f,$(subst \,/,$(ADVLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(ADVLIB_OBJECTS) ranlib $@ endif endif @@ -5467,10 +5421,7 @@ ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_MEDIA),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media$(WXCOMPILER)$(VENDORTAG).dll: $(MEDIADLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\mediadll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(MEDIADLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(MEDIADLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5481,11 +5432,8 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_MEDIA),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.a: $(MEDIALIB_OBJECTS) - $(foreach f,$(subst \,/,$(MEDIALIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(MEDIALIB_OBJECTS) ranlib $@ endif endif @@ -5505,10 +5453,7 @@ ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_HTML),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html$(WXCOMPILER)$(VENDORTAG).dll: $(HTMLDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\htmldll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(HTMLDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(HTMLDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5519,11 +5464,8 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_HTML),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.a: $(HTMLLIB_OBJECTS) - $(foreach f,$(subst \,/,$(HTMLLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(HTMLLIB_OBJECTS) ranlib $@ endif endif @@ -5540,11 +5482,8 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_WEBVIEW),1) -$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG).dll: $(WEBVIEWDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\webviewdll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(WEBVIEWDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp +$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG).dll: $(WEBVIEWDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(__coredll___depname) $(__basedll___depname) $(OBJS)\webviewdll_version_rc.o + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(WEBVIEWDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5555,11 +5494,8 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_WEBVIEW),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview.a: $(WEBVIEWLIB_OBJECTS) - $(foreach f,$(subst \,/,$(WEBVIEWLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(WEBVIEWLIB_OBJECTS) ranlib $@ endif endif @@ -5577,10 +5513,7 @@ ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_QA),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa$(WXCOMPILER)$(VENDORTAG).dll: $(QADLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\qadll_version_rc.o $(__coredll___depname) $(__basedll___depname) $(__xmldll___depname) - $(foreach f,$(subst \,/,$(QADLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(QADLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a endif endif endif @@ -5591,11 +5524,8 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_QA),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa.a: $(QALIB_OBJECTS) - $(foreach f,$(subst \,/,$(QALIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(QALIB_OBJECTS) ranlib $@ endif endif @@ -5611,21 +5541,15 @@ endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) $(LIBDIRNAME)\wxbase$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml$(WXCOMPILER)$(VENDORTAG).dll: $(XMLDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\xmldll_version_rc.o $(__basedll___depname) - $(foreach f,$(subst \,/,$(XMLDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(XMLDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a: $(XMLLIB_OBJECTS) - $(foreach f,$(subst \,/,$(XMLLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(XMLLIB_OBJECTS) ranlib $@ endif endif @@ -5638,10 +5562,7 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_XRC),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc$(WXCOMPILER)$(VENDORTAG).dll: $(XRCDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\xrcdll_version_rc.o $(__htmldll_library_link_DEP) $(__coredll___depname) $(__xmldll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(XRCDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__htmldll_library_link_LIBR) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(XRCDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__htmldll_library_link_LIBR) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5650,11 +5571,8 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_XRC),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc.a: $(XRCLIB_OBJECTS) - $(foreach f,$(subst \,/,$(XRCLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(XRCLIB_OBJECTS) ranlib $@ endif endif @@ -5670,10 +5588,7 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_AUI),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui$(WXCOMPILER)$(VENDORTAG).dll: $(AUIDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\auidll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(AUIDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(AUIDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5682,11 +5597,8 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_AUI),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.a: $(AUILIB_OBJECTS) - $(foreach f,$(subst \,/,$(AUILIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(AUILIB_OBJECTS) ranlib $@ endif endif @@ -5702,10 +5614,7 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_RIBBON),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_ribbon$(WXCOMPILER)$(VENDORTAG).dll: $(RIBBONDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\ribbondll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(RIBBONDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_ribbon.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(RIBBONDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_ribbon.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5714,11 +5623,8 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_RIBBON),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_ribbon.a: $(RIBBONLIB_OBJECTS) - $(foreach f,$(subst \,/,$(RIBBONLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(RIBBONLIB_OBJECTS) ranlib $@ endif endif @@ -5734,10 +5640,7 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_PROPGRID),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid$(WXCOMPILER)$(VENDORTAG).dll: $(PROPGRIDDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\propgriddll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(PROPGRIDDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(PROPGRIDDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5746,11 +5649,8 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_PROPGRID),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid.a: $(PROPGRIDLIB_OBJECTS) - $(foreach f,$(subst \,/,$(PROPGRIDLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(PROPGRIDLIB_OBJECTS) ranlib $@ endif endif @@ -5766,10 +5666,7 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_RICHTEXT),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext$(WXCOMPILER)$(VENDORTAG).dll: $(RICHTEXTDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\richtextdll_version_rc.o $(__htmldll_library_link_DEP) $(__xmldll___depname) $(__coredll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(RICHTEXTDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__htmldll_library_link_LIBR) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(RICHTEXTDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__htmldll_library_link_LIBR) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5778,11 +5675,8 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_RICHTEXT),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.a: $(RICHTEXTLIB_OBJECTS) - $(foreach f,$(subst \,/,$(RICHTEXTLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(RICHTEXTLIB_OBJECTS) ranlib $@ endif endif @@ -5798,10 +5692,7 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_STC),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG).dll: $(STCDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(__wxscintilla) $(OBJS)\stcdll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(foreach f,$(subst \,/,$(STCDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxscintilla$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(STCDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxscintilla$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a endif endif endif @@ -5810,11 +5701,8 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_STC),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.a: $(STCLIB_OBJECTS) $(__wxscintilla) - $(foreach f,$(subst \,/,$(STCLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(STCLIB_OBJECTS) ranlib $@ endif endif @@ -5830,10 +5718,7 @@ ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_OPENGL),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl$(WXCOMPILER)$(VENDORTAG).dll: $(GLDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\gldll_version_rc.o $(__basedll___depname) $(__coredll___depname) $(__monodll___depname) - $(foreach f,$(subst \,/,$(GLDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__WXLIBGLDEP_CORE_p) $(__WXLIBGLDEP_BASE_p) $(__WXLIB_MONO_p) -lopengl32 -lglu32 - @-del $@.rsp + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(GLDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__WXLIBGLDEP_CORE_p) $(__WXLIBGLDEP_BASE_p) $(__WXLIB_MONO_p) -lopengl32 -lglu32 endif endif endif @@ -5842,11 +5727,8 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_OPENGL),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.a: $(GLLIB_OBJECTS) - $(foreach f,$(subst \,/,$(GLLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ @$@.rsp - @-del $@.rsp + ar rcu $@ $(GLLIB_OBJECTS) ranlib $@ endif endif @@ -7540,6 +7422,9 @@ $(OBJS)\monodll_htmllbox.o: ../../src/generic/htmllbox.cpp $(OBJS)\monodll_webview_ie.o: ../../src/msw/webview_ie.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\monodll_webview_edgec.o: ../../src/msw/webview_edgec.cpp + $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\monodll_webview.o: ../../src/common/webview.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< @@ -10092,6 +9977,9 @@ $(OBJS)\monolib_htmllbox.o: ../../src/generic/htmllbox.cpp $(OBJS)\monolib_webview_ie.o: ../../src/msw/webview_ie.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\monolib_webview_edgec.o: ../../src/msw/webview_edgec.cpp + $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\monolib_webview.o: ../../src/common/webview.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< @@ -16281,12 +16169,12 @@ $(OBJS)\htmllib_htmllbox.o: ../../src/generic/htmllbox.cpp $(OBJS)\webviewdll_dummy.o: ../../src/common/dummy.cpp $(CXX) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(CPPDEPS) $< -$(OBJS)\webviewdll_version_rc.o: ../../src/msw/version.rc - $(WINDRES) -i$< -o$@ --define wxUSE_DPI_AWARE_MANIFEST=$(USE_DPI_AWARE_MANIFEST) --define __WXMSW__ $(__WXUNIV_DEFINE_p_67) $(__DEBUG_DEFINE_p_66) $(__NDEBUG_DEFINE_p_65) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) $(__UNICODE_DEFINE_p_67) --include-dir $(SETUPHDIR) --include-dir ../../include $(__CAIRO_INCLUDEDIR_p) --define WXBUILDING --define WXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG) --include-dir ../../src/tiff/libtiff --include-dir ../../src/jpeg --include-dir ../../src/png --include-dir ../../src/zlib --include-dir ../../src/regex --include-dir ../../src/expat/expat/lib --define WXUSINGDLL --define WXMAKINGDLL_WEBVIEW - $(OBJS)\webviewdll_webview_ie.o: ../../src/msw/webview_ie.cpp $(CXX) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\webviewdll_webview_edgec.o: ../../src/msw/webview_edgec.cpp + $(CXX) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\webviewdll_webview.o: ../../src/common/webview.cpp $(CXX) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(CPPDEPS) $< @@ -16296,12 +16184,18 @@ $(OBJS)\webviewdll_webviewarchivehandler.o: ../../src/common/webviewarchivehandl $(OBJS)\webviewdll_webviewfshandler.o: ../../src/common/webviewfshandler.cpp $(CXX) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\webviewdll_version_rc.o: ../../src/msw/version.rc + $(WINDRES) -i$< -o$@ --define wxUSE_DPI_AWARE_MANIFEST=$(USE_DPI_AWARE_MANIFEST) --define __WXMSW__ $(__WXUNIV_DEFINE_p_67) $(__DEBUG_DEFINE_p_66) $(__NDEBUG_DEFINE_p_65) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) $(__UNICODE_DEFINE_p_67) --include-dir $(SETUPHDIR) --include-dir ../../include $(__CAIRO_INCLUDEDIR_p) --define WXBUILDING --define WXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG) --include-dir ../../src/tiff/libtiff --include-dir ../../src/jpeg --include-dir ../../src/png --include-dir ../../src/zlib --include-dir ../../src/regex --include-dir ../../src/expat/expat/lib --define WXUSINGDLL --define WXMAKINGDLL_WEBVIEW --include-dir ../../3rdparty/webview2/build/native/include + $(OBJS)\webviewlib_dummy.o: ../../src/common/dummy.cpp $(CXX) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(CPPDEPS) $< $(OBJS)\webviewlib_webview_ie.o: ../../src/msw/webview_ie.cpp $(CXX) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\webviewlib_webview_edgec.o: ../../src/msw/webview_edgec.cpp + $(CXX) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\webviewlib_webview.o: ../../src/common/webview.cpp $(CXX) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(CPPDEPS) $< diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc index d5bb450255..4cfe184aba 100644 --- a/build/msw/makefile.vc +++ b/build/msw/makefile.vc @@ -1232,11 +1232,13 @@ WEBVIEWDLL_CXXFLAGS = /M$(__RUNTIME_LIBS_333)$(__DEBUGRUNTIME) /DWIN32 \ $(____CAIRO_INCLUDEDIR_FILENAMES) /W4 /DWXBUILDING /I..\..\src\tiff\libtiff \ /I..\..\src\jpeg /I..\..\src\png /I..\..\src\zlib /I..\..\src\regex \ /I..\..\src\expat\expat\lib /DWXUSINGDLL /DWXMAKINGDLL_WEBVIEW \ - $(__RTTIFLAG) $(__EXCEPTIONSFLAG) /Yu"wx/wxprec.h" \ - /Fp"$(OBJS)\wxprec_webviewdll.pch" $(CPPFLAGS) $(CXXFLAGS) + /I..\..\3rdparty\webview2\build\native\include $(__RTTIFLAG) \ + $(__EXCEPTIONSFLAG) /Yu"wx/wxprec.h" /Fp"$(OBJS)\wxprec_webviewdll.pch" \ + $(CPPFLAGS) $(CXXFLAGS) WEBVIEWDLL_OBJECTS = \ $(OBJS)\webviewdll_dummy.obj \ $(OBJS)\webviewdll_webview_ie.obj \ + $(OBJS)\webviewdll_webview_edgec.obj \ $(OBJS)\webviewdll_webview.obj \ $(OBJS)\webviewdll_webviewarchivehandler.obj \ $(OBJS)\webviewdll_webviewfshandler.obj @@ -1252,11 +1254,14 @@ WEBVIEWLIB_CXXFLAGS = /M$(__RUNTIME_LIBS_348)$(__DEBUGRUNTIME) /DWIN32 \ $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) /I$(SETUPHDIR) /I..\..\include \ $(____CAIRO_INCLUDEDIR_FILENAMES) /W4 /DWXBUILDING /I..\..\src\tiff\libtiff \ /I..\..\src\jpeg /I..\..\src\png /I..\..\src\zlib /I..\..\src\regex \ - /I..\..\src\expat\expat\lib $(__RTTIFLAG) $(__EXCEPTIONSFLAG) \ - /Yu"wx/wxprec.h" /Fp"$(OBJS)\wxprec_webviewlib.pch" $(CPPFLAGS) $(CXXFLAGS) + /I..\..\src\expat\expat\lib \ + /I..\..\3rdparty\webview2\build\native\include $(__RTTIFLAG) \ + $(__EXCEPTIONSFLAG) /Yu"wx/wxprec.h" /Fp"$(OBJS)\wxprec_webviewlib.pch" \ + $(CPPFLAGS) $(CXXFLAGS) WEBVIEWLIB_OBJECTS = \ $(OBJS)\webviewlib_dummy.obj \ $(OBJS)\webviewlib_webview_ie.obj \ + $(OBJS)\webviewlib_webview_edgec.obj \ $(OBJS)\webviewlib_webview.obj \ $(OBJS)\webviewlib_webviewarchivehandler.obj \ $(OBJS)\webviewlib_webviewfshandler.obj @@ -2034,6 +2039,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_winpars.obj \ $(OBJS)\monodll_htmllbox.obj \ $(OBJS)\monodll_webview_ie.obj \ + $(OBJS)\monodll_webview_edgec.obj \ $(OBJS)\monodll_webview.obj \ $(OBJS)\monodll_webviewarchivehandler.obj \ $(OBJS)\monodll_webviewfshandler.obj \ @@ -2873,6 +2879,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_winpars.obj \ $(OBJS)\monolib_htmllbox.obj \ $(OBJS)\monolib_webview_ie.obj \ + $(OBJS)\monolib_webview_edgec.obj \ $(OBJS)\monolib_webview.obj \ $(OBJS)\monolib_webviewarchivehandler.obj \ $(OBJS)\monolib_webviewfshandler.obj \ @@ -6111,7 +6118,7 @@ wxhtml: $(____wxhtml_namedll_DEP) $(____wxhtml_namelib_DEP) !endif !if "$(MONOLITHIC)" == "0" && "$(SHARED)" == "1" && "$(USE_GUI)" == "1" && "$(USE_WEBVIEW)" == "1" -$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG).dll: $(OBJS)\webviewdll_dummy.obj $(WEBVIEWDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\wxexpat$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxzlib$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib $(OBJS)\webviewdll_version.res $(__coredll___depname) $(__basedll___depname) +$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG).dll: $(OBJS)\webviewdll_dummy.obj $(WEBVIEWDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\wxexpat$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxzlib$(WXDEBUGFLAG).lib $(LIBDIRNAME)\wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib $(__coredll___depname) $(__basedll___depname) $(OBJS)\webviewdll_version.res link /DLL /NOLOGO /OUT:$@ $(__DEBUGINFO_6) /pdb:"$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG).pdb" $(__DEBUGINFO_325) $(WIN32_DPI_LINKFLAG) $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) @<< $(WEBVIEWDLL_OBJECTS) $(WEBVIEWDLL_RESOURCES) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib shlwapi.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib version.lib wsock32.lib wininet.lib $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib $(LIBDIRNAME)\wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib /IMPLIB:$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview.lib << @@ -7984,6 +7991,9 @@ $(OBJS)\monodll_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\monodll_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_ie.cpp +$(OBJS)\monodll_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp + $(OBJS)\monodll_webview.obj: ..\..\src\common\webview.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\webview.cpp @@ -10536,6 +10546,9 @@ $(OBJS)\monolib_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\monolib_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_ie.cpp +$(OBJS)\monolib_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp + $(OBJS)\monolib_webview.obj: ..\..\src\common\webview.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\webview.cpp @@ -16725,12 +16738,12 @@ $(OBJS)\htmllib_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\webviewdll_dummy.obj: ..\..\src\common\dummy.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWDLL_CXXFLAGS) /Ycwx/wxprec.h ..\..\src\common\dummy.cpp -$(OBJS)\webviewdll_version.res: ..\..\src\msw\version.rc - rc /fo$@ /d WIN32 $(____DEBUGRUNTIME_6) /d _CRT_SECURE_NO_DEPRECATE=1 /d _CRT_NON_CONFORMING_SWPRINTFS=1 /d _SCL_SECURE_NO_WARNINGS=1 $(__NO_VC_CRTDBG_p_72) /d __WXMSW__ $(__WXUNIV_DEFINE_p_67) $(__DEBUG_DEFINE_p_66) $(__NDEBUG_DEFINE_p_65) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) $(__UNICODE_DEFINE_p_67) /i $(SETUPHDIR) /i ..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES_4) /d WXBUILDING /d WXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG) /i ..\..\src\tiff\libtiff /i ..\..\src\jpeg /i ..\..\src\png /i ..\..\src\zlib /i ..\..\src\regex /i ..\..\src\expat\expat\lib /d WXUSINGDLL /d WXMAKINGDLL_WEBVIEW ..\..\src\msw\version.rc - $(OBJS)\webviewdll_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_ie.cpp +$(OBJS)\webviewdll_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp + $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp + $(OBJS)\webviewdll_webview.obj: ..\..\src\common\webview.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\common\webview.cpp @@ -16740,12 +16753,18 @@ $(OBJS)\webviewdll_webviewarchivehandler.obj: ..\..\src\common\webviewarchivehan $(OBJS)\webviewdll_webviewfshandler.obj: ..\..\src\common\webviewfshandler.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\common\webviewfshandler.cpp +$(OBJS)\webviewdll_version.res: ..\..\src\msw\version.rc + rc /fo$@ /d WIN32 $(____DEBUGRUNTIME_6) /d _CRT_SECURE_NO_DEPRECATE=1 /d _CRT_NON_CONFORMING_SWPRINTFS=1 /d _SCL_SECURE_NO_WARNINGS=1 $(__NO_VC_CRTDBG_p_72) /d __WXMSW__ $(__WXUNIV_DEFINE_p_67) $(__DEBUG_DEFINE_p_66) $(__NDEBUG_DEFINE_p_65) $(__EXCEPTIONS_DEFINE_p_65) $(__RTTI_DEFINE_p_65) $(__THREAD_DEFINE_p_65) $(__UNICODE_DEFINE_p_67) /i $(SETUPHDIR) /i ..\..\include $(____CAIRO_INCLUDEDIR_FILENAMES_4) /d WXBUILDING /d WXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG) /i ..\..\src\tiff\libtiff /i ..\..\src\jpeg /i ..\..\src\png /i ..\..\src\zlib /i ..\..\src\regex /i ..\..\src\expat\expat\lib /d WXUSINGDLL /d WXMAKINGDLL_WEBVIEW /i ..\..\3rdparty\webview2\build\native\include ..\..\src\msw\version.rc + $(OBJS)\webviewlib_dummy.obj: ..\..\src\common\dummy.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWLIB_CXXFLAGS) /Ycwx/wxprec.h ..\..\src\common\dummy.cpp $(OBJS)\webviewlib_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_ie.cpp +$(OBJS)\webviewlib_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp + $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp + $(OBJS)\webviewlib_webview.obj: ..\..\src\common\webview.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\common\webview.cpp diff --git a/build/msw/wx_vc7_core.vcproj b/build/msw/wx_vc7_core.vcproj index c68a883d47..7dfeab9d08 100644 --- a/build/msw/wx_vc7_core.vcproj +++ b/build/msw/wx_vc7_core.vcproj @@ -1793,6 +1793,9 @@ + + diff --git a/build/msw/wx_vc7_webview.vcproj b/build/msw/wx_vc7_webview.vcproj index dc9d7c4519..056d91b6d5 100644 --- a/build/msw/wx_vc7_webview.vcproj +++ b/build/msw/wx_vc7_webview.vcproj @@ -27,7 +27,7 @@ + AdditionalIncludeDirectories="..\..\lib\vc_lib\mswud;..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\expat\lib;..\..\3rdparty\webview2\build\native\include"/> + AdditionalIncludeDirectories="..\..\lib\vc_lib\mswud;..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\expat\lib;..\..\3rdparty\webview2\build\native\include"/> + AdditionalIncludeDirectories="..\..\lib\vc_lib\mswu;..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\expat\lib;..\..\3rdparty\webview2\build\native\include"/> + AdditionalIncludeDirectories="..\..\lib\vc_lib\mswu;..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\expat\lib;..\..\3rdparty\webview2\build\native\include"/> + AdditionalIncludeDirectories="..\..\lib\vc_dll\mswud;..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\expat\lib;..\..\3rdparty\webview2\build\native\include"/> + AdditionalIncludeDirectories="..\..\lib\vc_dll\mswud;..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\expat\lib;..\..\3rdparty\webview2\build\native\include"/> + AdditionalIncludeDirectories="..\..\lib\vc_dll\mswu;..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\expat\lib;..\..\3rdparty\webview2\build\native\include"/> + AdditionalIncludeDirectories="..\..\lib\vc_dll\mswu;..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\expat\lib;..\..\3rdparty\webview2\build\native\include"/> + + @@ -421,6 +424,9 @@ AdditionalDependencies=""..\..\lib\vc_dll\mswu\wx\msw""/> + + diff --git a/build/msw/wx_vc8_core.vcproj b/build/msw/wx_vc8_core.vcproj index 6cbef6dee7..66b04a4080 100644 --- a/build/msw/wx_vc8_core.vcproj +++ b/build/msw/wx_vc8_core.vcproj @@ -2893,6 +2893,10 @@ RelativePath="..\..\include\wx\msw\uxtheme.h" > + + diff --git a/build/msw/wx_vc8_webview.vcproj b/build/msw/wx_vc8_webview.vcproj index 47c4496db4..7aee069795 100644 --- a/build/msw/wx_vc8_webview.vcproj +++ b/build/msw/wx_vc8_webview.vcproj @@ -48,12 +48,12 @@ + + @@ -1064,6 +1068,10 @@ /> + + diff --git a/build/msw/wx_vc9_core.vcproj b/build/msw/wx_vc9_core.vcproj index e99e775b5a..9a88f3b6e4 100644 --- a/build/msw/wx_vc9_core.vcproj +++ b/build/msw/wx_vc9_core.vcproj @@ -2889,6 +2889,10 @@ RelativePath="..\..\include\wx\msw\uxtheme.h" > + + diff --git a/build/msw/wx_vc9_webview.vcproj b/build/msw/wx_vc9_webview.vcproj index 1d434bcda9..0166ba315b 100644 --- a/build/msw/wx_vc9_webview.vcproj +++ b/build/msw/wx_vc9_webview.vcproj @@ -48,13 +48,13 @@ + + @@ -1060,6 +1064,10 @@ /> + + diff --git a/build/msw/wx_webview.vcxproj b/build/msw/wx_webview.vcxproj index bfb29eaab2..bb73ff175e 100644 --- a/build/msw/wx_webview.vcxproj +++ b/build/msw/wx_webview.vcxproj @@ -138,7 +138,7 @@ Disabled - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;%(AdditionalIncludeDirectories) + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include WIN32;_LIB;_DEBUG;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;_UNICODE;WXBUILDING;%(PreprocessorDefinitions) Sync EnableFastChecks @@ -173,7 +173,7 @@ Disabled - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;%(AdditionalIncludeDirectories) + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include WIN32;_LIB;_DEBUG;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;_UNICODE;WXBUILDING;%(PreprocessorDefinitions) Sync EnableFastChecks @@ -209,7 +209,7 @@ MaxSpeed - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;%(AdditionalIncludeDirectories) + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include WIN32;_LIB;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;NDEBUG;_UNICODE;WXBUILDING;%(PreprocessorDefinitions) Sync MultiThreadedDLL @@ -247,7 +247,7 @@ MaxSpeed - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;%(AdditionalIncludeDirectories) + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include WIN32;_LIB;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;NDEBUG;_UNICODE;WXBUILDING;%(PreprocessorDefinitions) Sync MultiThreadedDLL @@ -284,7 +284,7 @@ Disabled - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;%(AdditionalIncludeDirectories) + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include WIN32;_USRDLL;DLL_EXPORTS;_DEBUG;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;_UNICODE;WXBUILDING;WXUSINGDLL;WXMAKINGDLL_WEBVIEW;%(PreprocessorDefinitions) Sync EnableFastChecks @@ -325,7 +325,7 @@ Disabled - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;%(AdditionalIncludeDirectories) + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include WIN32;_USRDLL;DLL_EXPORTS;_DEBUG;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;_UNICODE;WXBUILDING;WXUSINGDLL;WXMAKINGDLL_WEBVIEW;%(PreprocessorDefinitions) Sync EnableFastChecks @@ -365,7 +365,7 @@ MaxSpeed - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;%(AdditionalIncludeDirectories) + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include WIN32;_USRDLL;DLL_EXPORTS;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;NDEBUG;_UNICODE;WXBUILDING;WXUSINGDLL;WXMAKINGDLL_WEBVIEW;%(PreprocessorDefinitions) Sync MultiThreadedDLL @@ -409,7 +409,7 @@ MaxSpeed - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;%(AdditionalIncludeDirectories) + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include WIN32;_USRDLL;DLL_EXPORTS;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;NDEBUG;_UNICODE;WXBUILDING;WXUSINGDLL;WXMAKINGDLL_WEBVIEW;%(PreprocessorDefinitions) Sync MultiThreadedDLL @@ -460,6 +460,7 @@ + @@ -495,7 +496,7 @@ - + diff --git a/build/msw/wx_webview.vcxproj.filters b/build/msw/wx_webview.vcxproj.filters index 3dda95cd8a..529edc4af3 100644 --- a/build/msw/wx_webview.vcxproj.filters +++ b/build/msw/wx_webview.vcxproj.filters @@ -30,6 +30,9 @@ Common Sources + + MSW Sources + MSW Sources @@ -40,10 +43,10 @@ - + MSW Headers - + MSW Headers diff --git a/samples/ownerdrw/makefile.gcc b/samples/ownerdrw/makefile.gcc index bc99157836..acd32455e6 100644 --- a/samples/ownerdrw/makefile.gcc +++ b/samples/ownerdrw/makefile.gcc @@ -218,10 +218,7 @@ clean: -if exist $(OBJS)\ownerdrw.exe del $(OBJS)\ownerdrw.exe $(OBJS)\ownerdrw.exe: $(OWNERDRW_OBJECTS) $(OBJS)\ownerdrw_ownerdrw_rc.o - $(foreach f,$(subst \,/,$(OWNERDRW_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme - @-del $@.rsp + $(CXX) -o $@ $(OWNERDRW_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme data: if not exist $(OBJS) mkdir $(OBJS) diff --git a/samples/render/makefile.gcc b/samples/render/makefile.gcc index 5d70f9fe19..0518d46f8e 100644 --- a/samples/render/makefile.gcc +++ b/samples/render/makefile.gcc @@ -239,10 +239,7 @@ clean: -if exist $(OBJS)\renddll_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_VERSION_NODOT)$(WXCOMPILER).dll del $(OBJS)\renddll_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_VERSION_NODOT)$(WXCOMPILER).dll $(OBJS)\render.exe: $(RENDER_OBJECTS) $(OBJS)\render_sample_rc.o - $(foreach f,$(subst \,/,$(RENDER_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme - @-del $@.rsp + $(CXX) -o $@ $(RENDER_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme ifeq ($(SHARED),1) $(OBJS)\renddll_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_VERSION_NODOT)$(WXCOMPILER).dll: $(RENDDLL_OBJECTS) diff --git a/samples/richtext/makefile.gcc b/samples/richtext/makefile.gcc index 56001c07ba..ba71a0d04f 100644 --- a/samples/richtext/makefile.gcc +++ b/samples/richtext/makefile.gcc @@ -230,10 +230,7 @@ clean: -if exist $(OBJS)\richtext.exe del $(OBJS)\richtext.exe $(OBJS)\richtext.exe: $(RICHTEXT_OBJECTS) $(OBJS)\richtext_sample_rc.o - $(foreach f,$(subst \,/,$(RICHTEXT_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_RICHTEXT_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme - @-del $@.rsp + $(CXX) -o $@ $(RICHTEXT_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_RICHTEXT_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(OBJS)\richtext_richtext.o: ./richtext.cpp $(CXX) -c -o $@ $(RICHTEXT_CXXFLAGS) $(CPPDEPS) $< diff --git a/samples/xti/makefile.gcc b/samples/xti/makefile.gcc index d16522161d..39b53999c0 100644 --- a/samples/xti/makefile.gcc +++ b/samples/xti/makefile.gcc @@ -224,10 +224,7 @@ clean: -if exist $(OBJS)\xti.exe del $(OBJS)\xti.exe $(OBJS)\xti.exe: $(XTI_OBJECTS) $(OBJS)\xti_sample_rc.o - $(foreach f,$(subst \,/,$(XTI_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme - @-del $@.rsp + $(CXX) -o $@ $(XTI_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(OBJS)\xti_sample_rc.o: ./../../samples/sample.rc $(WINDRES) -i$< -o$@ --define wxUSE_DPI_AWARE_MANIFEST=$(USE_DPI_AWARE_MANIFEST) --define __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__NDEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) --include-dir $(SETUPHDIR) --include-dir ./../../include $(__CAIRO_INCLUDEDIR_p) --include-dir . $(__DLLFLAG_p_1) --include-dir ./../../samples --define NOPCH diff --git a/tests/makefile.gcc b/tests/makefile.gcc index 67c4758f4c..2c75bba671 100644 --- a/tests/makefile.gcc +++ b/tests/makefile.gcc @@ -494,17 +494,11 @@ clean: -if exist $(OBJS)\test_gui.exe del $(OBJS)\test_gui.exe $(OBJS)\test.exe: $(TEST_OBJECTS) - $(foreach f,$(subst \,/,$(TEST_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_NET_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_PNG_IF_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme - @-del $@.rsp + $(CXX) -o $@ $(TEST_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_NET_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_PNG_IF_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme ifeq ($(USE_GUI),1) $(OBJS)\test_drawing.exe: $(TEST_DRAWING_OBJECTS) - $(foreach f,$(subst \,/,$(TEST_DRAWING_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme - @-del $@.rsp + $(CXX) -o $@ $(TEST_DRAWING_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme endif ifeq ($(SHARED),1) @@ -516,10 +510,7 @@ endif ifeq ($(USE_GUI),1) $(OBJS)\test_gui.exe: $(TEST_GUI_OBJECTS) $(OBJS)\test_gui_sample_rc.o - $(foreach f,$(subst \,/,$(TEST_GUI_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_WEBVIEW_p) $(__WXLIB_STC_p) $(__WXLIB_AUI_p) $(__WXLIB_RICHTEXT_p) $(__WXLIB_MEDIA_p) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme - @-del $@.rsp + $(CXX) -o $@ $(TEST_GUI_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_WEBVIEW_p) $(__WXLIB_STC_p) $(__WXLIB_AUI_p) $(__WXLIB_RICHTEXT_p) $(__WXLIB_MEDIA_p) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme endif data: diff --git a/utils/wxrc/makefile.gcc b/utils/wxrc/makefile.gcc index d599d90a21..5a94994a0e 100644 --- a/utils/wxrc/makefile.gcc +++ b/utils/wxrc/makefile.gcc @@ -183,10 +183,7 @@ clean: ifeq ($(USE_XRC),1) $(OBJS)\wxrc.exe: $(WXRC_OBJECTS) - $(foreach f,$(subst \,/,$(WXRC_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) - @move /y $@.rsp.tmp $@.rsp >nul - $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_PNG_IF_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme - @-del $@.rsp + $(CXX) -o $@ $(WXRC_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_PNG_IF_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme endif $(OBJS)\wxrc_wxrc.o: ./wxrc.cpp From d72e5874ebf267f83be9250fca637ceb1fd0ef52 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Fri, 10 Jan 2020 17:02:44 +0100 Subject: [PATCH 06/48] Add wxWebView methods to enable dev tools Currently only implemented for the Edge (Chromium) backend. --- include/wx/msw/webview_edgec.h | 3 +++ include/wx/webview.h | 2 ++ interface/wx/webview.h | 21 +++++++++++++++++++++ samples/webview/webview.cpp | 10 ++++++++++ src/msw/webview_edgec.cpp | 27 +++++++++++++++++++++++++-- 5 files changed, 61 insertions(+), 2 deletions(-) diff --git a/include/wx/msw/webview_edgec.h b/include/wx/msw/webview_edgec.h index abb7ad6192..4ff3320dbf 100644 --- a/include/wx/msw/webview_edgec.h +++ b/include/wx/msw/webview_edgec.h @@ -111,6 +111,9 @@ public: virtual void EnableContextMenu(bool enable = true) wxOVERRIDE; virtual bool IsContextMenuEnabled() const wxOVERRIDE; + virtual void EnableDevTools(bool enable = true) wxOVERRIDE; + virtual bool IsDevToolsEnabled() const wxOVERRIDE; + virtual bool RunScript(const wxString& javascript, wxString* output = NULL) wxOVERRIDE; virtual void RegisterHandler(wxSharedPtr handler) wxOVERRIDE; diff --git a/include/wx/webview.h b/include/wx/webview.h index 6e5e4aafdd..cea7a11e26 100644 --- a/include/wx/webview.h +++ b/include/wx/webview.h @@ -159,6 +159,7 @@ public: { m_showMenu = enable; } + virtual void EnableDevTools(bool WXUNUSED(enable) = true) { } virtual wxString GetCurrentTitle() const = 0; virtual wxString GetCurrentURL() const = 0; // TODO: handle choosing a frame when calling GetPageSource()? @@ -166,6 +167,7 @@ public: virtual wxString GetPageText() const = 0; virtual bool IsBusy() const = 0; virtual bool IsContextMenuEnabled() const { return m_showMenu; } + virtual bool IsDevToolsEnabled() const { return false; } virtual bool IsEditable() const = 0; virtual void LoadURL(const wxString& url) = 0; virtual void Print() = 0; diff --git a/interface/wx/webview.h b/interface/wx/webview.h index c1d5f1da11..cc3ac18f67 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -687,6 +687,27 @@ public: */ virtual bool IsContextMenuEnabled() const; + /** + @name Dev Tools + */ + + /** + Enable or disable access to dev tools for the user. + + This is currently only implemented for the Edge (Chromium) backend + where the dev tools are enabled by default. + + @since 3.1.4 + */ + virtual void EnableDevTools(bool enable = true); + + /** + Returns @true if dev tools are available to the user. + + @since 3.1.4 + */ + virtual bool IsDevToolsEnabled() const; + /** @name History */ diff --git a/samples/webview/webview.cpp b/samples/webview/webview.cpp index d7c7c16667..d5ec2dffcf 100644 --- a/samples/webview/webview.cpp +++ b/samples/webview/webview.cpp @@ -164,6 +164,7 @@ public: void OnFindText(wxCommandEvent& evt); void OnFindOptions(wxCommandEvent& evt); void OnEnableContextMenu(wxCommandEvent& evt); + void OnEnableDevTools(wxCommandEvent& evt); private: wxTextCtrl* m_url; @@ -226,6 +227,7 @@ private: wxMenuItem* m_selection_delete; wxMenuItem* m_find; wxMenuItem* m_context_menu; + wxMenuItem* m_dev_tools; wxInfoBar *m_info; wxStaticText* m_info_text; @@ -468,6 +470,7 @@ WebFrame::WebFrame(const wxString& url) : wxMenuItem* usememoryfs = m_tools_menu->Append(wxID_ANY, _("Memory File System Example")); m_context_menu = m_tools_menu->AppendCheckItem(wxID_ANY, _("Enable Context Menu")); + m_dev_tools = m_tools_menu->AppendCheckItem(wxID_ANY, _("Enable Dev Tools")); //By default we want to handle navigation and new windows m_tools_handle_navigation->Check(); @@ -549,6 +552,7 @@ WebFrame::WebFrame(const wxString& url) : Bind(wxEVT_MENU, &WebFrame::OnUseMemoryFS, this, usememoryfs->GetId()); Bind(wxEVT_MENU, &WebFrame::OnFind, this, m_find->GetId()); Bind(wxEVT_MENU, &WebFrame::OnEnableContextMenu, this, m_context_menu->GetId()); + Bind(wxEVT_MENU, &WebFrame::OnEnableDevTools, this, m_dev_tools->GetId()); //Connect the idle events Bind(wxEVT_IDLE, &WebFrame::OnIdle, this); @@ -710,6 +714,11 @@ void WebFrame::OnEnableContextMenu(wxCommandEvent& evt) m_browser->EnableContextMenu(evt.IsChecked()); } +void WebFrame::OnEnableDevTools(wxCommandEvent& evt) +{ + m_browser->EnableDevTools(evt.IsChecked()); +} + void WebFrame::OnFind(wxCommandEvent& WXUNUSED(evt)) { wxString value = m_browser->GetSelectedText(); @@ -943,6 +952,7 @@ void WebFrame::OnToolsClicked(wxCommandEvent& WXUNUSED(evt)) m_selection_delete->Enable(m_browser->HasSelection()); m_context_menu->Check(m_browser->IsContextMenuEnabled()); + m_dev_tools->Check(m_browser->IsDevToolsEnabled()); //Firstly we clear the existing menu items, then we add the current ones wxMenuHistoryMap::const_iterator it; diff --git a/src/msw/webview_edgec.cpp b/src/msw/webview_edgec.cpp index 13b57a7d0a..ddd725422a 100644 --- a/src/msw/webview_edgec.cpp +++ b/src/msw/webview_edgec.cpp @@ -49,8 +49,7 @@ typedef HRESULT(__stdcall *PFNWXGetWebView2BrowserVersionInfo)( PFNWXCreateWebView2EnvironmentWithDetails wxCreateWebView2EnvironmentWithDetails = NULL; PFNWXGetWebView2BrowserVersionInfo wxGetWebView2BrowserVersionInfo = NULL; -int wxWebViewEdgeChromium::ms_isAvailable = -1; -wxDynamicLibrary wxWebViewEdgeChromium::ms_loaderDll; +wxDynamicLibrary wxWebViewEdge::ms_loaderDll; bool wxWebViewEdge::IsAvailable() { @@ -655,6 +654,30 @@ bool wxWebViewEdge::IsContextMenuEnabled() const return true; } +void wxWebViewEdge::EnableDevTools(bool enable) +{ + wxCOMPtr settings; + if (SUCCEEDED(m_webView->get_Settings(&settings))) + { + settings->put_AreDevToolsEnabled(enable); + } +} + +bool wxWebViewEdge::IsDevToolsEnabled() const +{ + wxCOMPtr settings; + if (SUCCEEDED(m_webView->get_Settings(&settings))) + { + BOOL devToolsEnabled = TRUE; + settings->get_AreDevToolsEnabled(&devToolsEnabled); + + if (!devToolsEnabled) + return false; + } + + return true; +} + bool wxWebViewEdge::RunScriptSync(const wxString& javascript, wxString* output) { bool scriptExecuted = false; From f919b6e2f536432b161c6673a7651b25b496eedf Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Sat, 11 Jan 2020 14:47:47 +0100 Subject: [PATCH 07/48] Rename from webview_edgec to webview_edge --- Makefile.in | 26 +++++++++---------- build/bakefiles/files.bkl | 4 +-- build/cmake/files.cmake | 4 +-- build/files | 4 +-- build/msw/makefile.bcc | 24 ++++++++--------- build/msw/makefile.gcc | 16 ++++++------ build/msw/makefile.vc | 24 ++++++++--------- build/msw/wx_vc7_core.vcproj | 2 +- build/msw/wx_vc7_webview.vcproj | 4 +-- build/msw/wx_vc8_core.vcproj | 2 +- build/msw/wx_vc8_webview.vcproj | 4 +-- build/msw/wx_vc9_core.vcproj | 2 +- build/msw/wx_vc9_webview.vcproj | 4 +-- build/msw/wx_webview.vcxproj | 4 +-- build/msw/wx_webview.vcxproj.filters | 4 +-- .../msw/{webview_edgec.h => webview_edge.h} | 0 src/common/webview.cpp | 2 +- .../{webview_edgec.cpp => webview_edge.cpp} | 4 +-- 18 files changed, 67 insertions(+), 67 deletions(-) rename include/wx/msw/{webview_edgec.h => webview_edge.h} (100%) rename src/msw/{webview_edgec.cpp => webview_edge.cpp} (99%) diff --git a/Makefile.in b/Makefile.in index f0eba0756d..0b650a0936 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2264,7 +2264,7 @@ COND_PLATFORM_WIN32_1_GTK_PLATFORM_HDR = \ COND_TOOLKIT_MSW_WEBVIEW_HDR_PLATFORM = \ wx/msw/webviewhistoryitem_ie.h \ wx/msw/webview_ie.h \ - wx/msw/webview_edgec.h + wx/msw/webview_edge.h @COND_TOOLKIT_MSW@WEBVIEW_HDR_PLATFORM = $(COND_TOOLKIT_MSW_WEBVIEW_HDR_PLATFORM) @COND_TOOLKIT_COCOA@OPENGL_HDR_PLATFORM = wx/cocoa/glcanvas.h @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@OPENGL_HDR_PLATFORM \ @@ -6137,7 +6137,7 @@ COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_1 = \ @COND_TOOLKIT_GTK@__WEBVIEW_SRC_PLATFORM_OBJECTS = \ @COND_TOOLKIT_GTK@ monodll_gtk_webview_webkit.o monodll_webview_webkit2.o @COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS = \ -@COND_TOOLKIT_MSW@ monodll_webview_ie.o monodll_webview_edgec.o +@COND_TOOLKIT_MSW@ monodll_webview_ie.o monodll_webview_edge.o @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__AUI_GTK_SRC_OBJECTS \ @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ = monodll_tabartgtk.o @COND_TOOLKIT_MSW@__AUI_PLATFORM_SRC_OBJECTS = \ @@ -8127,7 +8127,7 @@ COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_3 = \ @COND_TOOLKIT_GTK@__WEBVIEW_SRC_PLATFORM_OBJECTS_1 = \ @COND_TOOLKIT_GTK@ monolib_gtk_webview_webkit.o monolib_webview_webkit2.o @COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS_1 = \ -@COND_TOOLKIT_MSW@ monolib_webview_ie.o monolib_webview_edgec.o +@COND_TOOLKIT_MSW@ monolib_webview_ie.o monolib_webview_edge.o @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__AUI_GTK_SRC_OBJECTS_1 \ @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ = monolib_tabartgtk.o @COND_TOOLKIT_MSW@__AUI_PLATFORM_SRC_OBJECTS_1 = \ @@ -12336,7 +12336,7 @@ COND_USE_SOVERSOLARIS_1___webviewdll___so_symlinks_uninst_cmd = rm -f \ @COND_TOOLKIT_GTK@ webviewdll_gtk_webview_webkit.o \ @COND_TOOLKIT_GTK@ webviewdll_webview_webkit2.o @COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS_2 = \ -@COND_TOOLKIT_MSW@ webviewdll_webview_ie.o webviewdll_webview_edgec.o +@COND_TOOLKIT_MSW@ webviewdll_webview_ie.o webviewdll_webview_edge.o @COND_TOOLKIT_MSW@__webview_additional_include_p_1 = \ @COND_TOOLKIT_MSW@ --include-dir \ @COND_TOOLKIT_MSW@ $(top_srcdir)/3rdparty/webview2/build/native/include @@ -12360,7 +12360,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1_USE_WEBVIEW_1___webviewlib___depname = \ @COND_TOOLKIT_GTK@ webviewlib_gtk_webview_webkit.o \ @COND_TOOLKIT_GTK@ webviewlib_webview_webkit2.o @COND_TOOLKIT_MSW@__WEBVIEW_SRC_PLATFORM_OBJECTS_3 = \ -@COND_TOOLKIT_MSW@ webviewlib_webview_ie.o webviewlib_webview_edgec.o +@COND_TOOLKIT_MSW@ webviewlib_webview_ie.o webviewlib_webview_edge.o @COND_SHARED_1@____wxwebview_namedll_DEP = $(__webviewdll___depname) @COND_SHARED_0@____wxwebview_namelib_DEP = $(__webviewlib___depname) COND_MONOLITHIC_0_SHARED_1_USE_GUI_1_USE_QA_1___qadll___depname = \ @@ -17119,8 +17119,8 @@ monodll_htmllbox.o: $(srcdir)/src/generic/htmllbox.cpp $(MONODLL_ODEP) monodll_webview_ie.o: $(srcdir)/src/msw/webview_ie.cpp $(MONODLL_ODEP) $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/webview_ie.cpp -monodll_webview_edgec.o: $(srcdir)/src/msw/webview_edgec.cpp $(MONODLL_ODEP) - $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/webview_edgec.cpp +monodll_webview_edge.o: $(srcdir)/src/msw/webview_edge.cpp $(MONODLL_ODEP) + $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/webview_edge.cpp monodll_gtk_webview_webkit.o: $(srcdir)/src/gtk/webview_webkit.cpp $(MONODLL_ODEP) $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/webview_webkit.cpp @@ -22399,8 +22399,8 @@ monolib_htmllbox.o: $(srcdir)/src/generic/htmllbox.cpp $(MONOLIB_ODEP) monolib_webview_ie.o: $(srcdir)/src/msw/webview_ie.cpp $(MONOLIB_ODEP) $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/webview_ie.cpp -monolib_webview_edgec.o: $(srcdir)/src/msw/webview_edgec.cpp $(MONOLIB_ODEP) - $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/webview_edgec.cpp +monolib_webview_edge.o: $(srcdir)/src/msw/webview_edge.cpp $(MONOLIB_ODEP) + $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/webview_edge.cpp monolib_gtk_webview_webkit.o: $(srcdir)/src/gtk/webview_webkit.cpp $(MONOLIB_ODEP) $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/webview_webkit.cpp @@ -35983,8 +35983,8 @@ htmllib_htmllbox.o: $(srcdir)/src/generic/htmllbox.cpp $(HTMLLIB_ODEP) webviewdll_webview_ie.o: $(srcdir)/src/msw/webview_ie.cpp $(WEBVIEWDLL_ODEP) $(CXXC) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(srcdir)/src/msw/webview_ie.cpp -webviewdll_webview_edgec.o: $(srcdir)/src/msw/webview_edgec.cpp $(WEBVIEWDLL_ODEP) - $(CXXC) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(srcdir)/src/msw/webview_edgec.cpp +webviewdll_webview_edge.o: $(srcdir)/src/msw/webview_edge.cpp $(WEBVIEWDLL_ODEP) + $(CXXC) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(srcdir)/src/msw/webview_edge.cpp webviewdll_gtk_webview_webkit.o: $(srcdir)/src/gtk/webview_webkit.cpp $(WEBVIEWDLL_ODEP) $(CXXC) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(srcdir)/src/gtk/webview_webkit.cpp @@ -36010,8 +36010,8 @@ webviewdll_version_rc.o: $(srcdir)/src/msw/version.rc $(WEBVIEWDLL_ODEP) webviewlib_webview_ie.o: $(srcdir)/src/msw/webview_ie.cpp $(WEBVIEWLIB_ODEP) $(CXXC) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(srcdir)/src/msw/webview_ie.cpp -webviewlib_webview_edgec.o: $(srcdir)/src/msw/webview_edgec.cpp $(WEBVIEWLIB_ODEP) - $(CXXC) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(srcdir)/src/msw/webview_edgec.cpp +webviewlib_webview_edge.o: $(srcdir)/src/msw/webview_edge.cpp $(WEBVIEWLIB_ODEP) + $(CXXC) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(srcdir)/src/msw/webview_edge.cpp webviewlib_gtk_webview_webkit.o: $(srcdir)/src/gtk/webview_webkit.cpp $(WEBVIEWLIB_ODEP) $(CXXC) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(srcdir)/src/gtk/webview_webkit.cpp diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl index d39a372fc4..c0f237f83f 100644 --- a/build/bakefiles/files.bkl +++ b/build/bakefiles/files.bkl @@ -3017,7 +3017,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/msw/webview_ie.cpp - src/msw/webview_edgec.cpp + src/msw/webview_edge.cpp src/gtk/webview_webkit.cpp @@ -3039,7 +3039,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! wx/msw/webviewhistoryitem_ie.h wx/msw/webview_ie.h - wx/msw/webview_edgec.h + wx/msw/webview_edge.h wx/gtk/webviewhistoryitem_webkit.h diff --git a/build/cmake/files.cmake b/build/cmake/files.cmake index 3285075adb..cb8d420c1e 100644 --- a/build/cmake/files.cmake +++ b/build/cmake/files.cmake @@ -2835,7 +2835,7 @@ set(HTML_CMN_HDR set(WEBVIEW_MSW_SRC src/msw/webview_ie.cpp - src/msw/webview_edgec.cpp + src/msw/webview_edge.cpp ) set(WEBVIEW_CMN_SRC @@ -2847,7 +2847,7 @@ set(WEBVIEW_CMN_SRC set(WEBVIEW_MSW_HDR wx/msw/webviewhistoryitem_ie.h wx/msw/webview_ie.h - wx/msw/webview_edgec.h + wx/msw/webview_edge.h ) set(WEBVIEW_CMN_HDR diff --git a/build/files b/build/files index ec255b4188..6799e46bd0 100644 --- a/build/files +++ b/build/files @@ -2788,7 +2788,7 @@ HTML_CMN_HDR = WEBVIEW_MSW_SRC = src/msw/webview_ie.cpp - src/msw/webview_edgec.cpp + src/msw/webview_edge.cpp WEBVIEW_CMN_SRC = src/common/webview.cpp src/common/webviewarchivehandler.cpp @@ -2797,7 +2797,7 @@ WEBVIEW_CMN_SRC = WEBVIEW_MSW_HDR = wx/msw/webviewhistoryitem_ie.h wx/msw/webview_ie.h - wx/msw/webview_edgec.h + wx/msw/webview_edge.h WEBVIEW_CMN_HDR = wx/webview.h wx/webviewarchivehandler.h diff --git a/build/msw/makefile.bcc b/build/msw/makefile.bcc index 9077167101..fefb2ee256 100644 --- a/build/msw/makefile.bcc +++ b/build/msw/makefile.bcc @@ -1132,7 +1132,7 @@ WEBVIEWDLL_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \ WEBVIEWDLL_OBJECTS = \ $(OBJS)\webviewdll_dummy.obj \ $(OBJS)\webviewdll_webview_ie.obj \ - $(OBJS)\webviewdll_webview_edgec.obj \ + $(OBJS)\webviewdll_webview_edge.obj \ $(OBJS)\webviewdll_webview.obj \ $(OBJS)\webviewdll_webviewarchivehandler.obj \ $(OBJS)\webviewdll_webviewfshandler.obj @@ -1148,7 +1148,7 @@ WEBVIEWLIB_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \ WEBVIEWLIB_OBJECTS = \ $(OBJS)\webviewlib_dummy.obj \ $(OBJS)\webviewlib_webview_ie.obj \ - $(OBJS)\webviewlib_webview_edgec.obj \ + $(OBJS)\webviewlib_webview_edge.obj \ $(OBJS)\webviewlib_webview.obj \ $(OBJS)\webviewlib_webviewarchivehandler.obj \ $(OBJS)\webviewlib_webviewfshandler.obj @@ -1680,7 +1680,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_winpars.obj \ $(OBJS)\monodll_htmllbox.obj \ $(OBJS)\monodll_webview_ie.obj \ - $(OBJS)\monodll_webview_edgec.obj \ + $(OBJS)\monodll_webview_edge.obj \ $(OBJS)\monodll_webview.obj \ $(OBJS)\monodll_webviewarchivehandler.obj \ $(OBJS)\monodll_webviewfshandler.obj \ @@ -2514,7 +2514,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_winpars.obj \ $(OBJS)\monolib_htmllbox.obj \ $(OBJS)\monolib_webview_ie.obj \ - $(OBJS)\monolib_webview_edgec.obj \ + $(OBJS)\monolib_webview_edge.obj \ $(OBJS)\monolib_webview.obj \ $(OBJS)\monolib_webviewarchivehandler.obj \ $(OBJS)\monolib_webviewfshandler.obj \ @@ -7240,8 +7240,8 @@ $(OBJS)\monodll_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\monodll_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_ie.cpp -$(OBJS)\monodll_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp - $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp +$(OBJS)\monodll_webview_edge.obj: ..\..\src\msw\webview_edge.cpp + $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_edge.cpp $(OBJS)\monodll_webview.obj: ..\..\src\common\webview.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\webview.cpp @@ -9795,8 +9795,8 @@ $(OBJS)\monolib_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\monolib_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_ie.cpp -$(OBJS)\monolib_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp - $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp +$(OBJS)\monolib_webview_edge.obj: ..\..\src\msw\webview_edge.cpp + $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_edge.cpp $(OBJS)\monolib_webview.obj: ..\..\src\common\webview.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\webview.cpp @@ -15990,8 +15990,8 @@ $(OBJS)\webviewdll_dummy.obj: ..\..\src\common\dummy.cpp $(OBJS)\webviewdll_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_ie.cpp -$(OBJS)\webviewdll_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp - $(CXX) -q -c -P -o$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp +$(OBJS)\webviewdll_webview_edge.obj: ..\..\src\msw\webview_edge.cpp + $(CXX) -q -c -P -o$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_edge.cpp $(OBJS)\webviewdll_webview.obj: ..\..\src\common\webview.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\common\webview.cpp @@ -16011,8 +16011,8 @@ $(OBJS)\webviewlib_dummy.obj: ..\..\src\common\dummy.cpp $(OBJS)\webviewlib_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_ie.cpp -$(OBJS)\webviewlib_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp - $(CXX) -q -c -P -o$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp +$(OBJS)\webviewlib_webview_edge.obj: ..\..\src\msw\webview_edge.cpp + $(CXX) -q -c -P -o$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_edge.cpp $(OBJS)\webviewlib_webview.obj: ..\..\src\common\webview.cpp $(CXX) -q -c -P -o$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\common\webview.cpp diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc index 38fe9df5f7..ab62bc8cc4 100644 --- a/build/msw/makefile.gcc +++ b/build/msw/makefile.gcc @@ -1133,7 +1133,7 @@ WEBVIEWDLL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \ WEBVIEWDLL_OBJECTS = \ $(OBJS)\webviewdll_dummy.o \ $(OBJS)\webviewdll_webview_ie.o \ - $(OBJS)\webviewdll_webview_edgec.o \ + $(OBJS)\webviewdll_webview_edge.o \ $(OBJS)\webviewdll_webview.o \ $(OBJS)\webviewdll_webviewarchivehandler.o \ $(OBJS)\webviewdll_webviewfshandler.o \ @@ -1150,7 +1150,7 @@ WEBVIEWLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \ WEBVIEWLIB_OBJECTS = \ $(OBJS)\webviewlib_dummy.o \ $(OBJS)\webviewlib_webview_ie.o \ - $(OBJS)\webviewlib_webview_edgec.o \ + $(OBJS)\webviewlib_webview_edge.o \ $(OBJS)\webviewlib_webview.o \ $(OBJS)\webviewlib_webviewarchivehandler.o \ $(OBJS)\webviewlib_webviewfshandler.o @@ -1705,7 +1705,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_winpars.o \ $(OBJS)\monodll_htmllbox.o \ $(OBJS)\monodll_webview_ie.o \ - $(OBJS)\monodll_webview_edgec.o \ + $(OBJS)\monodll_webview_edge.o \ $(OBJS)\monodll_webview.o \ $(OBJS)\monodll_webviewarchivehandler.o \ $(OBJS)\monodll_webviewfshandler.o \ @@ -2545,7 +2545,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_winpars.o \ $(OBJS)\monolib_htmllbox.o \ $(OBJS)\monolib_webview_ie.o \ - $(OBJS)\monolib_webview_edgec.o \ + $(OBJS)\monolib_webview_edge.o \ $(OBJS)\monolib_webview.o \ $(OBJS)\monolib_webviewarchivehandler.o \ $(OBJS)\monolib_webviewfshandler.o \ @@ -7422,7 +7422,7 @@ $(OBJS)\monodll_htmllbox.o: ../../src/generic/htmllbox.cpp $(OBJS)\monodll_webview_ie.o: ../../src/msw/webview_ie.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< -$(OBJS)\monodll_webview_edgec.o: ../../src/msw/webview_edgec.cpp +$(OBJS)\monodll_webview_edge.o: ../../src/msw/webview_edge.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< $(OBJS)\monodll_webview.o: ../../src/common/webview.cpp @@ -9977,7 +9977,7 @@ $(OBJS)\monolib_htmllbox.o: ../../src/generic/htmllbox.cpp $(OBJS)\monolib_webview_ie.o: ../../src/msw/webview_ie.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< -$(OBJS)\monolib_webview_edgec.o: ../../src/msw/webview_edgec.cpp +$(OBJS)\monolib_webview_edge.o: ../../src/msw/webview_edge.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< $(OBJS)\monolib_webview.o: ../../src/common/webview.cpp @@ -16172,7 +16172,7 @@ $(OBJS)\webviewdll_dummy.o: ../../src/common/dummy.cpp $(OBJS)\webviewdll_webview_ie.o: ../../src/msw/webview_ie.cpp $(CXX) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(CPPDEPS) $< -$(OBJS)\webviewdll_webview_edgec.o: ../../src/msw/webview_edgec.cpp +$(OBJS)\webviewdll_webview_edge.o: ../../src/msw/webview_edge.cpp $(CXX) -c -o $@ $(WEBVIEWDLL_CXXFLAGS) $(CPPDEPS) $< $(OBJS)\webviewdll_webview.o: ../../src/common/webview.cpp @@ -16193,7 +16193,7 @@ $(OBJS)\webviewlib_dummy.o: ../../src/common/dummy.cpp $(OBJS)\webviewlib_webview_ie.o: ../../src/msw/webview_ie.cpp $(CXX) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(CPPDEPS) $< -$(OBJS)\webviewlib_webview_edgec.o: ../../src/msw/webview_edgec.cpp +$(OBJS)\webviewlib_webview_edge.o: ../../src/msw/webview_edge.cpp $(CXX) -c -o $@ $(WEBVIEWLIB_CXXFLAGS) $(CPPDEPS) $< $(OBJS)\webviewlib_webview.o: ../../src/common/webview.cpp diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc index 4cfe184aba..8f828728ba 100644 --- a/build/msw/makefile.vc +++ b/build/msw/makefile.vc @@ -1238,7 +1238,7 @@ WEBVIEWDLL_CXXFLAGS = /M$(__RUNTIME_LIBS_333)$(__DEBUGRUNTIME) /DWIN32 \ WEBVIEWDLL_OBJECTS = \ $(OBJS)\webviewdll_dummy.obj \ $(OBJS)\webviewdll_webview_ie.obj \ - $(OBJS)\webviewdll_webview_edgec.obj \ + $(OBJS)\webviewdll_webview_edge.obj \ $(OBJS)\webviewdll_webview.obj \ $(OBJS)\webviewdll_webviewarchivehandler.obj \ $(OBJS)\webviewdll_webviewfshandler.obj @@ -1261,7 +1261,7 @@ WEBVIEWLIB_CXXFLAGS = /M$(__RUNTIME_LIBS_348)$(__DEBUGRUNTIME) /DWIN32 \ WEBVIEWLIB_OBJECTS = \ $(OBJS)\webviewlib_dummy.obj \ $(OBJS)\webviewlib_webview_ie.obj \ - $(OBJS)\webviewlib_webview_edgec.obj \ + $(OBJS)\webviewlib_webview_edge.obj \ $(OBJS)\webviewlib_webview.obj \ $(OBJS)\webviewlib_webviewarchivehandler.obj \ $(OBJS)\webviewlib_webviewfshandler.obj @@ -2039,7 +2039,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_winpars.obj \ $(OBJS)\monodll_htmllbox.obj \ $(OBJS)\monodll_webview_ie.obj \ - $(OBJS)\monodll_webview_edgec.obj \ + $(OBJS)\monodll_webview_edge.obj \ $(OBJS)\monodll_webview.obj \ $(OBJS)\monodll_webviewarchivehandler.obj \ $(OBJS)\monodll_webviewfshandler.obj \ @@ -2879,7 +2879,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_winpars.obj \ $(OBJS)\monolib_htmllbox.obj \ $(OBJS)\monolib_webview_ie.obj \ - $(OBJS)\monolib_webview_edgec.obj \ + $(OBJS)\monolib_webview_edge.obj \ $(OBJS)\monolib_webview.obj \ $(OBJS)\monolib_webviewarchivehandler.obj \ $(OBJS)\monolib_webviewfshandler.obj \ @@ -7991,8 +7991,8 @@ $(OBJS)\monodll_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\monodll_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_ie.cpp -$(OBJS)\monodll_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp - $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp +$(OBJS)\monodll_webview_edge.obj: ..\..\src\msw\webview_edge.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\webview_edge.cpp $(OBJS)\monodll_webview.obj: ..\..\src\common\webview.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\webview.cpp @@ -10546,8 +10546,8 @@ $(OBJS)\monolib_htmllbox.obj: ..\..\src\generic\htmllbox.cpp $(OBJS)\monolib_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_ie.cpp -$(OBJS)\monolib_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp - $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp +$(OBJS)\monolib_webview_edge.obj: ..\..\src\msw\webview_edge.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\webview_edge.cpp $(OBJS)\monolib_webview.obj: ..\..\src\common\webview.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\webview.cpp @@ -16741,8 +16741,8 @@ $(OBJS)\webviewdll_dummy.obj: ..\..\src\common\dummy.cpp $(OBJS)\webviewdll_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_ie.cpp -$(OBJS)\webviewdll_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp - $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp +$(OBJS)\webviewdll_webview_edge.obj: ..\..\src\msw\webview_edge.cpp + $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\msw\webview_edge.cpp $(OBJS)\webviewdll_webview.obj: ..\..\src\common\webview.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWDLL_CXXFLAGS) ..\..\src\common\webview.cpp @@ -16762,8 +16762,8 @@ $(OBJS)\webviewlib_dummy.obj: ..\..\src\common\dummy.cpp $(OBJS)\webviewlib_webview_ie.obj: ..\..\src\msw\webview_ie.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_ie.cpp -$(OBJS)\webviewlib_webview_edgec.obj: ..\..\src\msw\webview_edgec.cpp - $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_edgec.cpp +$(OBJS)\webviewlib_webview_edge.obj: ..\..\src\msw\webview_edge.cpp + $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\msw\webview_edge.cpp $(OBJS)\webviewlib_webview.obj: ..\..\src\common\webview.cpp $(CXX) /c /nologo /TP /Fo$@ $(WEBVIEWLIB_CXXFLAGS) ..\..\src\common\webview.cpp diff --git a/build/msw/wx_vc7_core.vcproj b/build/msw/wx_vc7_core.vcproj index 7dfeab9d08..55c4d683e1 100644 --- a/build/msw/wx_vc7_core.vcproj +++ b/build/msw/wx_vc7_core.vcproj @@ -1794,7 +1794,7 @@ RelativePath="..\..\include\wx\msw\uxtheme.h"> + RelativePath="..\..\include\wx\msw\webview_edge.h"> diff --git a/build/msw/wx_vc7_webview.vcproj b/build/msw/wx_vc7_webview.vcproj index 056d91b6d5..1c72c3dd22 100644 --- a/build/msw/wx_vc7_webview.vcproj +++ b/build/msw/wx_vc7_webview.vcproj @@ -326,7 +326,7 @@ ExcludedFromBuild="TRUE"/> + RelativePath="..\..\src\msw\webview_edge.cpp"> @@ -425,7 +425,7 @@ + RelativePath="..\..\include\wx\msw\webview_edge.h"> diff --git a/build/msw/wx_vc8_core.vcproj b/build/msw/wx_vc8_core.vcproj index 66b04a4080..3cb6c2ee35 100644 --- a/build/msw/wx_vc8_core.vcproj +++ b/build/msw/wx_vc8_core.vcproj @@ -2894,7 +2894,7 @@ > - + @@ -496,7 +496,7 @@ - + diff --git a/build/msw/wx_webview.vcxproj.filters b/build/msw/wx_webview.vcxproj.filters index 529edc4af3..a53014e96b 100644 --- a/build/msw/wx_webview.vcxproj.filters +++ b/build/msw/wx_webview.vcxproj.filters @@ -30,7 +30,7 @@ Common Sources - + MSW Sources @@ -43,7 +43,7 @@ - + MSW Headers diff --git a/include/wx/msw/webview_edgec.h b/include/wx/msw/webview_edge.h similarity index 100% rename from include/wx/msw/webview_edgec.h rename to include/wx/msw/webview_edge.h diff --git a/src/common/webview.cpp b/src/common/webview.cpp index c9be93add5..802cf00171 100644 --- a/src/common/webview.cpp +++ b/src/common/webview.cpp @@ -23,7 +23,7 @@ #include "wx/gtk/webview_webkit.h" #elif defined(__WXMSW__) #include "wx/msw/webview_ie.h" -#include "wx/msw/webview_edgec.h" +#include "wx/msw/webview_edge.h" #endif // DLL options compatibility check: diff --git a/src/msw/webview_edgec.cpp b/src/msw/webview_edge.cpp similarity index 99% rename from src/msw/webview_edgec.cpp rename to src/msw/webview_edge.cpp index ddd725422a..26eb2c7f98 100644 --- a/src/msw/webview_edgec.cpp +++ b/src/msw/webview_edge.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: source/msw/webview_edgec.cpp +// Name: source/msw/webview_edge.cpp // Purpose: wxMSW Edge Chromium wxWebView backend implementation // Author: Markus Pingel // Created: 2019-12-15 @@ -14,7 +14,7 @@ #pragma hdrstop #endif -#include "wx/msw/webview_edgec.h" +#include "wx/msw/webview_edge.h" #if wxUSE_WEBVIEW && wxUSE_WEBVIEW_EDGE From a1a155618e3e340400a8d5c964e5a73be7fe70d1 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Sat, 11 Jan 2020 14:59:08 +0100 Subject: [PATCH 08/48] Set Edge data folder to UserLocalDataDir --- src/msw/webview_edge.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 26eb2c7f98..35022b5980 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -20,6 +20,7 @@ #include "wx/filename.h" #include "wx/module.h" +#include "wx/stdpaths.h" #include "wx/thread.h" #include "wx/private/jsscriptwrapper.h" @@ -142,11 +143,12 @@ bool wxWebViewEdge::Create(wxWindow* parent, Bind(wxEVT_SIZE, &wxWebViewEdge::OnSize, this); - LPCWSTR subFolder = nullptr; - LPCWSTR additionalBrowserSwitches = nullptr; + wxString userDataPath = wxStandardPaths::Get().GetUserLocalDataDir(); HRESULT hr = wxCreateWebView2EnvironmentWithDetails( - subFolder, nullptr, additionalBrowserSwitches, + nullptr, + userDataPath.wc_str(), + nullptr, Callback( [this](HRESULT WXUNUSED(result), IWebView2Environment* environment) -> HRESULT { From 1f1202807ba781ca72dda5a4a1091df7e20c2827 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Sat, 11 Jan 2020 15:06:29 +0100 Subject: [PATCH 09/48] Implemented wxWebViewEdge::Print() --- src/msw/webview_edge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 35022b5980..9d02531ce7 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -482,7 +482,7 @@ bool wxWebViewEdge::CanSetZoomType(wxWebViewZoomType type) const void wxWebViewEdge::Print() { - + RunScript("window.print();"); } wxWebViewZoom wxWebViewEdge::GetZoom() const From 68c46681a0cb66a808d584003b1cdddc752ca3ce Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Sat, 11 Jan 2020 15:43:22 +0100 Subject: [PATCH 10/48] Document wxWebViewEdge build process --- interface/wx/webview.h | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/interface/wx/webview.h b/interface/wx/webview.h index cc3ac18f67..43c976afe3 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -284,10 +284,21 @@ public: The Edge (Chromium) backend uses Microsoft's Edge WebView2. It is available for Windows 7 and newer. - This backend has currently a few features missing but is still - a better choice than IE when just displaying web content. The unsupported - features are the following: virtual filesystems, custom urls, - text selection, find, source code. + The following features are currently unsupported with this backend: + virtual filesystems, custom urls, text selection, find, source code. + + This backend is not enabled by default, to build it follow these steps: + - Requires Visual Studio 2015 or newer + - Download the WebView2 SDK + nuget package (Version 0.8.355 or newer) + - Extract the package (it's a zip archive) to @c wxWidgets/3rdparty/webview2 + - Enable @c wxUSE_WEBKIT_EDGE in CMake or @c setup.h + - Build wxWidgets webview library + - Copy @c WebView2Loader.dll from @c wxWidgets/3rdparty/webview2/build/ + to your applications executable + - At runtime your can use wxWebView::IsBackendAvailable() to check if the + backend can be used (it will be available if @c WebView2Loader.dll can be + loaded and Edge (Chromium) is installed) @par wxWEBVIEW_WEBKIT (GTK) From e365fbbac8bde1e8544515b3c226c159de3b555f Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Sun, 12 Jan 2020 19:43:20 +0100 Subject: [PATCH 11/48] Update include guards Co-Authored-By: PB --- include/wx/msw/webview_edge.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/wx/msw/webview_edge.h b/include/wx/msw/webview_edge.h index 4ff3320dbf..ee69e7229a 100644 --- a/include/wx/msw/webview_edge.h +++ b/include/wx/msw/webview_edge.h @@ -7,8 +7,8 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef wxWebViewEdgeC_H -#define wxWebViewEdgeC_H +#ifndef wxWebViewEdge_H +#define wxWebViewEdge_H #include "wx/setup.h" @@ -183,4 +183,4 @@ public: #endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_EDGE && defined(__WXMSW__) -#endif // wxWebViewEdgeC_H +#endif // wxWebViewEdge_H From 19b85d63700a2d092f19909ebe930eacf8a5aa2c Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Sun, 12 Jan 2020 21:10:41 +0100 Subject: [PATCH 12/48] Update interface/wx/webview.h Co-Authored-By: PB --- interface/wx/webview.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 43c976afe3..2916d7d9f7 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -292,7 +292,7 @@ public: - Download the WebView2 SDK nuget package (Version 0.8.355 or newer) - Extract the package (it's a zip archive) to @c wxWidgets/3rdparty/webview2 - - Enable @c wxUSE_WEBKIT_EDGE in CMake or @c setup.h + - Enable @c wxUSE_WEBVIEW_EDGE in CMake or @c setup.h - Build wxWidgets webview library - Copy @c WebView2Loader.dll from @c wxWidgets/3rdparty/webview2/build/ to your applications executable From 049d253a85b40be0e5d02977e2763235767b32c5 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Tue, 14 Jan 2020 09:55:30 +0100 Subject: [PATCH 13/48] Fix typo and wording in webview documentation --- interface/wx/webview.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 2916d7d9f7..4cfc87131a 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -288,7 +288,7 @@ public: virtual filesystems, custom urls, text selection, find, source code. This backend is not enabled by default, to build it follow these steps: - - Requires Visual Studio 2015 or newer + - Visual Studio 2015, or newer, is required - Download the WebView2 SDK nuget package (Version 0.8.355 or newer) - Extract the package (it's a zip archive) to @c wxWidgets/3rdparty/webview2 @@ -296,7 +296,7 @@ public: - Build wxWidgets webview library - Copy @c WebView2Loader.dll from @c wxWidgets/3rdparty/webview2/build/ to your applications executable - - At runtime your can use wxWebView::IsBackendAvailable() to check if the + - At runtime you can use wxWebView::IsBackendAvailable() to check if the backend can be used (it will be available if @c WebView2Loader.dll can be loaded and Edge (Chromium) is installed) From c3f0b7a6cb05a15d56910331e5f13cec2ec384c6 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 15:33:38 +0100 Subject: [PATCH 14/48] Apply suggestions from code review Co-Authored-By: VZ --- include/wx/setup_inc.h | 3 +-- interface/wx/webview.h | 2 +- src/common/webview.cpp | 2 +- src/msw/webview_edge.cpp | 4 ++-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/include/wx/setup_inc.h b/include/wx/setup_inc.h index ed372c2b68..99e95fd8b7 100644 --- a/include/wx/setup_inc.h +++ b/include/wx/setup_inc.h @@ -758,7 +758,7 @@ // Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) // -// Default is 0 +// Default is 0 because WebView2 is not always available, set it to 1 if you do have it. // // Recommended setting: 1 when building for Windows with WebView2 SDK #define wxUSE_WEBVIEW_EDGE 0 @@ -1556,4 +1556,3 @@ #define wxUSE_THEME_MONO 0 #define wxUSE_THEME_WIN32 0 - diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 4cfc87131a..d27364b325 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -449,7 +449,7 @@ public: wxSharedPtr factory); /** - Allows to check if a specific backend is currently available + Allows to check if a specific backend is currently available. @since 3.1.4 */ diff --git a/src/common/webview.cpp b/src/common/webview.cpp index 802cf00171..e7cd9c158f 100644 --- a/src/common/webview.cpp +++ b/src/common/webview.cpp @@ -91,7 +91,7 @@ void wxWebView::RegisterFactory(const wxString& backend, bool wxWebView::IsBackendAvailable(const wxString& backend) { wxStringWebViewFactoryMap::iterator iter = FindFactory(backend); - return (iter != m_factoryMap.end()); + return iter != m_factoryMap.end(); } // static diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 9d02531ce7..5e7a17ebcc 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: source/msw/webview_edge.cpp +// Name: src/msw/webview_edge.cpp // Purpose: wxMSW Edge Chromium wxWebView backend implementation // Author: Markus Pingel // Created: 2019-12-15 @@ -62,7 +62,7 @@ bool wxWebViewEdge::IsAvailable() ms_isAvailable = 1; } - return (ms_isAvailable == 1); + return ms_isAvailable == 1; } bool wxWebViewEdge::Initialize() From 21cc8a4e498fab38659ab5aefe34edf054e2ff21 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 15:58:10 +0100 Subject: [PATCH 15/48] Update setup.h files --- build/cmake/setup.h.in | 1 - include/wx/android/setup.h | 3 +-- include/wx/gtk/setup0.h | 3 +-- include/wx/motif/setup0.h | 3 +-- include/wx/msw/setup0.h | 3 +-- include/wx/osx/setup0.h | 3 +-- include/wx/univ/setup0.h | 3 +-- setup.h.in | 1 - 8 files changed, 6 insertions(+), 14 deletions(-) diff --git a/build/cmake/setup.h.in b/build/cmake/setup.h.in index abc2bfba7e..c18154227b 100644 --- a/build/cmake/setup.h.in +++ b/build/cmake/setup.h.in @@ -631,7 +631,6 @@ #cmakedefine01 wxUSE_THEME_MONO #cmakedefine01 wxUSE_THEME_WIN32 - /* --- end common options --- */ /* diff --git a/include/wx/android/setup.h b/include/wx/android/setup.h index 485b3c11dd..af4585828d 100644 --- a/include/wx/android/setup.h +++ b/include/wx/android/setup.h @@ -761,7 +761,7 @@ // Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) // -// Default is 0 +// Default is 0 because WebView2 is not always available, set it to 1 if you do have it. // // Recommended setting: 1 when building for Windows with WebView2 SDK #define wxUSE_WEBVIEW_EDGE 0 @@ -1559,7 +1559,6 @@ #define wxUSE_THEME_MONO 0 #define wxUSE_THEME_WIN32 0 - /* --- end common options --- */ /* --- start MSW options --- */ diff --git a/include/wx/gtk/setup0.h b/include/wx/gtk/setup0.h index 230560034a..639f912d52 100644 --- a/include/wx/gtk/setup0.h +++ b/include/wx/gtk/setup0.h @@ -762,7 +762,7 @@ // Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) // -// Default is 0 +// Default is 0 because WebView2 is not always available, set it to 1 if you do have it. // // Recommended setting: 1 when building for Windows with WebView2 SDK #define wxUSE_WEBVIEW_EDGE 0 @@ -1560,7 +1560,6 @@ #define wxUSE_THEME_MONO 0 #define wxUSE_THEME_WIN32 0 - /* --- end common options --- */ /* --- start MSW options --- */ diff --git a/include/wx/motif/setup0.h b/include/wx/motif/setup0.h index 922189d5cb..7f7ff9eb8a 100644 --- a/include/wx/motif/setup0.h +++ b/include/wx/motif/setup0.h @@ -762,7 +762,7 @@ // Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) // -// Default is 0 +// Default is 0 because WebView2 is not always available, set it to 1 if you do have it. // // Recommended setting: 1 when building for Windows with WebView2 SDK #define wxUSE_WEBVIEW_EDGE 0 @@ -1560,7 +1560,6 @@ #define wxUSE_THEME_MONO 0 #define wxUSE_THEME_WIN32 0 - /* --- end common options --- */ #endif // _WX_SETUP_H_ diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h index 471dd40401..e7b9d06668 100644 --- a/include/wx/msw/setup0.h +++ b/include/wx/msw/setup0.h @@ -762,7 +762,7 @@ // Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) // -// Default is 0 +// Default is 0 because WebView2 is not always available, set it to 1 if you do have it. // // Recommended setting: 1 when building for Windows with WebView2 SDK #define wxUSE_WEBVIEW_EDGE 0 @@ -1560,7 +1560,6 @@ #define wxUSE_THEME_MONO 0 #define wxUSE_THEME_WIN32 0 - /* --- end common options --- */ /* --- start MSW options --- */ diff --git a/include/wx/osx/setup0.h b/include/wx/osx/setup0.h index bcdab60411..d45ea59db7 100644 --- a/include/wx/osx/setup0.h +++ b/include/wx/osx/setup0.h @@ -768,7 +768,7 @@ // Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) // -// Default is 0 +// Default is 0 because WebView2 is not always available, set it to 1 if you do have it. // // Recommended setting: 1 when building for Windows with WebView2 SDK #define wxUSE_WEBVIEW_EDGE 0 @@ -1566,7 +1566,6 @@ #define wxUSE_THEME_MONO 0 #define wxUSE_THEME_WIN32 0 - /* --- end common options --- */ /* --- start OSX options --- */ diff --git a/include/wx/univ/setup0.h b/include/wx/univ/setup0.h index 00f7923f77..7c2852039b 100644 --- a/include/wx/univ/setup0.h +++ b/include/wx/univ/setup0.h @@ -761,7 +761,7 @@ // Use the Edge (Chromium) wxWebView backend (Requires WebView2 SDK) // -// Default is 0 +// Default is 0 because WebView2 is not always available, set it to 1 if you do have it. // // Recommended setting: 1 when building for Windows with WebView2 SDK #define wxUSE_WEBVIEW_EDGE 0 @@ -1559,7 +1559,6 @@ #define wxUSE_THEME_MONO 0 #define wxUSE_THEME_WIN32 0 - /* --- end common options --- */ /* --- start MSW options --- */ diff --git a/setup.h.in b/setup.h.in index 6164e14d8d..26ed7a7d14 100644 --- a/setup.h.in +++ b/setup.h.in @@ -631,7 +631,6 @@ #define wxUSE_THEME_MONO 0 #define wxUSE_THEME_WIN32 0 - /* --- end common options --- */ /* From dea80692b4688fd20c97b3326d7b93f97445198b Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 16:13:26 +0100 Subject: [PATCH 16/48] Use wxDL_INIT_FUNC() macro --- src/msw/webview_edge.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 5e7a17ebcc..73d9a0537d 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -38,17 +38,17 @@ wxIMPLEMENT_DYNAMIC_CLASS(wxWebViewEdge, wxWebView); int wxWebViewEdge::ms_isAvailable = -1; // WebView2Loader typedefs -typedef HRESULT (__stdcall *PFNWXCreateWebView2EnvironmentWithDetails)( +typedef HRESULT (__stdcall *CreateWebView2EnvironmentWithDetails_t)( PCWSTR browserExecutableFolder, PCWSTR userDataFolder, PCWSTR additionalBrowserArguments, IWebView2CreateWebView2EnvironmentCompletedHandler* environment_created_handler); -typedef HRESULT(__stdcall *PFNWXGetWebView2BrowserVersionInfo)( +typedef HRESULT(__stdcall *GetWebView2BrowserVersionInfo_t)( PCWSTR browserExecutableFolder, LPWSTR* versionInfo); -PFNWXCreateWebView2EnvironmentWithDetails wxCreateWebView2EnvironmentWithDetails = NULL; -PFNWXGetWebView2BrowserVersionInfo wxGetWebView2BrowserVersionInfo = NULL; +CreateWebView2EnvironmentWithDetails_t wxCreateWebView2EnvironmentWithDetails = NULL; +GetWebView2BrowserVersionInfo_t wxGetWebView2BrowserVersionInfo = NULL; wxDynamicLibrary wxWebViewEdge::ms_loaderDll; @@ -67,11 +67,6 @@ bool wxWebViewEdge::IsAvailable() bool wxWebViewEdge::Initialize() { -#define RESOLVE_LOADER_FUNCTION(type, funcname) \ - wx##funcname = (type)ms_loaderDll.GetSymbol(wxT(#funcname)); \ - if ( !wx##funcname ) \ - return false - // WebView2 is only available for Windows 7 or newer if (!wxCheckOsVersion(6, 1)) return false; @@ -80,8 +75,10 @@ bool wxWebViewEdge::Initialize() return false; // Try to load functions from loader DLL - RESOLVE_LOADER_FUNCTION(PFNWXCreateWebView2EnvironmentWithDetails, CreateWebView2EnvironmentWithDetails); - RESOLVE_LOADER_FUNCTION(PFNWXGetWebView2BrowserVersionInfo, GetWebView2BrowserVersionInfo); + wxDL_INIT_FUNC(wx, CreateWebView2EnvironmentWithDetails, ms_loaderDll); + wxDL_INIT_FUNC(wx, GetWebView2BrowserVersionInfo, ms_loaderDll); + if (!wxGetWebView2BrowserVersionInfo || !wxCreateWebView2EnvironmentWithDetails) + return false; // Check if a Edge browser can be found by the loader DLL LPWSTR versionStr; From e20296fee2c671ce871842e51e6ebb45f6bbb336 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 16:17:45 +0100 Subject: [PATCH 17/48] Remove explicit check for Windows 7 --- src/msw/webview_edge.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 73d9a0537d..f778a148ae 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -67,10 +67,6 @@ bool wxWebViewEdge::IsAvailable() bool wxWebViewEdge::Initialize() { - // WebView2 is only available for Windows 7 or newer - if (!wxCheckOsVersion(6, 1)) - return false; - if (!ms_loaderDll.Load("WebView2Loader.dll", wxDL_DEFAULT | wxDL_QUIET)) return false; From bce0e65a803e628a04484fd0606416c15a3ed992 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 16:22:43 +0100 Subject: [PATCH 18/48] Rename wxWebView::IsDevToolsEnabled() to IsAccessToDevToolsEnabled() --- include/wx/msw/webview_edge.h | 2 +- include/wx/webview.h | 2 +- interface/wx/webview.h | 2 +- samples/webview/webview.cpp | 2 +- src/msw/webview_edge.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/wx/msw/webview_edge.h b/include/wx/msw/webview_edge.h index ee69e7229a..528fd66bfd 100644 --- a/include/wx/msw/webview_edge.h +++ b/include/wx/msw/webview_edge.h @@ -112,7 +112,7 @@ public: virtual bool IsContextMenuEnabled() const wxOVERRIDE; virtual void EnableDevTools(bool enable = true) wxOVERRIDE; - virtual bool IsDevToolsEnabled() const wxOVERRIDE; + virtual bool IsAccessToDevToolsEnabled() const wxOVERRIDE; virtual bool RunScript(const wxString& javascript, wxString* output = NULL) wxOVERRIDE; diff --git a/include/wx/webview.h b/include/wx/webview.h index cea7a11e26..2f20c788f1 100644 --- a/include/wx/webview.h +++ b/include/wx/webview.h @@ -167,7 +167,7 @@ public: virtual wxString GetPageText() const = 0; virtual bool IsBusy() const = 0; virtual bool IsContextMenuEnabled() const { return m_showMenu; } - virtual bool IsDevToolsEnabled() const { return false; } + virtual bool IsAccessToDevToolsEnabled() const { return false; } virtual bool IsEditable() const = 0; virtual void LoadURL(const wxString& url) = 0; virtual void Print() = 0; diff --git a/interface/wx/webview.h b/interface/wx/webview.h index d27364b325..7039ccc4b3 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -717,7 +717,7 @@ public: @since 3.1.4 */ - virtual bool IsDevToolsEnabled() const; + virtual bool IsAccessToDevToolsEnabled() const; /** @name History diff --git a/samples/webview/webview.cpp b/samples/webview/webview.cpp index d5ec2dffcf..3dba5c8d5b 100644 --- a/samples/webview/webview.cpp +++ b/samples/webview/webview.cpp @@ -952,7 +952,7 @@ void WebFrame::OnToolsClicked(wxCommandEvent& WXUNUSED(evt)) m_selection_delete->Enable(m_browser->HasSelection()); m_context_menu->Check(m_browser->IsContextMenuEnabled()); - m_dev_tools->Check(m_browser->IsDevToolsEnabled()); + m_dev_tools->Check(m_browser->IsAccessToDevToolsEnabled()); //Firstly we clear the existing menu items, then we add the current ones wxMenuHistoryMap::const_iterator it; diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index f778a148ae..074f4d8023 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -658,7 +658,7 @@ void wxWebViewEdge::EnableDevTools(bool enable) } } -bool wxWebViewEdge::IsDevToolsEnabled() const +bool wxWebViewEdge::IsAccessToDevToolsEnabled() const { wxCOMPtr settings; if (SUCCEEDED(m_webView->get_Settings(&settings))) From bf6b51e7024941c1d317e53cfd02e15a4d122cc5 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 16:33:04 +0100 Subject: [PATCH 19/48] Various small code fixups --- include/wx/msw/webview_edge.h | 4 ++-- src/msw/webview_edge.cpp | 33 ++++++--------------------------- 2 files changed, 8 insertions(+), 29 deletions(-) diff --git a/include/wx/msw/webview_edge.h b/include/wx/msw/webview_edge.h index 528fd66bfd..bf41a48745 100644 --- a/include/wx/msw/webview_edge.h +++ b/include/wx/msw/webview_edge.h @@ -128,8 +128,8 @@ protected: virtual void DoSetPage(const wxString& html, const wxString& baseUrl) wxOVERRIDE; private: - bool m_initialized = false; - bool m_isBusy = false; + bool m_initialized; + bool m_isBusy; wxString m_pendingURL; wxCOMPtr m_webViewEnvironment; diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 074f4d8023..e0592ed123 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -100,7 +100,6 @@ wxWebViewEdge::~wxWebViewEdge() { if (m_webView) { - // TOOD: Remove additional events m_webView->remove_NavigationCompleted(m_navigationCompletedToken); m_webView->remove_NavigationStarting(m_navigationStartingToken); m_webView->remove_DocumentStateChanged(m_documentStateChangedToken); @@ -123,15 +122,15 @@ bool wxWebViewEdge::Create(wxWindow* parent, m_historyEnabled = true; m_historyPosition = -1; + if (!IsAvailable()) + return false; + if (!wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name)) { return false; } - if (!IsAvailable()) - return false; - m_pendingURL = url; Bind(wxEVT_SIZE, &wxWebViewEdge::OnSize, this); @@ -360,14 +359,6 @@ bool wxWebViewEdge::CanGoForward() const return m_historyPosition != static_cast(m_historyList.size()) - 1; else return false; - - /* - BOOL result = false; - if (m_webView && SUCCEEDED(m_webView->get_CanGoForward(&result))) - return result; - else - return false; - */ } bool wxWebViewEdge::CanGoBack() const @@ -376,28 +367,16 @@ bool wxWebViewEdge::CanGoBack() const return m_historyPosition > 0; else return false; - /* - BOOL result = false; - - if (m_webView && SUCCEEDED(m_webView->get_CanGoBack(&result))) - return result; - else - return false; - */ } void wxWebViewEdge::GoBack() { LoadHistoryItem(m_historyList[m_historyPosition - 1]); - /* if (m_webView) - m_webView->GoBack(); */ } void wxWebViewEdge::GoForward() { LoadHistoryItem(m_historyList[m_historyPosition + 1]); - /* if (m_webView) - m_webView->GoForward(); */ } void wxWebViewEdge::ClearHistory() @@ -451,9 +430,9 @@ wxString wxWebViewEdge::GetCurrentURL() const wxString wxWebViewEdge::GetCurrentTitle() const { - PWSTR _title; - if (m_webView && SUCCEEDED(m_webView->get_DocumentTitle(&_title))) - return wxString(_title); + PWSTR title; + if (m_webView && SUCCEEDED(m_webView->get_DocumentTitle(&title))) + return wxString(title); else return wxString(); } From 903279a9afc6d53b742d789323b760eed8af6b3d Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 16:39:39 +0100 Subject: [PATCH 20/48] Add a note about WebView2 SDK license requirements --- interface/wx/webview.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 7039ccc4b3..a6f81627bd 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -299,6 +299,8 @@ public: - At runtime you can use wxWebView::IsBackendAvailable() to check if the backend can be used (it will be available if @c WebView2Loader.dll can be loaded and Edge (Chromium) is installed) + - Make sure to add a note about using the WebView2 SDK to your application + documentation, as required by it's licence @par wxWEBVIEW_WEBKIT (GTK) From 0d00af59135768d4df4841db24a050a80eef5d1a Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 17:04:51 +0100 Subject: [PATCH 21/48] Add wxLogApiError() to important WebView2 API calls --- src/msw/webview_edge.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index e0592ed123..f7078f85b4 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -78,11 +78,14 @@ bool wxWebViewEdge::Initialize() // Check if a Edge browser can be found by the loader DLL LPWSTR versionStr; - if (SUCCEEDED(wxGetWebView2BrowserVersionInfo(NULL, &versionStr))) + HRESULT hr = wxGetWebView2BrowserVersionInfo(NULL, &versionStr); + if (SUCCEEDED(hr)) { if (versionStr) return true; } + else + wxLogApiError("GetWebView2BrowserVersionInfo", hr); return false; } @@ -157,7 +160,12 @@ bool wxWebViewEdge::Create(wxWindow* parent, .Get()); return S_OK; }).Get()); - return SUCCEEDED(hr); + if (FAILED(hr)) + { + wxLogApiError("CreateWebView2EnvironmentWithDetails", hr); + } + else + return true; } void wxWebViewEdge::InitWebViewCtrl() @@ -676,7 +684,13 @@ bool wxWebViewEdge::RunScriptSync(const wxString& javascript, wxString* output) while (!scriptExecuted) wxYield(); - return SUCCEEDED(hr); + if (FAILED(hr)) + { + wxLogApiError("ExecuteScript", hr); + return false; + } + else + return true; } bool wxWebViewEdge::RunScript(const wxString& javascript, wxString* output) From bbde6e2e889c2ae8dee36bc479febf91d82614a9 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 21:23:37 +0100 Subject: [PATCH 22/48] Move wxWebViewEdge implementation to private header --- include/wx/msw/private/webview_edge.h | 61 +++ include/wx/msw/webview_edge.h | 37 +- src/msw/webview_edge.cpp | 549 ++++++++++++++------------ 3 files changed, 354 insertions(+), 293 deletions(-) create mode 100644 include/wx/msw/private/webview_edge.h diff --git a/include/wx/msw/private/webview_edge.h b/include/wx/msw/private/webview_edge.h new file mode 100644 index 0000000000..3ef445ead2 --- /dev/null +++ b/include/wx/msw/private/webview_edge.h @@ -0,0 +1,61 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: include/wx/msw/webview_edge.h +// Purpose: wxMSW Edge Chromium wxWebView backend private classes +// Author: Tobias Taschner +// Created: 2020-01-15 +// Copyright: (c) 2020 wxWidgets development team +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef wxWebViewEdge_PRIVATE_H +#define wxWebViewEdge_PRIVATE_H + +#include "wx/dynlib.h" +#include "wx/msw/private/comptr.h" + +#include + +class wxWebViewEdgeImpl +{ +public: + explicit wxWebViewEdgeImpl(wxWebViewEdge* webview); + ~wxWebViewEdgeImpl(); + + bool Create(); + + wxWebViewEdge* m_ctrl; + + wxCOMPtr m_webViewEnvironment; + wxCOMPtr m_webView; + + bool m_initialized; + bool m_isBusy; + wxString m_pendingURL; + + EventRegistrationToken m_navigationStartingToken = { }; + EventRegistrationToken m_navigationCompletedToken = { }; + EventRegistrationToken m_newWindowRequestedToken = { }; + EventRegistrationToken m_documentStateChangedToken = { }; + + wxVector > m_historyList; + int m_historyPosition; + bool m_historyLoadingFromList; + bool m_historyEnabled; + + void InitWebViewCtrl(); + + void UpdateBounds(); + + IWebView2Settings2* GetSettings(); + + static int ms_isAvailable; + static wxDynamicLibrary ms_loaderDll; + + static bool Initialize(); + + static void Uninitalize(); + + friend class wxWebViewEdgeModule; +}; + +#endif // wxWebViewEdge_PRIVATE_H diff --git a/include/wx/msw/webview_edge.h b/include/wx/msw/webview_edge.h index bf41a48745..55c0dbd044 100644 --- a/include/wx/msw/webview_edge.h +++ b/include/wx/msw/webview_edge.h @@ -15,12 +15,9 @@ #if wxUSE_WEBVIEW && wxUSE_WEBVIEW_EDGE && defined(__WXMSW__) #include "wx/control.h" -#include "wx/dynlib.h" #include "wx/webview.h" -#include "wx/msw/private/comptr.h" - -#include +class wxWebViewEdgeImpl; class WXDLLIMPEXP_WEBVIEW wxWebViewEdge : public wxWebView { @@ -118,7 +115,7 @@ public: virtual void RegisterHandler(wxSharedPtr handler) wxOVERRIDE; - virtual void* GetNativeBackend() const wxOVERRIDE { return m_webView; } + virtual void* GetNativeBackend() const wxOVERRIDE; // ---- Edge-specific methods @@ -128,40 +125,12 @@ protected: virtual void DoSetPage(const wxString& html, const wxString& baseUrl) wxOVERRIDE; private: - bool m_initialized; - bool m_isBusy; - wxString m_pendingURL; - - wxCOMPtr m_webViewEnvironment; - wxCOMPtr m_webView; - - EventRegistrationToken m_navigationStartingToken = { }; - EventRegistrationToken m_navigationCompletedToken = { }; - EventRegistrationToken m_newWindowRequestedToken = { }; - EventRegistrationToken m_documentStateChangedToken = { }; + wxWebViewEdgeImpl* m_impl; void OnSize(wxSizeEvent& event); - void UpdateBounds(); - - void InitWebViewCtrl(); - bool RunScriptSync(const wxString& javascript, wxString* output = NULL); - static int ms_isAvailable; - static wxDynamicLibrary ms_loaderDll; - - static bool Initialize(); - - static void Uninitalize(); - - friend class wxWebViewEdgeModule; - - wxVector > m_historyList; - int m_historyPosition; - bool m_historyLoadingFromList; - bool m_historyEnabled; - wxDECLARE_DYNAMIC_CLASS(wxWebViewEdge); }; diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index f7078f85b4..b52ad5680c 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -23,6 +23,7 @@ #include "wx/stdpaths.h" #include "wx/thread.h" #include "wx/private/jsscriptwrapper.h" +#include "wx/msw/private/webview_edge.h" #include @@ -36,7 +37,6 @@ wxIMPLEMENT_DYNAMIC_CLASS(wxWebViewEdge, wxWebView); event.SetInt(wxerror); \ break; -int wxWebViewEdge::ms_isAvailable = -1; // WebView2Loader typedefs typedef HRESULT (__stdcall *CreateWebView2EnvironmentWithDetails_t)( PCWSTR browserExecutableFolder, @@ -50,22 +50,65 @@ typedef HRESULT(__stdcall *GetWebView2BrowserVersionInfo_t)( CreateWebView2EnvironmentWithDetails_t wxCreateWebView2EnvironmentWithDetails = NULL; GetWebView2BrowserVersionInfo_t wxGetWebView2BrowserVersionInfo = NULL; -wxDynamicLibrary wxWebViewEdge::ms_loaderDll; +int wxWebViewEdgeImpl::ms_isAvailable = -1; +wxDynamicLibrary wxWebViewEdgeImpl::ms_loaderDll; -bool wxWebViewEdge::IsAvailable() +wxWebViewEdgeImpl::wxWebViewEdgeImpl(wxWebViewEdge* webview): + m_ctrl(webview) { - if (ms_isAvailable == -1) - { - if (!Initialize()) - ms_isAvailable = 0; - else - ms_isAvailable = 1; - } - return ms_isAvailable == 1; } -bool wxWebViewEdge::Initialize() +wxWebViewEdgeImpl::~wxWebViewEdgeImpl() +{ + if (m_webView) + { + m_webView->remove_NavigationCompleted(m_navigationCompletedToken); + m_webView->remove_NavigationStarting(m_navigationStartingToken); + m_webView->remove_DocumentStateChanged(m_documentStateChangedToken); + m_webView->remove_NewWindowRequested(m_newWindowRequestedToken); + } +} + +bool wxWebViewEdgeImpl::Create() +{ + m_initialized = false; + m_isBusy = false; + + m_historyLoadingFromList = false; + m_historyEnabled = true; + m_historyPosition = -1; + + wxString userDataPath = wxStandardPaths::Get().GetUserLocalDataDir(); + + HRESULT hr = wxCreateWebView2EnvironmentWithDetails( + nullptr, + userDataPath.wc_str(), + nullptr, + Callback( + [this](HRESULT WXUNUSED(result), IWebView2Environment* environment) -> HRESULT + { + environment->QueryInterface(IID_PPV_ARGS(&m_webViewEnvironment)); + m_webViewEnvironment->CreateWebView( + m_ctrl->GetHWND(), Callback( + [this](HRESULT WXUNUSED(result), IWebView2WebView* webview) -> HRESULT + { + webview->QueryInterface(IID_PPV_ARGS(&m_webView)); + InitWebViewCtrl(); + return S_OK; + }).Get()); + return S_OK; + }).Get()); + if (FAILED(hr)) + { + wxLogApiError("CreateWebView2EnvironmentWithDetails", hr); + return false; + } + else + return true; +} + +bool wxWebViewEdgeImpl::Initialize() { if (!ms_loaderDll.Load("WebView2Loader.dll", wxDL_DEFAULT | wxDL_QUIET)) return false; @@ -90,7 +133,7 @@ bool wxWebViewEdge::Initialize() return false; } -void wxWebViewEdge::Uninitalize() +void wxWebViewEdgeImpl::Uninitalize() { if (ms_isAvailable == 1) { @@ -99,15 +142,179 @@ void wxWebViewEdge::Uninitalize() } } +void wxWebViewEdgeImpl::UpdateBounds() +{ + RECT r; + wxCopyRectToRECT(m_ctrl->GetClientRect(), r); + if (m_webView) + m_webView->put_Bounds(r); +} + +void wxWebViewEdgeImpl::InitWebViewCtrl() +{ + m_initialized = true; + UpdateBounds(); + + // Connect and handle the various WebView events + + m_webView->add_NavigationStarting( + Callback( + [this](IWebView2WebView* WXUNUSED(sender), IWebView2NavigationStartingEventArgs* args) -> HRESULT + { + m_isBusy = true; + wxString evtURL; + PWSTR uri; + if (SUCCEEDED(args->get_Uri(&uri))) + evtURL = wxString(uri); + wxWebViewEvent event(wxEVT_WEBVIEW_NAVIGATING, m_ctrl->GetId(), evtURL, wxString()); + event.SetEventObject(m_ctrl); + m_ctrl->HandleWindowEvent(event); + + if (!event.IsAllowed()) + args->put_Cancel(true); + + return S_OK; + }) + .Get(), &m_navigationStartingToken); + + m_webView->add_DocumentStateChanged( + Callback( + [this](IWebView2WebView* sender, IWebView2DocumentStateChangedEventArgs* WXUNUSED(args)) -> HRESULT + { + PWSTR uri; + sender->get_Source(&uri); + wxString evtURL(uri); + if (evtURL.Cmp(L"about:blank") == 0) + { + evtURL = L""; + } + + // AddPendingEvent(wxWebViewEvent(wxEVT_WEBVIEW_NAVIGATED, GetId(), uri, wxString())); + // SetWindowText(m_toolbar->addressBarWindow, uri.get()); + return S_OK; + }) + .Get(), + &m_documentStateChangedToken); + + m_webView->add_NavigationCompleted( + Callback( + [this](IWebView2WebView* sender, IWebView2NavigationCompletedEventArgs* args) -> HRESULT + { + BOOL isSuccess; + if (FAILED(args->get_IsSuccess(&isSuccess))) + isSuccess = false; + m_isBusy = false; + PWSTR _uri; + sender->get_Source(&_uri); + wxString uri(_uri); + + if (!isSuccess) + { + WEBVIEW2_WEB_ERROR_STATUS status; + + wxWebViewEvent event(wxEVT_WEBVIEW_ERROR, m_ctrl->GetId(), uri, wxString()); + event.SetEventObject(m_ctrl); + + if (SUCCEEDED(args->get_WebErrorStatus(&status))) + { + switch (status) + { + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNKNOWN, wxWEBVIEW_NAV_ERR_OTHER) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_TIMEOUT, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED, wxWEBVIEW_NAV_ERR_USER_CANCELLED) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED, wxWEBVIEW_NAV_ERR_OTHER) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR, wxWEBVIEW_NAV_ERR_OTHER) + } + } + m_ctrl->HandleWindowEvent(event); + } + else + { + wxWebViewEvent evt(wxEVT_WEBVIEW_NAVIGATED, m_ctrl->GetId(), uri, wxString()); + m_ctrl->HandleWindowEvent(evt); + if (m_historyEnabled && !m_historyLoadingFromList && + (uri == m_ctrl->GetCurrentURL()) || + (m_ctrl->GetCurrentURL().substr(0, 4) == "file" && + wxFileName::URLToFileName(m_ctrl->GetCurrentURL()).GetFullPath() == uri)) + { + // If we are not at the end of the list, then erase everything + // between us and the end before adding the new page + if (m_historyPosition != static_cast(m_historyList.size()) - 1) + { + m_historyList.erase(m_historyList.begin() + m_historyPosition + 1, + m_historyList.end()); + } + wxSharedPtr item(new wxWebViewHistoryItem(uri, m_ctrl->GetCurrentTitle())); + m_historyList.push_back(item); + m_historyPosition++; + } + //Reset as we are done now + m_historyLoadingFromList = false; + } + return S_OK; + }) + .Get(), &m_navigationCompletedToken); + m_webView->add_NewWindowRequested( + Callback( + [this](IWebView2WebView* WXUNUSED(sender), IWebView2NewWindowRequestedEventArgs* args) -> HRESULT + { + PWSTR uri; + args->get_Uri(&uri); + wxString evtURL(uri); + wxWebViewEvent evt(wxEVT_WEBVIEW_NEWWINDOW, m_ctrl->GetId(), evtURL, wxString()); + m_ctrl->HandleWindowEvent(evt); + args->put_Handled(true); + return S_OK; + }).Get(), &m_newWindowRequestedToken); + m_ctrl->LoadURL(m_pendingURL); +} + +IWebView2Settings2* wxWebViewEdgeImpl::GetSettings() +{ + IWebView2Settings* settings; + HRESULT hr = m_webView->get_Settings(&settings); + if (FAILED(hr)) + { + wxLogApiError("WebView2::get_Settings", hr); + return NULL; + } + + IWebView2Settings2* settings2; + hr = settings->QueryInterface(IID_PPV_ARGS(&settings2)); + if (FAILED(hr)) + return NULL; + + return settings2; +} + +bool wxWebViewEdge::IsAvailable() +{ + if (wxWebViewEdgeImpl::ms_isAvailable == -1) + { + if (!wxWebViewEdgeImpl::Initialize()) + wxWebViewEdgeImpl::ms_isAvailable = 0; + else + wxWebViewEdgeImpl::ms_isAvailable = 1; + } + + return wxWebViewEdgeImpl::ms_isAvailable == 1; +} + wxWebViewEdge::~wxWebViewEdge() { - if (m_webView) - { - m_webView->remove_NavigationCompleted(m_navigationCompletedToken); - m_webView->remove_NavigationStarting(m_navigationStartingToken); - m_webView->remove_DocumentStateChanged(m_documentStateChangedToken); - m_webView->remove_NewWindowRequested(m_newWindowRequestedToken); - } + delete m_impl; } bool wxWebViewEdge::Create(wxWindow* parent, @@ -118,13 +325,6 @@ bool wxWebViewEdge::Create(wxWindow* parent, long style, const wxString& name) { - m_initialized = false; - m_isBusy = false; - - m_historyLoadingFromList = false; - m_historyEnabled = true; - m_historyPosition = -1; - if (!IsAvailable()) return false; @@ -134,207 +334,46 @@ bool wxWebViewEdge::Create(wxWindow* parent, return false; } - m_pendingURL = url; - + m_impl = new wxWebViewEdgeImpl(this); + if (!m_impl->Create()) + return false; Bind(wxEVT_SIZE, &wxWebViewEdge::OnSize, this); - wxString userDataPath = wxStandardPaths::Get().GetUserLocalDataDir(); - - HRESULT hr = wxCreateWebView2EnvironmentWithDetails( - nullptr, - userDataPath.wc_str(), - nullptr, - Callback( - [this](HRESULT WXUNUSED(result), IWebView2Environment* environment) -> HRESULT - { - environment->QueryInterface(IID_PPV_ARGS(&m_webViewEnvironment)); - m_webViewEnvironment->CreateWebView( - GetHWND(), Callback( - [this](HRESULT WXUNUSED(result), IWebView2WebView* webview) -> HRESULT - { - webview->QueryInterface(IID_PPV_ARGS(&m_webView)); - UpdateBounds(); - InitWebViewCtrl(); - return S_OK; - }) - .Get()); - return S_OK; - }).Get()); - if (FAILED(hr)) - { - wxLogApiError("CreateWebView2EnvironmentWithDetails", hr); - } - else - return true; -} - -void wxWebViewEdge::InitWebViewCtrl() -{ - m_initialized = true; - UpdateBounds(); - - // Connect and handle the various WebView events - - m_webView->add_NavigationStarting( - Callback( - [this](IWebView2WebView* WXUNUSED(sender), IWebView2NavigationStartingEventArgs* args) -> HRESULT - { - m_isBusy = true; - wxString evtURL; - PWSTR uri; - if (SUCCEEDED(args->get_Uri(&uri))) - evtURL = wxString(uri); - wxWebViewEvent event(wxEVT_WEBVIEW_NAVIGATING, GetId(), evtURL, wxString()); - event.SetEventObject(this); - HandleWindowEvent(event); - - if (!event.IsAllowed()) - args->put_Cancel(true); - - return S_OK; - }) - .Get(), &m_navigationStartingToken); - - m_webView->add_DocumentStateChanged( - Callback( - [this](IWebView2WebView* sender, IWebView2DocumentStateChangedEventArgs* WXUNUSED(args)) -> HRESULT - { - PWSTR uri; - sender->get_Source(&uri); - wxString evtURL(uri); - if (evtURL.Cmp(L"about:blank") == 0) - { - evtURL = L""; - } - - // AddPendingEvent(wxWebViewEvent(wxEVT_WEBVIEW_NAVIGATED, GetId(), uri, wxString())); - // SetWindowText(m_toolbar->addressBarWindow, uri.get()); - return S_OK; - }) - .Get(), - &m_documentStateChangedToken); - - m_webView->add_NavigationCompleted( - Callback( - [this](IWebView2WebView* sender, IWebView2NavigationCompletedEventArgs* args) -> HRESULT - { - BOOL isSuccess; - if (FAILED(args->get_IsSuccess(&isSuccess))) - isSuccess = false; - m_isBusy = false; - PWSTR _uri; - sender->get_Source(&_uri); - wxString uri(_uri); - - if (!isSuccess) - { - WEBVIEW2_WEB_ERROR_STATUS status; - - wxWebViewEvent event(wxEVT_WEBVIEW_ERROR, GetId(), uri, wxString()); - event.SetEventObject(this); - - if (SUCCEEDED(args->get_WebErrorStatus(&status))) - { - switch (status) - { - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNKNOWN, wxWEBVIEW_NAV_ERR_OTHER) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_TIMEOUT, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED, wxWEBVIEW_NAV_ERR_USER_CANCELLED) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED, wxWEBVIEW_NAV_ERR_OTHER) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR, wxWEBVIEW_NAV_ERR_OTHER) - } - } - HandleWindowEvent(event); - } - else - { - AddPendingEvent(wxWebViewEvent(wxEVT_WEBVIEW_NAVIGATED, GetId(), uri, wxString())); - if (m_historyEnabled && !m_historyLoadingFromList && - (uri == GetCurrentURL()) || - (GetCurrentURL().substr(0, 4) == "file" && - wxFileName::URLToFileName(GetCurrentURL()).GetFullPath() == uri)) - { - // If we are not at the end of the list, then erase everything - // between us and the end before adding the new page - if (m_historyPosition != static_cast(m_historyList.size()) - 1) - { - m_historyList.erase(m_historyList.begin() + m_historyPosition + 1, - m_historyList.end()); - } - wxSharedPtr item(new wxWebViewHistoryItem(uri, GetCurrentTitle())); - m_historyList.push_back(item); - m_historyPosition++; - } - //Reset as we are done now - m_historyLoadingFromList = false; - } - return S_OK; - }) - .Get(), &m_navigationCompletedToken); - m_webView->add_NewWindowRequested( - Callback( - [this](IWebView2WebView* WXUNUSED(sender), IWebView2NewWindowRequestedEventArgs* args) -> HRESULT - { - PWSTR uri; - args->get_Uri(&uri); - wxString evtURL(uri); - AddPendingEvent(wxWebViewEvent(wxEVT_WEBVIEW_NEWWINDOW, GetId(), evtURL, wxString())); - args->put_Handled(true); - return S_OK; - }).Get(), &m_newWindowRequestedToken); - LoadURL(m_pendingURL); + LoadURL(url); + return true; } void wxWebViewEdge::OnSize(wxSizeEvent& event) { - UpdateBounds(); + m_impl->UpdateBounds(); event.Skip(); } -void wxWebViewEdge::UpdateBounds() -{ - RECT r; - wxCopyRectToRECT(GetClientRect(), r); - if (m_webView) - m_webView->put_Bounds(r); -} - void wxWebViewEdge::LoadURL(const wxString& url) { - if (!m_webView) + if (!m_impl->m_webView) { - m_pendingURL = url; + m_impl->m_pendingURL = url; return; } - if (FAILED(m_webView->Navigate(url.wc_str()))) - wxLogError("Could not navigate to URL"); + HRESULT hr = m_impl->m_webView->Navigate(url.wc_str()); + if (FAILED(hr)) + wxLogApiError("WebView2::Navigate", hr); } void wxWebViewEdge::LoadHistoryItem(wxSharedPtr item) { int pos = -1; - for (unsigned int i = 0; i < m_historyList.size(); i++) + for (unsigned int i = 0; i < m_impl->m_historyList.size(); i++) { //We compare the actual pointers to find the correct item - if (m_historyList[i].get() == item.get()) + if (m_impl->m_historyList[i].get() == item.get()) pos = i; } - // TODO: wxASSERT_MSG(pos != static_cast(m_impl->m_historyList.size()), "invalid history item"); - m_historyLoadingFromList = true; + wxASSERT_MSG(pos != static_cast(m_impl->m_historyList.size()), "invalid history item"); + m_impl->m_historyLoadingFromList = true; LoadURL(item->GetUrl()); - m_historyPosition = pos; + m_impl->m_historyPosition = pos; } wxVector > wxWebViewEdge::GetBackwardHistory() @@ -342,9 +381,9 @@ wxVector > wxWebViewEdge::GetBackwardHistory() wxVector > backhist; //As we don't have std::copy or an iterator constructor in the wxwidgets //native vector we construct it by hand - for (int i = 0; i < m_historyPosition; i++) + for (int i = 0; i < m_impl->m_historyPosition; i++) { - backhist.push_back(m_historyList[i]); + backhist.push_back(m_impl->m_historyList[i]); } return backhist; } @@ -354,62 +393,62 @@ wxVector > wxWebViewEdge::GetForwardHistory() wxVector > forwardhist; //As we don't have std::copy or an iterator constructor in the wxwidgets //native vector we construct it by hand - for (int i = m_historyPosition + 1; i < static_cast(m_historyList.size()); i++) + for (int i = m_impl->m_historyPosition + 1; i < static_cast(m_impl->m_historyList.size()); i++) { - forwardhist.push_back(m_historyList[i]); + forwardhist.push_back(m_impl->m_historyList[i]); } return forwardhist; } bool wxWebViewEdge::CanGoForward() const { - if (m_historyEnabled) - return m_historyPosition != static_cast(m_historyList.size()) - 1; + if (m_impl->m_historyEnabled) + return m_impl->m_historyPosition != static_cast(m_impl->m_historyList.size()) - 1; else return false; } bool wxWebViewEdge::CanGoBack() const { - if (m_historyEnabled) - return m_historyPosition > 0; + if (m_impl->m_historyEnabled) + return m_impl->m_historyPosition > 0; else return false; } void wxWebViewEdge::GoBack() { - LoadHistoryItem(m_historyList[m_historyPosition - 1]); + LoadHistoryItem(m_impl->m_historyList[m_impl->m_historyPosition - 1]); } void wxWebViewEdge::GoForward() { - LoadHistoryItem(m_historyList[m_historyPosition + 1]); + LoadHistoryItem(m_impl->m_historyList[m_impl->m_historyPosition + 1]); } void wxWebViewEdge::ClearHistory() { - m_historyList.clear(); - m_historyPosition = -1; + m_impl->m_historyList.clear(); + m_impl->m_historyPosition = -1; } void wxWebViewEdge::EnableHistory(bool enable) { - m_historyEnabled = enable; - m_historyList.clear(); - m_historyPosition = -1; + m_impl->m_historyEnabled = enable; + m_impl->m_historyList.clear(); + m_impl->m_historyPosition = -1; } void wxWebViewEdge::Stop() { - if (m_webView) - m_webView->Stop(); + if (m_impl->m_webView) + m_impl->m_webView->Stop(); } void wxWebViewEdge::Reload(wxWebViewReloadFlags WXUNUSED(flags)) { - if (m_webView) - m_webView->Reload(); + if (m_impl->m_webView) + m_impl->m_webView->Reload(); } wxString wxWebViewEdge::GetPageSource() const @@ -424,13 +463,13 @@ wxString wxWebViewEdge::GetPageText() const bool wxWebViewEdge::IsBusy() const { - return m_isBusy; + return m_impl->m_isBusy; } wxString wxWebViewEdge::GetCurrentURL() const { LPWSTR uri; - if (m_webView && SUCCEEDED(m_webView->get_Source(&uri))) + if (m_impl->m_webView && SUCCEEDED(m_impl->m_webView->get_Source(&uri))) return wxString(uri); else return wxString(); @@ -439,7 +478,7 @@ wxString wxWebViewEdge::GetCurrentURL() const wxString wxWebViewEdge::GetCurrentTitle() const { PWSTR title; - if (m_webView && SUCCEEDED(m_webView->get_DocumentTitle(&title))) + if (m_impl->m_webView && SUCCEEDED(m_impl->m_webView->get_DocumentTitle(&title))) return wxString(title); else return wxString(); @@ -468,7 +507,7 @@ void wxWebViewEdge::Print() wxWebViewZoom wxWebViewEdge::GetZoom() const { double old_zoom_factor = 0.0f; - m_webView->get_ZoomFactor(&old_zoom_factor); + m_impl->m_webView->get_ZoomFactor(&old_zoom_factor); if (old_zoom_factor > 1.7f) return wxWEBVIEW_ZOOM_LARGEST; if (old_zoom_factor > 1.3f) @@ -483,7 +522,7 @@ wxWebViewZoom wxWebViewEdge::GetZoom() const void wxWebViewEdge::SetZoom(wxWebViewZoom zoom) { double old_zoom_factor = 0.0f; - m_webView->get_ZoomFactor(&old_zoom_factor); + m_impl->m_webView->get_ZoomFactor(&old_zoom_factor); double zoom_factor = 1.0f; switch (zoom) { @@ -505,7 +544,7 @@ void wxWebViewEdge::SetZoom(wxWebViewZoom zoom) default: break; } - m_webView->put_ZoomFactor(zoom_factor); + m_impl->m_webView->put_ZoomFactor(zoom_factor); } bool wxWebViewEdge::CanCut() const @@ -606,49 +645,36 @@ void wxWebViewEdge::ClearSelection() void wxWebViewEdge::EnableContextMenu(bool enable) { - wxCOMPtr settings; - if (SUCCEEDED(m_webView->get_Settings(&settings))) - { - wxCOMPtr settings2; - if (SUCCEEDED(settings->QueryInterface(IID_PPV_ARGS(&settings2)))) - { - settings2->put_AreDefaultContextMenusEnabled(enable); - } - } + wxCOMPtr settings(m_impl->GetSettings()); + if (settings) + settings->put_AreDefaultContextMenusEnabled(enable); } bool wxWebViewEdge::IsContextMenuEnabled() const { - wxCOMPtr settings; - if (SUCCEEDED(m_webView->get_Settings(&settings))) + wxCOMPtr settings(m_impl->GetSettings()); + if (settings) { - wxCOMPtr settings2; - if (SUCCEEDED(settings->QueryInterface(IID_PPV_ARGS(&settings2)))) - { - BOOL menusEnabled = TRUE; - settings2->get_AreDefaultContextMenusEnabled(&menusEnabled); + BOOL menusEnabled = TRUE; + settings->get_AreDefaultContextMenusEnabled(&menusEnabled); - if (!menusEnabled) - return false; - } + if (!menusEnabled) + return false; } - return true; } void wxWebViewEdge::EnableDevTools(bool enable) { - wxCOMPtr settings; - if (SUCCEEDED(m_webView->get_Settings(&settings))) - { + wxCOMPtr settings(m_impl->GetSettings()); + if (settings) settings->put_AreDevToolsEnabled(enable); - } } bool wxWebViewEdge::IsAccessToDevToolsEnabled() const { - wxCOMPtr settings; - if (SUCCEEDED(m_webView->get_Settings(&settings))) + wxCOMPtr settings(m_impl->GetSettings()); + if (settings) { BOOL devToolsEnabled = TRUE; settings->get_AreDevToolsEnabled(&devToolsEnabled); @@ -660,11 +686,16 @@ bool wxWebViewEdge::IsAccessToDevToolsEnabled() const return true; } +void* wxWebViewEdge::GetNativeBackend() const +{ + return m_impl->m_webView; +} + bool wxWebViewEdge::RunScriptSync(const wxString& javascript, wxString* output) { bool scriptExecuted = false; - HRESULT hr = m_webView->ExecuteScript(javascript.wc_str(), Callback( + HRESULT hr = m_impl->m_webView->ExecuteScript(javascript.wc_str(), Callback( [&scriptExecuted, output](HRESULT error, PCWSTR result) -> HRESULT { if (error == S_OK) @@ -729,8 +760,8 @@ void wxWebViewEdge::RegisterHandler(wxSharedPtr handler) void wxWebViewEdge::DoSetPage(const wxString& html, const wxString& WXUNUSED(baseUrl)) { - if (m_webView) - m_webView->NavigateToString(html.wc_str()); + if (m_impl->m_webView) + m_impl->m_webView->NavigateToString(html.wc_str()); } // ---------------------------------------------------------------------------- @@ -751,7 +782,7 @@ public: virtual void OnExit() wxOVERRIDE { - wxWebViewEdge::Uninitalize(); + wxWebViewEdgeImpl::Uninitalize(); } private: From 964992e7ffbe4fa82ff92f37693e7b28ac17b60b Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 21:51:58 +0100 Subject: [PATCH 23/48] Move WebView2 event handling from lambdas to functions --- include/wx/msw/private/webview_edge.h | 12 +- src/msw/webview_edge.cpp | 261 +++++++++++++------------- 2 files changed, 138 insertions(+), 135 deletions(-) diff --git a/include/wx/msw/private/webview_edge.h b/include/wx/msw/private/webview_edge.h index 3ef445ead2..8793834d7f 100644 --- a/include/wx/msw/private/webview_edge.h +++ b/include/wx/msw/private/webview_edge.h @@ -32,18 +32,24 @@ public: bool m_isBusy; wxString m_pendingURL; + // WebView Events tokens EventRegistrationToken m_navigationStartingToken = { }; EventRegistrationToken m_navigationCompletedToken = { }; EventRegistrationToken m_newWindowRequestedToken = { }; - EventRegistrationToken m_documentStateChangedToken = { }; + + // WebView Event handlers + HRESULT OnNavigationStarting(IWebView2WebView* sender, IWebView2NavigationStartingEventArgs* args); + HRESULT OnNavigationCompleted(IWebView2WebView* sender, IWebView2NavigationCompletedEventArgs* args); + HRESULT OnNewWindowRequested(IWebView2WebView* sender, IWebView2NewWindowRequestedEventArgs* args); + + HRESULT OnEnvironmentCreated(HRESULT result, IWebView2Environment* environment); + HRESULT OnWebViewCreated(HRESULT result, IWebView2WebView* webview); wxVector > m_historyList; int m_historyPosition; bool m_historyLoadingFromList; bool m_historyEnabled; - void InitWebViewCtrl(); - void UpdateBounds(); IWebView2Settings2* GetSettings(); diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index b52ad5680c..0eeabb3fad 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -65,7 +65,6 @@ wxWebViewEdgeImpl::~wxWebViewEdgeImpl() { m_webView->remove_NavigationCompleted(m_navigationCompletedToken); m_webView->remove_NavigationStarting(m_navigationStartingToken); - m_webView->remove_DocumentStateChanged(m_documentStateChangedToken); m_webView->remove_NewWindowRequested(m_newWindowRequestedToken); } } @@ -85,20 +84,8 @@ bool wxWebViewEdgeImpl::Create() nullptr, userDataPath.wc_str(), nullptr, - Callback( - [this](HRESULT WXUNUSED(result), IWebView2Environment* environment) -> HRESULT - { - environment->QueryInterface(IID_PPV_ARGS(&m_webViewEnvironment)); - m_webViewEnvironment->CreateWebView( - m_ctrl->GetHWND(), Callback( - [this](HRESULT WXUNUSED(result), IWebView2WebView* webview) -> HRESULT - { - webview->QueryInterface(IID_PPV_ARGS(&m_webView)); - InitWebViewCtrl(); - return S_OK; - }).Get()); - return S_OK; - }).Get()); + Callback(this, + &wxWebViewEdgeImpl::OnEnvironmentCreated).Get()); if (FAILED(hr)) { wxLogApiError("CreateWebView2EnvironmentWithDetails", hr); @@ -108,6 +95,17 @@ bool wxWebViewEdgeImpl::Create() return true; } +HRESULT wxWebViewEdgeImpl::OnEnvironmentCreated( + HRESULT WXUNUSED(result), IWebView2Environment* environment) +{ + environment->QueryInterface(IID_PPV_ARGS(&m_webViewEnvironment)); + m_webViewEnvironment->CreateWebView( + m_ctrl->GetHWND(), + Callback( + this, &wxWebViewEdgeImpl::OnWebViewCreated).Get()); + return S_OK; +} + bool wxWebViewEdgeImpl::Initialize() { if (!ms_loaderDll.Load("WebView2Loader.dll", wxDL_DEFAULT | wxDL_QUIET)) @@ -150,135 +148,134 @@ void wxWebViewEdgeImpl::UpdateBounds() m_webView->put_Bounds(r); } -void wxWebViewEdgeImpl::InitWebViewCtrl() +HRESULT wxWebViewEdgeImpl::OnNavigationStarting(IWebView2WebView* WXUNUSED(sender), IWebView2NavigationStartingEventArgs* args) { + m_isBusy = true; + wxString evtURL; + PWSTR uri; + if (SUCCEEDED(args->get_Uri(&uri))) + evtURL = wxString(uri); + wxWebViewEvent event(wxEVT_WEBVIEW_NAVIGATING, m_ctrl->GetId(), evtURL, wxString()); + event.SetEventObject(m_ctrl); + m_ctrl->HandleWindowEvent(event); + + if (!event.IsAllowed()) + args->put_Cancel(true); + + return S_OK; +} + +HRESULT wxWebViewEdgeImpl::OnNavigationCompleted(IWebView2WebView* WXUNUSED(sender), IWebView2NavigationCompletedEventArgs* args) +{ + BOOL isSuccess; + if (FAILED(args->get_IsSuccess(&isSuccess))) + isSuccess = false; + m_isBusy = false; + wxString uri = m_ctrl->GetCurrentURL(); + + if (!isSuccess) + { + WEBVIEW2_WEB_ERROR_STATUS status; + + wxWebViewEvent event(wxEVT_WEBVIEW_ERROR, m_ctrl->GetId(), uri, wxString()); + event.SetEventObject(m_ctrl); + + if (SUCCEEDED(args->get_WebErrorStatus(&status))) + { + switch (status) + { + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNKNOWN, wxWEBVIEW_NAV_ERR_OTHER) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID, wxWEBVIEW_NAV_ERR_CERTIFICATE) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_TIMEOUT, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED, wxWEBVIEW_NAV_ERR_CONNECTION) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED, wxWEBVIEW_NAV_ERR_USER_CANCELLED) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED, wxWEBVIEW_NAV_ERR_OTHER) + WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR, wxWEBVIEW_NAV_ERR_OTHER) + } + } + m_ctrl->HandleWindowEvent(event); + } + else + { + wxWebViewEvent evt(wxEVT_WEBVIEW_NAVIGATED, m_ctrl->GetId(), uri, wxString()); + m_ctrl->HandleWindowEvent(evt); + if (m_historyEnabled && !m_historyLoadingFromList && + (uri == m_ctrl->GetCurrentURL()) || + (m_ctrl->GetCurrentURL().substr(0, 4) == "file" && + wxFileName::URLToFileName(m_ctrl->GetCurrentURL()).GetFullPath() == uri)) + { + // If we are not at the end of the list, then erase everything + // between us and the end before adding the new page + if (m_historyPosition != static_cast(m_historyList.size()) - 1) + { + m_historyList.erase(m_historyList.begin() + m_historyPosition + 1, + m_historyList.end()); + } + wxSharedPtr item(new wxWebViewHistoryItem(uri, m_ctrl->GetCurrentTitle())); + m_historyList.push_back(item); + m_historyPosition++; + } + //Reset as we are done now + m_historyLoadingFromList = false; + } + return S_OK; +} + +HRESULT wxWebViewEdgeImpl::OnNewWindowRequested(IWebView2WebView* WXUNUSED(sender), IWebView2NewWindowRequestedEventArgs* args) +{ + PWSTR uri; + args->get_Uri(&uri); + wxString evtURL(uri); + wxWebViewEvent evt(wxEVT_WEBVIEW_NEWWINDOW, m_ctrl->GetId(), evtURL, wxString()); + m_ctrl->HandleWindowEvent(evt); + args->put_Handled(true); + return S_OK; +} + +HRESULT wxWebViewEdgeImpl::OnWebViewCreated(HRESULT result, IWebView2WebView* webview) +{ + if (FAILED(result)) + { + wxLogApiError("WebView2::WebViewCreated", result); + return result; + } + + webview->QueryInterface(IID_PPV_ARGS(&m_webView)); + m_initialized = true; UpdateBounds(); // Connect and handle the various WebView events - m_webView->add_NavigationStarting( Callback( - [this](IWebView2WebView* WXUNUSED(sender), IWebView2NavigationStartingEventArgs* args) -> HRESULT - { - m_isBusy = true; - wxString evtURL; - PWSTR uri; - if (SUCCEEDED(args->get_Uri(&uri))) - evtURL = wxString(uri); - wxWebViewEvent event(wxEVT_WEBVIEW_NAVIGATING, m_ctrl->GetId(), evtURL, wxString()); - event.SetEventObject(m_ctrl); - m_ctrl->HandleWindowEvent(event); - - if (!event.IsAllowed()) - args->put_Cancel(true); - - return S_OK; - }) - .Get(), &m_navigationStartingToken); - - m_webView->add_DocumentStateChanged( - Callback( - [this](IWebView2WebView* sender, IWebView2DocumentStateChangedEventArgs* WXUNUSED(args)) -> HRESULT - { - PWSTR uri; - sender->get_Source(&uri); - wxString evtURL(uri); - if (evtURL.Cmp(L"about:blank") == 0) - { - evtURL = L""; - } - - // AddPendingEvent(wxWebViewEvent(wxEVT_WEBVIEW_NAVIGATED, GetId(), uri, wxString())); - // SetWindowText(m_toolbar->addressBarWindow, uri.get()); - return S_OK; - }) - .Get(), - &m_documentStateChangedToken); - + this, &wxWebViewEdgeImpl::OnNavigationStarting).Get(), + &m_navigationStartingToken); m_webView->add_NavigationCompleted( Callback( - [this](IWebView2WebView* sender, IWebView2NavigationCompletedEventArgs* args) -> HRESULT - { - BOOL isSuccess; - if (FAILED(args->get_IsSuccess(&isSuccess))) - isSuccess = false; - m_isBusy = false; - PWSTR _uri; - sender->get_Source(&_uri); - wxString uri(_uri); - - if (!isSuccess) - { - WEBVIEW2_WEB_ERROR_STATUS status; - - wxWebViewEvent event(wxEVT_WEBVIEW_ERROR, m_ctrl->GetId(), uri, wxString()); - event.SetEventObject(m_ctrl); - - if (SUCCEEDED(args->get_WebErrorStatus(&status))) - { - switch (status) - { - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNKNOWN, wxWEBVIEW_NAV_ERR_OTHER) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID, wxWEBVIEW_NAV_ERR_CERTIFICATE) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_TIMEOUT, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED, wxWEBVIEW_NAV_ERR_CONNECTION) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED, wxWEBVIEW_NAV_ERR_USER_CANCELLED) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED, wxWEBVIEW_NAV_ERR_OTHER) - WX_ERROR2_CASE(WEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR, wxWEBVIEW_NAV_ERR_OTHER) - } - } - m_ctrl->HandleWindowEvent(event); - } - else - { - wxWebViewEvent evt(wxEVT_WEBVIEW_NAVIGATED, m_ctrl->GetId(), uri, wxString()); - m_ctrl->HandleWindowEvent(evt); - if (m_historyEnabled && !m_historyLoadingFromList && - (uri == m_ctrl->GetCurrentURL()) || - (m_ctrl->GetCurrentURL().substr(0, 4) == "file" && - wxFileName::URLToFileName(m_ctrl->GetCurrentURL()).GetFullPath() == uri)) - { - // If we are not at the end of the list, then erase everything - // between us and the end before adding the new page - if (m_historyPosition != static_cast(m_historyList.size()) - 1) - { - m_historyList.erase(m_historyList.begin() + m_historyPosition + 1, - m_historyList.end()); - } - wxSharedPtr item(new wxWebViewHistoryItem(uri, m_ctrl->GetCurrentTitle())); - m_historyList.push_back(item); - m_historyPosition++; - } - //Reset as we are done now - m_historyLoadingFromList = false; - } - return S_OK; - }) - .Get(), &m_navigationCompletedToken); + this, &wxWebViewEdgeImpl::OnNavigationCompleted).Get(), + &m_navigationCompletedToken); m_webView->add_NewWindowRequested( Callback( - [this](IWebView2WebView* WXUNUSED(sender), IWebView2NewWindowRequestedEventArgs* args) -> HRESULT + this, &wxWebViewEdgeImpl::OnNewWindowRequested).Get(), + &m_newWindowRequestedToken); + + if (!m_pendingURL.empty()) { - PWSTR uri; - args->get_Uri(&uri); - wxString evtURL(uri); - wxWebViewEvent evt(wxEVT_WEBVIEW_NEWWINDOW, m_ctrl->GetId(), evtURL, wxString()); - m_ctrl->HandleWindowEvent(evt); - args->put_Handled(true); - return S_OK; - }).Get(), &m_newWindowRequestedToken); - m_ctrl->LoadURL(m_pendingURL); + m_ctrl->LoadURL(m_pendingURL); + m_pendingURL.clear(); + } + + return S_OK; } IWebView2Settings2* wxWebViewEdgeImpl::GetSettings() From f8e69e4166204cd27a0e7f63b87fd8a611b9d22f Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 22:13:12 +0100 Subject: [PATCH 24/48] Call CoTaskMemFree() on LPWSTR return by WebView2 API --- src/msw/webview_edge.cpp | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 0eeabb3fad..7dfbc4a292 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -26,6 +26,7 @@ #include "wx/msw/private/webview_edge.h" #include +#include using namespace Microsoft::WRL; @@ -123,7 +124,10 @@ bool wxWebViewEdgeImpl::Initialize() if (SUCCEEDED(hr)) { if (versionStr) + { + CoTaskMemFree(versionStr); return true; + } } else wxLogApiError("GetWebView2BrowserVersionInfo", hr); @@ -152,9 +156,12 @@ HRESULT wxWebViewEdgeImpl::OnNavigationStarting(IWebView2WebView* WXUNUSED(sende { m_isBusy = true; wxString evtURL; - PWSTR uri; + LPWSTR uri; if (SUCCEEDED(args->get_Uri(&uri))) + { evtURL = wxString(uri); + CoTaskMemFree(uri); + } wxWebViewEvent event(wxEVT_WEBVIEW_NAVIGATING, m_ctrl->GetId(), evtURL, wxString()); event.SetEventObject(m_ctrl); m_ctrl->HandleWindowEvent(event); @@ -233,9 +240,13 @@ HRESULT wxWebViewEdgeImpl::OnNavigationCompleted(IWebView2WebView* WXUNUSED(send HRESULT wxWebViewEdgeImpl::OnNewWindowRequested(IWebView2WebView* WXUNUSED(sender), IWebView2NewWindowRequestedEventArgs* args) { - PWSTR uri; - args->get_Uri(&uri); - wxString evtURL(uri); + LPWSTR uri; + wxString evtURL; + if (SUCCEEDED(args->get_Uri(&uri))) + { + evtURL = wxString(uri); + CoTaskMemFree(uri); + } wxWebViewEvent evt(wxEVT_WEBVIEW_NEWWINDOW, m_ctrl->GetId(), evtURL, wxString()); m_ctrl->HandleWindowEvent(evt); args->put_Handled(true); @@ -467,16 +478,24 @@ wxString wxWebViewEdge::GetCurrentURL() const { LPWSTR uri; if (m_impl->m_webView && SUCCEEDED(m_impl->m_webView->get_Source(&uri))) - return wxString(uri); + { + wxString uriStr(uri); + CoTaskMemFree(uri); + return uriStr; + } else return wxString(); } wxString wxWebViewEdge::GetCurrentTitle() const { - PWSTR title; + LPWSTR title; if (m_impl->m_webView && SUCCEEDED(m_impl->m_webView->get_DocumentTitle(&title))) - return wxString(title); + { + wxString titleStr(title); + CoTaskMemFree(title); + return titleStr; + } else return wxString(); } From b4764bbf4f41e9e2cb63086bb5beabdcbe873585 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 22:14:23 +0100 Subject: [PATCH 25/48] Fix typo in interface/wx/webview.h Co-Authored-By: PB --- interface/wx/webview.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/wx/webview.h b/interface/wx/webview.h index a6f81627bd..62b4857e11 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -300,7 +300,7 @@ public: backend can be used (it will be available if @c WebView2Loader.dll can be loaded and Edge (Chromium) is installed) - Make sure to add a note about using the WebView2 SDK to your application - documentation, as required by it's licence + documentation, as required by its licence @par wxWEBVIEW_WEBKIT (GTK) From f48770ee5a60ad4b7455f126bf7dae35a44cefe3 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Wed, 15 Jan 2020 22:21:16 +0100 Subject: [PATCH 26/48] Remove outdated code and comment --- src/msw/webview_edge.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 7dfbc4a292..d7504dffeb 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -386,21 +386,12 @@ void wxWebViewEdge::LoadHistoryItem(wxSharedPtr item) wxVector > wxWebViewEdge::GetBackwardHistory() { - wxVector > backhist; - //As we don't have std::copy or an iterator constructor in the wxwidgets - //native vector we construct it by hand - for (int i = 0; i < m_impl->m_historyPosition; i++) - { - backhist.push_back(m_impl->m_historyList[i]); - } - return backhist; + return m_impl->m_historyList; } wxVector > wxWebViewEdge::GetForwardHistory() { wxVector > forwardhist; - //As we don't have std::copy or an iterator constructor in the wxwidgets - //native vector we construct it by hand for (int i = m_impl->m_historyPosition + 1; i < static_cast(m_impl->m_historyList.size()); i++) { forwardhist.push_back(m_impl->m_historyList[i]); From 9f11abd8fc7a7db8fda2c1cfc5da5c01ef2d30de Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 09:38:35 +0100 Subject: [PATCH 27/48] Rename wxWebView::EnableDevTools() to EnableAccessToDevTools() --- include/wx/msw/webview_edge.h | 2 +- include/wx/webview.h | 2 +- interface/wx/webview.h | 2 +- samples/webview/webview.cpp | 2 +- src/msw/webview_edge.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/wx/msw/webview_edge.h b/include/wx/msw/webview_edge.h index 55c0dbd044..6a77065a3b 100644 --- a/include/wx/msw/webview_edge.h +++ b/include/wx/msw/webview_edge.h @@ -108,7 +108,7 @@ public: virtual void EnableContextMenu(bool enable = true) wxOVERRIDE; virtual bool IsContextMenuEnabled() const wxOVERRIDE; - virtual void EnableDevTools(bool enable = true) wxOVERRIDE; + virtual void EnableAccessToDevTools(bool enable = true) wxOVERRIDE; virtual bool IsAccessToDevToolsEnabled() const wxOVERRIDE; virtual bool RunScript(const wxString& javascript, wxString* output = NULL) wxOVERRIDE; diff --git a/include/wx/webview.h b/include/wx/webview.h index 2f20c788f1..9573ac99bf 100644 --- a/include/wx/webview.h +++ b/include/wx/webview.h @@ -159,7 +159,7 @@ public: { m_showMenu = enable; } - virtual void EnableDevTools(bool WXUNUSED(enable) = true) { } + virtual void EnableAccessToDevTools(bool WXUNUSED(enable) = true) { } virtual wxString GetCurrentTitle() const = 0; virtual wxString GetCurrentURL() const = 0; // TODO: handle choosing a frame when calling GetPageSource()? diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 62b4857e11..56e33a5679 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -712,7 +712,7 @@ public: @since 3.1.4 */ - virtual void EnableDevTools(bool enable = true); + virtual void EnableAccessToDevTools(bool enable = true); /** Returns @true if dev tools are available to the user. diff --git a/samples/webview/webview.cpp b/samples/webview/webview.cpp index 3dba5c8d5b..99ca20e5dd 100644 --- a/samples/webview/webview.cpp +++ b/samples/webview/webview.cpp @@ -716,7 +716,7 @@ void WebFrame::OnEnableContextMenu(wxCommandEvent& evt) void WebFrame::OnEnableDevTools(wxCommandEvent& evt) { - m_browser->EnableDevTools(evt.IsChecked()); + m_browser->EnableAccessToDevTools(evt.IsChecked()); } void WebFrame::OnFind(wxCommandEvent& WXUNUSED(evt)) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index d7504dffeb..a41c364476 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -671,7 +671,7 @@ bool wxWebViewEdge::IsContextMenuEnabled() const return true; } -void wxWebViewEdge::EnableDevTools(bool enable) +void wxWebViewEdge::EnableAccessToDevTools(bool enable) { wxCOMPtr settings(m_impl->GetSettings()); if (settings) From 5dae0333b30c60fec20ecae5f4aa8f3a1847ab9b Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 09:56:36 +0100 Subject: [PATCH 28/48] Improve wxWebViewEdge::RunScriptSync() error handling --- src/msw/webview_edge.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index a41c364476..14f90c4d9d 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -702,29 +702,32 @@ bool wxWebViewEdge::RunScriptSync(const wxString& javascript, wxString* output) { bool scriptExecuted = false; - HRESULT hr = m_impl->m_webView->ExecuteScript(javascript.wc_str(), Callback( - [&scriptExecuted, output](HRESULT error, PCWSTR result) -> HRESULT + // Start script execution + HRESULT executionResult = m_impl->m_webView->ExecuteScript(javascript.wc_str(), Callback( + [&scriptExecuted, &executionResult, output](HRESULT error, PCWSTR result) -> HRESULT { + // Handle script execution callback if (error == S_OK) { if (output) output->assign(result); } else - wxLogError(_("RunScript failed: %.8x"), error); + executionResult = error; scriptExecuted = true; return S_OK; }).Get()); - + // Wait for script exection while (!scriptExecuted) wxYield(); - if (FAILED(hr)) + if (FAILED(executionResult)) { - wxLogApiError("ExecuteScript", hr); + if (output) + output->Printf("%s (0x%08lx)", wxSysErrorMsgStr(executionResult), executionResult); return false; } else From 12c462d424ef1761ac2f3e9a88ff8070872fd0f1 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 10:09:00 +0100 Subject: [PATCH 29/48] Add TODOs for unimplemented wxWebViewEdge features --- src/msw/webview_edge.cpp | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 14f90c4d9d..388e9ae8cc 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -20,9 +20,11 @@ #include "wx/filename.h" #include "wx/module.h" +#include "wx/log.h" #include "wx/stdpaths.h" #include "wx/thread.h" #include "wx/private/jsscriptwrapper.h" +#include "wx/msw/private.h" #include "wx/msw/private/webview_edge.h" #include @@ -452,11 +454,13 @@ void wxWebViewEdge::Reload(wxWebViewReloadFlags WXUNUSED(flags)) wxString wxWebViewEdge::GetPageSource() const { + // TODO: not implemented in SDK (could probably be implemented by script) return wxString(); } wxString wxWebViewEdge::GetPageText() const { + // TODO: not implemented in SDK (could probably be implemented by script) return wxString(); } @@ -493,7 +497,7 @@ wxString wxWebViewEdge::GetCurrentTitle() const void wxWebViewEdge::SetZoomType(wxWebViewZoomType) { - + // only wxWEBVIEW_ZOOM_TYPE_LAYOUT is supported } wxWebViewZoomType wxWebViewEdge::GetZoomType() const @@ -556,63 +560,69 @@ void wxWebViewEdge::SetZoom(wxWebViewZoom zoom) bool wxWebViewEdge::CanCut() const { + // TODO: not implemented in SDK (could probably be implemented by script) return false; } bool wxWebViewEdge::CanCopy() const { + // TODO: not implemented in SDK (could probably be implemented by script) return false; } bool wxWebViewEdge::CanPaste() const { + // TODO: not implemented in SDK (could probably be implemented by script) return false; } void wxWebViewEdge::Cut() { - + // TODO: not implemented in SDK (could probably be implemented by script) } void wxWebViewEdge::Copy() { - + // TODO: not implemented in SDK (could probably be implemented by script) } void wxWebViewEdge::Paste() { - + // TODO: not implemented in SDK (could probably be implemented by script) } bool wxWebViewEdge::CanUndo() const { + // TODO: not implemented in SDK (could probably be implemented by script) return false; } bool wxWebViewEdge::CanRedo() const { + // TODO: not implemented in SDK (could probably be implemented by script) return false; } void wxWebViewEdge::Undo() { - + // TODO: not implemented in SDK (could probably be implemented by script) } void wxWebViewEdge::Redo() { - + // TODO: not implemented in SDK (could probably be implemented by script) } long wxWebViewEdge::Find(const wxString& WXUNUSED(text), int WXUNUSED(flags)) { + // TODO: not implemented in SDK (could probably be implemented by script) return -1; } //Editing functions void wxWebViewEdge::SetEditable(bool WXUNUSED(enable)) { - + wxLogError("Not available"); } bool wxWebViewEdge::IsEditable() const @@ -622,32 +632,35 @@ bool wxWebViewEdge::IsEditable() const void wxWebViewEdge::SelectAll() { - + // TODO: not implemented in SDK (could probably be implemented by script) } bool wxWebViewEdge::HasSelection() const { + // TODO: not implemented in SDK (could probably be implemented by script) return false; } void wxWebViewEdge::DeleteSelection() { - + // TODO: not implemented in SDK (could probably be implemented by script) } wxString wxWebViewEdge::GetSelectedText() const { + // TODO: not implemented in SDK (could probably be implemented by script) return wxString(); } wxString wxWebViewEdge::GetSelectedSource() const { + // TODO: not implemented in SDK (could probably be implemented by script) return wxString(); } void wxWebViewEdge::ClearSelection() { - + // TODO: not implemented in SDK (could probably be implemented by script) } void wxWebViewEdge::EnableContextMenu(bool enable) @@ -765,7 +778,8 @@ bool wxWebViewEdge::RunScript(const wxString& javascript, wxString* output) void wxWebViewEdge::RegisterHandler(wxSharedPtr handler) { - + // TODO: could maybe be implemented via IWebView2WebView5::add_WebResourceRequested + wxLogError("Registering handlers is not supported"); } void wxWebViewEdge::DoSetPage(const wxString& html, const wxString& WXUNUSED(baseUrl)) From 41f4a21736f635dbad836ed26e06357d79cfd157 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 10:15:11 +0100 Subject: [PATCH 30/48] Apply suggestions from code review Co-Authored-By: Maarten --- build/cmake/lib/webview/CMakeLists.txt | 8 ++++---- include/wx/msw/private/webview_edge.h | 2 +- include/wx/msw/webviewhistoryitem_ie.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build/cmake/lib/webview/CMakeLists.txt b/build/cmake/lib/webview/CMakeLists.txt index 261c6c61ee..4645032097 100644 --- a/build/cmake/lib/webview/CMakeLists.txt +++ b/build/cmake/lib/webview/CMakeLists.txt @@ -36,18 +36,18 @@ if(APPLE) wx_lib_link_libraries(webview PUBLIC "-framework WebKit") elseif(WXMSW) if(wxUSE_WEBVIEW_EDGE) - wx_lib_include_directories(webview PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/webview2/build/native/include) + wx_lib_include_directories(webview PRIVATE "${PROJECT_SOURCE_DIR}/3rdparty/webview2/build/native/include") - if (${CMAKE_SIZEOF_VOID_P} EQUAL 4) + if (CMAKE_SIZEOF_VOID_P EQUAL 4) set(WEBVIEW2_ARCH x86) else() set(WEBVIEW2_ARCH x64) endif() add_custom_command(TARGET webview POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/3rdparty/webview2/build/native/${WEBVIEW2_ARCH}/WebView2Loader.dll" - $/"WebView2Loader.dll") + "$/WebView2Loader.dll") endif() elseif(WXGTK) if(LIBSOUP_FOUND) diff --git a/include/wx/msw/private/webview_edge.h b/include/wx/msw/private/webview_edge.h index 8793834d7f..4aca6fae4a 100644 --- a/include/wx/msw/private/webview_edge.h +++ b/include/wx/msw/private/webview_edge.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/msw/webview_edge.h +// Name: include/wx/msw/private/webview_edge.h // Purpose: wxMSW Edge Chromium wxWebView backend private classes // Author: Tobias Taschner // Created: 2020-01-15 diff --git a/include/wx/msw/webviewhistoryitem_ie.h b/include/wx/msw/webviewhistoryitem_ie.h index e719b82a9f..b34dd08f06 100644 --- a/include/wx/msw/webviewhistoryitem_ie.h +++ b/include/wx/msw/webviewhistoryitem_ie.h @@ -11,7 +11,7 @@ #include "wx/setup.h" -#if wxUSE_WEBVIEW && (wxUSE_WEBVIEW_IE || wxUSE_WEBVIEW_EDGE) && defined(__WXMSW__) +#if wxUSE_WEBVIEW && (wxUSE_WEBVIEW_IE || wxUSE_WEBVIEW_EDGE) && defined(__WXMSW__) class WXDLLIMPEXP_WEBVIEW wxWebViewHistoryItem { From a19270df8f094b9a2581c313d317b31db0c38a31 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 10:26:14 +0100 Subject: [PATCH 31/48] Implement title changed event --- include/wx/msw/private/webview_edge.h | 2 ++ src/msw/webview_edge.cpp | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/wx/msw/private/webview_edge.h b/include/wx/msw/private/webview_edge.h index 4aca6fae4a..c1c72c0fba 100644 --- a/include/wx/msw/private/webview_edge.h +++ b/include/wx/msw/private/webview_edge.h @@ -36,11 +36,13 @@ public: EventRegistrationToken m_navigationStartingToken = { }; EventRegistrationToken m_navigationCompletedToken = { }; EventRegistrationToken m_newWindowRequestedToken = { }; + EventRegistrationToken m_documentTitleChangedToken = { }; // WebView Event handlers HRESULT OnNavigationStarting(IWebView2WebView* sender, IWebView2NavigationStartingEventArgs* args); HRESULT OnNavigationCompleted(IWebView2WebView* sender, IWebView2NavigationCompletedEventArgs* args); HRESULT OnNewWindowRequested(IWebView2WebView* sender, IWebView2NewWindowRequestedEventArgs* args); + HRESULT OnDocumentTitleChanged(IWebView2WebView* sender, IUnknown* args); HRESULT OnEnvironmentCreated(HRESULT result, IWebView2Environment* environment); HRESULT OnWebViewCreated(HRESULT result, IWebView2WebView* webview); diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 388e9ae8cc..4d8b1f9428 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -69,6 +69,7 @@ wxWebViewEdgeImpl::~wxWebViewEdgeImpl() m_webView->remove_NavigationCompleted(m_navigationCompletedToken); m_webView->remove_NavigationStarting(m_navigationStartingToken); m_webView->remove_NewWindowRequested(m_newWindowRequestedToken); + m_webView->remove_DocumentTitleChanged(m_documentTitleChangedToken); } } @@ -255,6 +256,16 @@ HRESULT wxWebViewEdgeImpl::OnNewWindowRequested(IWebView2WebView* WXUNUSED(sende return S_OK; } +HRESULT wxWebViewEdgeImpl::OnDocumentTitleChanged(IWebView2WebView* WXUNUSED(sender), IUnknown* WXUNUSED(args)) +{ + wxWebViewEvent event(wxEVT_WEBVIEW_TITLE_CHANGED, + m_ctrl->GetId(), m_ctrl->GetCurrentURL(), ""); + event.SetString(m_ctrl->GetCurrentTitle()); + event.SetEventObject(m_ctrl); + m_ctrl->HandleWindowEvent(event); + return S_OK; +} + HRESULT wxWebViewEdgeImpl::OnWebViewCreated(HRESULT result, IWebView2WebView* webview) { if (FAILED(result)) @@ -281,6 +292,10 @@ HRESULT wxWebViewEdgeImpl::OnWebViewCreated(HRESULT result, IWebView2WebView* we Callback( this, &wxWebViewEdgeImpl::OnNewWindowRequested).Get(), &m_newWindowRequestedToken); + m_webView->add_DocumentTitleChanged( + Callback( + this, &wxWebViewEdgeImpl::OnDocumentTitleChanged).Get(), + &m_documentTitleChangedToken); if (!m_pendingURL.empty()) { From 16b6f6710fb983cc82c6620a2200a727c430e5e3 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 10:28:02 +0100 Subject: [PATCH 32/48] Change handlers not supported message to debug --- src/msw/webview_edge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 4d8b1f9428..03737035fd 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -794,7 +794,7 @@ bool wxWebViewEdge::RunScript(const wxString& javascript, wxString* output) void wxWebViewEdge::RegisterHandler(wxSharedPtr handler) { // TODO: could maybe be implemented via IWebView2WebView5::add_WebResourceRequested - wxLogError("Registering handlers is not supported"); + wxLogDebug("Registering handlers is not supported"); } void wxWebViewEdge::DoSetPage(const wxString& html, const wxString& WXUNUSED(baseUrl)) From 26108fa61da765ae104cce58d73632f0921c21c6 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 10:32:43 +0100 Subject: [PATCH 33/48] Remove float constants when used with double --- src/msw/webview_edge.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 03737035fd..144effdd53 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -532,40 +532,40 @@ void wxWebViewEdge::Print() wxWebViewZoom wxWebViewEdge::GetZoom() const { - double old_zoom_factor = 0.0f; + double old_zoom_factor = 0.0; m_impl->m_webView->get_ZoomFactor(&old_zoom_factor); - if (old_zoom_factor > 1.7f) + if (old_zoom_factor > 1.7) return wxWEBVIEW_ZOOM_LARGEST; - if (old_zoom_factor > 1.3f) + if (old_zoom_factor > 1.3) return wxWEBVIEW_ZOOM_LARGE; - if (old_zoom_factor > 0.8f) + if (old_zoom_factor > 0.8) return wxWEBVIEW_ZOOM_MEDIUM; - if (old_zoom_factor > 0.6f) + if (old_zoom_factor > 0.6) return wxWEBVIEW_ZOOM_SMALL; return wxWEBVIEW_ZOOM_TINY; } void wxWebViewEdge::SetZoom(wxWebViewZoom zoom) { - double old_zoom_factor = 0.0f; + double old_zoom_factor = 0.0; m_impl->m_webView->get_ZoomFactor(&old_zoom_factor); - double zoom_factor = 1.0f; + double zoom_factor = 1.0; switch (zoom) { case wxWEBVIEW_ZOOM_LARGEST: - zoom_factor = 2.0f; + zoom_factor = 2.0; break; case wxWEBVIEW_ZOOM_LARGE: - zoom_factor = 1.5f; + zoom_factor = 1.5; break; case wxWEBVIEW_ZOOM_MEDIUM: - zoom_factor = 1.0f; + zoom_factor = 1.0; break; case wxWEBVIEW_ZOOM_SMALL: - zoom_factor = 0.75f; + zoom_factor = 0.75; break; case wxWEBVIEW_ZOOM_TINY: - zoom_factor = 0.5f; + zoom_factor = 0.5; break; default: break; From d829e5e832e321979349a8f0ef3dcc475bf1d550 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 10:37:31 +0100 Subject: [PATCH 34/48] Document unsupported parameters --- interface/wx/webview.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 56e33a5679..c816200dd2 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -543,6 +543,7 @@ public: /** Reload the currently displayed URL. @param flags A bit array that may optionally contain reload options. + @note The flags are ignored by the edge backend. */ virtual void Reload(wxWebViewReloadFlags flags = wxWEBVIEW_RELOAD_DEFAULT) = 0; @@ -620,7 +621,7 @@ public: relative paths, for instance. @note When using @c wxWEBVIEW_BACKEND_IE you must wait for the current page to finish loading before calling SetPage(). The baseURL - parameter is not used in this backend. + parameter is not used in this backend and the edge backend. */ virtual void SetPage(const wxString& html, const wxString& baseUrl) = 0; From 4ebde54d417749344e7e54a202a2abccc449ed97 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 10:46:19 +0100 Subject: [PATCH 35/48] Only show IE specific menus in webview sample when using IE --- samples/webview/webview.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/samples/webview/webview.cpp b/samples/webview/webview.cpp index 99ca20e5dd..ace08e8a97 100644 --- a/samples/webview/webview.cpp +++ b/samples/webview/webview.cpp @@ -451,9 +451,12 @@ WebFrame::WebFrame(const wxString& url) : m_script_null = script_menu->Append(wxID_ANY, "Return null"); m_script_date = script_menu->Append(wxID_ANY, "Return Date"); #if wxUSE_WEBVIEW_IE - m_script_object_el = script_menu->Append(wxID_ANY, "Return JSON object changing emulation level"); - m_script_date_el = script_menu->Append(wxID_ANY, "Return Date changing emulation level"); - m_script_array_el = script_menu->Append(wxID_ANY, "Return array changing emulation level"); + if (!wxWebView::IsBackendAvailable(wxWebViewBackendEdge)) + { + m_script_object_el = script_menu->Append(wxID_ANY, "Return JSON object changing emulation level"); + m_script_date_el = script_menu->Append(wxID_ANY, "Return Date changing emulation level"); + m_script_array_el = script_menu->Append(wxID_ANY, "Return array changing emulation level"); + } #endif m_script_custom = script_menu->Append(wxID_ANY, "Custom script"); m_tools_menu->AppendSubMenu(script_menu, _("Run Script")); @@ -540,9 +543,12 @@ WebFrame::WebFrame(const wxString& url) : Bind(wxEVT_MENU, &WebFrame::OnRunScriptNull, this, m_script_null->GetId()); Bind(wxEVT_MENU, &WebFrame::OnRunScriptDate, this, m_script_date->GetId()); #if wxUSE_WEBVIEW_IE - Bind(wxEVT_MENU, &WebFrame::OnRunScriptObjectWithEmulationLevel, this, m_script_object_el->GetId()); - Bind(wxEVT_MENU, &WebFrame::OnRunScriptDateWithEmulationLevel, this, m_script_date_el->GetId()); - Bind(wxEVT_MENU, &WebFrame::OnRunScriptArrayWithEmulationLevel, this, m_script_array_el->GetId()); + if (!wxWebView::IsBackendAvailable(wxWebViewBackendEdge)) + { + Bind(wxEVT_MENU, &WebFrame::OnRunScriptObjectWithEmulationLevel, this, m_script_object_el->GetId()); + Bind(wxEVT_MENU, &WebFrame::OnRunScriptDateWithEmulationLevel, this, m_script_date_el->GetId()); + Bind(wxEVT_MENU, &WebFrame::OnRunScriptArrayWithEmulationLevel, this, m_script_array_el->GetId()); + } #endif Bind(wxEVT_MENU, &WebFrame::OnRunScriptCustom, this, m_script_custom->GetId()); Bind(wxEVT_MENU, &WebFrame::OnClearSelection, this, m_selection_clear->GetId()); From 9f6beb00c2ee52dd36769aed690dd9a0dd8a68bd Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 10:55:22 +0100 Subject: [PATCH 36/48] Restore %(AdditionalIncludeDirectories) in wx_webview.vcxproj --- build/msw/wx_webview.vcxproj | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build/msw/wx_webview.vcxproj b/build/msw/wx_webview.vcxproj index bdccf0f9b3..3dbcbd65ad 100644 --- a/build/msw/wx_webview.vcxproj +++ b/build/msw/wx_webview.vcxproj @@ -138,7 +138,7 @@ Disabled - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include;%(AdditionalIncludeDirectories) WIN32;_LIB;_DEBUG;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;_UNICODE;WXBUILDING;%(PreprocessorDefinitions) Sync EnableFastChecks @@ -173,7 +173,7 @@ Disabled - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include;%(AdditionalIncludeDirectories) WIN32;_LIB;_DEBUG;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;_UNICODE;WXBUILDING;%(PreprocessorDefinitions) Sync EnableFastChecks @@ -209,7 +209,7 @@ MaxSpeed - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include;%(AdditionalIncludeDirectories) WIN32;_LIB;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;NDEBUG;_UNICODE;WXBUILDING;%(PreprocessorDefinitions) Sync MultiThreadedDLL @@ -247,7 +247,7 @@ MaxSpeed - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include;%(AdditionalIncludeDirectories) WIN32;_LIB;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;NDEBUG;_UNICODE;WXBUILDING;%(PreprocessorDefinitions) Sync MultiThreadedDLL @@ -284,7 +284,7 @@ Disabled - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include;%(AdditionalIncludeDirectories) WIN32;_USRDLL;DLL_EXPORTS;_DEBUG;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;_UNICODE;WXBUILDING;WXUSINGDLL;WXMAKINGDLL_WEBVIEW;%(PreprocessorDefinitions) Sync EnableFastChecks @@ -325,7 +325,7 @@ Disabled - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include;%(AdditionalIncludeDirectories) WIN32;_USRDLL;DLL_EXPORTS;_DEBUG;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;_UNICODE;WXBUILDING;WXUSINGDLL;WXMAKINGDLL_WEBVIEW;%(PreprocessorDefinitions) Sync EnableFastChecks @@ -365,7 +365,7 @@ MaxSpeed - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include;%(AdditionalIncludeDirectories) WIN32;_USRDLL;DLL_EXPORTS;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;NDEBUG;_UNICODE;WXBUILDING;WXUSINGDLL;WXMAKINGDLL_WEBVIEW;%(PreprocessorDefinitions) Sync MultiThreadedDLL @@ -409,7 +409,7 @@ MaxSpeed - $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include + $(OutDir)$(wxIncSubDir);..\..\include;..\..\src\tiff\libtiff;..\..\src\jpeg;..\..\src\png;..\..\src\zlib;..\..\src\regex;..\..\src\expat\lib;..\..\3rdparty\webview2\build\native\include;%(AdditionalIncludeDirectories) WIN32;_USRDLL;DLL_EXPORTS;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NON_CONFORMING_SWPRINTFS=1;_SCL_SECURE_NO_WARNINGS=1;__WXMSW__;NDEBUG;_UNICODE;WXBUILDING;WXUSINGDLL;WXMAKINGDLL_WEBVIEW;%(PreprocessorDefinitions) Sync MultiThreadedDLL @@ -501,4 +501,4 @@ - \ No newline at end of file + From e211e14ace635b8d71f6c3569d442778714a0534 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 19:39:40 +0100 Subject: [PATCH 37/48] Revert "Remove outdated code and comment" This reverts commit f48770ee5a60ad4b7455f126bf7dae35a44cefe3. The changes broke back history returned --- src/msw/webview_edge.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 144effdd53..adca9b3b82 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -403,12 +403,21 @@ void wxWebViewEdge::LoadHistoryItem(wxSharedPtr item) wxVector > wxWebViewEdge::GetBackwardHistory() { - return m_impl->m_historyList; + wxVector > backhist; + //As we don't have std::copy or an iterator constructor in the wxwidgets + //native vector we construct it by hand + for (int i = 0; i < m_impl->m_historyPosition; i++) + { + backhist.push_back(m_impl->m_historyList[i]); + } + return backhist; } wxVector > wxWebViewEdge::GetForwardHistory() { wxVector > forwardhist; + //As we don't have std::copy or an iterator constructor in the wxwidgets + //native vector we construct it by hand for (int i = m_impl->m_historyPosition + 1; i < static_cast(m_impl->m_historyList.size()); i++) { forwardhist.push_back(m_impl->m_historyList[i]); From 1a72654d69997054a56f615c2d368c41df92e9f9 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 19:50:40 +0100 Subject: [PATCH 38/48] Send wxEVT_WEBVIEW_LOADED --- include/wx/msw/private/webview_edge.h | 2 ++ src/msw/webview_edge.cpp | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/include/wx/msw/private/webview_edge.h b/include/wx/msw/private/webview_edge.h index c1c72c0fba..c5c05448c4 100644 --- a/include/wx/msw/private/webview_edge.h +++ b/include/wx/msw/private/webview_edge.h @@ -37,12 +37,14 @@ public: EventRegistrationToken m_navigationCompletedToken = { }; EventRegistrationToken m_newWindowRequestedToken = { }; EventRegistrationToken m_documentTitleChangedToken = { }; + EventRegistrationToken m_documentStateChangedToken = { }; // WebView Event handlers HRESULT OnNavigationStarting(IWebView2WebView* sender, IWebView2NavigationStartingEventArgs* args); HRESULT OnNavigationCompleted(IWebView2WebView* sender, IWebView2NavigationCompletedEventArgs* args); HRESULT OnNewWindowRequested(IWebView2WebView* sender, IWebView2NewWindowRequestedEventArgs* args); HRESULT OnDocumentTitleChanged(IWebView2WebView* sender, IUnknown* args); + HRESULT OnDocumentStateChanged(IWebView2WebView* sender, IWebView2DocumentStateChangedEventArgs* args); HRESULT OnEnvironmentCreated(HRESULT result, IWebView2Environment* environment); HRESULT OnWebViewCreated(HRESULT result, IWebView2WebView* webview); diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index adca9b3b82..636ffb6a57 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -70,6 +70,7 @@ wxWebViewEdgeImpl::~wxWebViewEdgeImpl() m_webView->remove_NavigationStarting(m_navigationStartingToken); m_webView->remove_NewWindowRequested(m_newWindowRequestedToken); m_webView->remove_DocumentTitleChanged(m_documentTitleChangedToken); + m_webView->remove_DocumentStateChanged(m_documentStateChangedToken); } } @@ -266,6 +267,15 @@ HRESULT wxWebViewEdgeImpl::OnDocumentTitleChanged(IWebView2WebView* WXUNUSED(sen return S_OK; } +HRESULT wxWebViewEdgeImpl::OnDocumentStateChanged(IWebView2WebView* WXUNUSED(sender), IWebView2DocumentStateChangedEventArgs* WXUNUSED(args)) +{ + wxWebViewEvent event(wxEVT_WEBVIEW_LOADED, m_ctrl->GetId(), + m_ctrl->GetCurrentURL(), ""); + event.SetEventObject(m_ctrl); + m_ctrl->HandleWindowEvent(event); + return S_OK; +} + HRESULT wxWebViewEdgeImpl::OnWebViewCreated(HRESULT result, IWebView2WebView* webview) { if (FAILED(result)) @@ -296,6 +306,10 @@ HRESULT wxWebViewEdgeImpl::OnWebViewCreated(HRESULT result, IWebView2WebView* we Callback( this, &wxWebViewEdgeImpl::OnDocumentTitleChanged).Get(), &m_documentTitleChangedToken); + m_webView->add_DocumentStateChanged( + Callback( + this, &wxWebViewEdgeImpl::OnDocumentStateChanged).Get(), + &m_documentStateChangedToken); if (!m_pendingURL.empty()) { From 20c155e67fe35364d8552276ff3c14f9d7454fe5 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 19:54:24 +0100 Subject: [PATCH 39/48] Send wxEVT_WEBVIEW_NAVIGATED after updating history --- src/msw/webview_edge.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 636ffb6a57..a6209a18d4 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -218,8 +218,6 @@ HRESULT wxWebViewEdgeImpl::OnNavigationCompleted(IWebView2WebView* WXUNUSED(send } else { - wxWebViewEvent evt(wxEVT_WEBVIEW_NAVIGATED, m_ctrl->GetId(), uri, wxString()); - m_ctrl->HandleWindowEvent(evt); if (m_historyEnabled && !m_historyLoadingFromList && (uri == m_ctrl->GetCurrentURL()) || (m_ctrl->GetCurrentURL().substr(0, 4) == "file" && @@ -238,6 +236,8 @@ HRESULT wxWebViewEdgeImpl::OnNavigationCompleted(IWebView2WebView* WXUNUSED(send } //Reset as we are done now m_historyLoadingFromList = false; + wxWebViewEvent evt(wxEVT_WEBVIEW_NAVIGATED, m_ctrl->GetId(), uri, wxString()); + m_ctrl->HandleWindowEvent(evt); } return S_OK; } From 048c1c43219e466b3c2a72fade9b2d31572eb2b9 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 20:49:00 +0100 Subject: [PATCH 40/48] Fix javascript return values Return values where wrapped by quotes because of wrapper code used for IE compatibility. --- include/wx/private/jsscriptwrapper.h | 2 ++ src/msw/webview_edge.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/wx/private/jsscriptwrapper.h b/include/wx/private/jsscriptwrapper.h index 4bd061197e..e60070fc1e 100644 --- a/include/wx/private/jsscriptwrapper.h +++ b/include/wx/private/jsscriptwrapper.h @@ -150,6 +150,8 @@ public: #endif } + const wxString& GetUnwrappedOutputCode() { return m_outputVarName; } + // Execute the code returned by this function to let the output of the code // we executed be garbage-collected. wxString GetCleanUpCode() const diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index a6209a18d4..d44914ebb4 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -795,7 +795,7 @@ bool wxWebViewEdge::RunScript(const wxString& javascript, wxString* output) if (RunScriptSync(wrapJS.GetWrappedCode(), &result) && result == wxS("true")) { - if (RunScriptSync(wrapJS.GetOutputCode(), &result)) + if (RunScriptSync(wrapJS.GetUnwrappedOutputCode() + ";", &result)) { if (output) *output = result; From bb508dc347f1fc7459cd35506b6507795f04553c Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Thu, 16 Jan 2020 20:50:26 +0100 Subject: [PATCH 41/48] Implement text selection in wxWebViewEdge Text selection/copy/paste etc implemented via javascript --- include/wx/msw/webview_edge.h | 3 ++ interface/wx/webview.h | 2 +- src/msw/webview_edge.cpp | 54 +++++++++++++++++++++-------------- 3 files changed, 36 insertions(+), 23 deletions(-) diff --git a/include/wx/msw/webview_edge.h b/include/wx/msw/webview_edge.h index 6a77065a3b..e1ccdcefab 100644 --- a/include/wx/msw/webview_edge.h +++ b/include/wx/msw/webview_edge.h @@ -111,6 +111,9 @@ public: virtual void EnableAccessToDevTools(bool enable = true) wxOVERRIDE; virtual bool IsAccessToDevToolsEnabled() const wxOVERRIDE; + bool QueryCommandEnabled(const wxString& command) const; + void ExecCommand(const wxString& command); + virtual bool RunScript(const wxString& javascript, wxString* output = NULL) wxOVERRIDE; virtual void RegisterHandler(wxSharedPtr handler) wxOVERRIDE; diff --git a/interface/wx/webview.h b/interface/wx/webview.h index c816200dd2..6c5a2b0ad6 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -285,7 +285,7 @@ public: Edge WebView2. It is available for Windows 7 and newer. The following features are currently unsupported with this backend: - virtual filesystems, custom urls, text selection, find, source code. + virtual filesystems, custom urls, find, source code. This backend is not enabled by default, to build it follow these steps: - Visual Studio 2015, or newer, is required diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index d44914ebb4..88ff6c13a2 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -598,57 +598,52 @@ void wxWebViewEdge::SetZoom(wxWebViewZoom zoom) bool wxWebViewEdge::CanCut() const { - // TODO: not implemented in SDK (could probably be implemented by script) - return false; + return QueryCommandEnabled("cut"); } bool wxWebViewEdge::CanCopy() const { - // TODO: not implemented in SDK (could probably be implemented by script) - return false; + return QueryCommandEnabled("copy"); } bool wxWebViewEdge::CanPaste() const { - // TODO: not implemented in SDK (could probably be implemented by script) - return false; + return QueryCommandEnabled("paste"); } void wxWebViewEdge::Cut() { - // TODO: not implemented in SDK (could probably be implemented by script) + ExecCommand("cut"); } void wxWebViewEdge::Copy() { - // TODO: not implemented in SDK (could probably be implemented by script) + ExecCommand("copy"); } void wxWebViewEdge::Paste() { - // TODO: not implemented in SDK (could probably be implemented by script) + ExecCommand("paste"); } bool wxWebViewEdge::CanUndo() const { - // TODO: not implemented in SDK (could probably be implemented by script) - return false; + return QueryCommandEnabled("undo"); } bool wxWebViewEdge::CanRedo() const { - // TODO: not implemented in SDK (could probably be implemented by script) - return false; + return QueryCommandEnabled("redo"); } void wxWebViewEdge::Undo() { - // TODO: not implemented in SDK (could probably be implemented by script) + ExecCommand("undo"); } void wxWebViewEdge::Redo() { - // TODO: not implemented in SDK (could probably be implemented by script) + ExecCommand("redo"); } long wxWebViewEdge::Find(const wxString& WXUNUSED(text), int WXUNUSED(flags)) @@ -670,24 +665,26 @@ bool wxWebViewEdge::IsEditable() const void wxWebViewEdge::SelectAll() { - // TODO: not implemented in SDK (could probably be implemented by script) + RunScript("window.getSelection().selectAllChildren(document);"); } bool wxWebViewEdge::HasSelection() const { - // TODO: not implemented in SDK (could probably be implemented by script) - return false; + wxString rangeCountStr; + const_cast(this)->RunScript("window.getSelection().rangeCount;", &rangeCountStr); + return rangeCountStr != "0"; } void wxWebViewEdge::DeleteSelection() { - // TODO: not implemented in SDK (could probably be implemented by script) + ExecCommand("delete"); } wxString wxWebViewEdge::GetSelectedText() const { - // TODO: not implemented in SDK (could probably be implemented by script) - return wxString(); + wxString selectedText; + const_cast(this)->RunScript("window.getSelection().toString();", &selectedText); + return selectedText; } wxString wxWebViewEdge::GetSelectedSource() const @@ -698,7 +695,7 @@ wxString wxWebViewEdge::GetSelectedSource() const void wxWebViewEdge::ClearSelection() { - // TODO: not implemented in SDK (could probably be implemented by script) + RunScript("window.getSelection().empty();"); } void wxWebViewEdge::EnableContextMenu(bool enable) @@ -749,6 +746,19 @@ void* wxWebViewEdge::GetNativeBackend() const return m_impl->m_webView; } +bool wxWebViewEdge::QueryCommandEnabled(const wxString& command) const +{ + wxString resultStr; + const_cast(this)->RunScript( + wxString::Format("function f(){ return document.queryCommandEnabled('%s'); } f();", command), &resultStr); + return resultStr.IsSameAs("true", false); +} + +void wxWebViewEdge::ExecCommand(const wxString& command) +{ + RunScript(wxString::Format("document.execCommand('%s');", command)); +} + bool wxWebViewEdge::RunScriptSync(const wxString& javascript, wxString* output) { bool scriptExecuted = false; From ce968d0ecb631734c7300483a71c368381a3493f Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Fri, 17 Jan 2020 09:37:12 +0100 Subject: [PATCH 42/48] Enable building without wxUSE_WEBVIEW_IE --- build/cmake/init.cmake | 4 ++-- include/wx/chkconf.h | 3 ++- src/common/webview.cpp | 2 ++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake index a0cfe8c541..f57863deb2 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake @@ -406,8 +406,8 @@ if(wxUSE_GUI) wx_option_force_value(wxUSE_WEBVIEW OFF) endif() elseif(WXMSW) - if(NOT wxUSE_WEBVIEW_IE) - message(WARNING "WebviewIE not found or enabled, wxWebview won't be available") + if(NOT wxUSE_WEBVIEW_IE AND NOT wxUSE_WEBVIEW_EDGE) + message(WARNING "WebviewIE and WebviewEdge not found or enabled, wxWebview won't be available") wx_option_force_value(wxUSE_WEBVIEW OFF) endif() elseif(APPLE) diff --git a/include/wx/chkconf.h b/include/wx/chkconf.h index 47c9f9c489..9d0e7f743c 100644 --- a/include/wx/chkconf.h +++ b/include/wx/chkconf.h @@ -2290,7 +2290,8 @@ # endif #endif /* wxUSE_TREELISTCTRL */ -#if wxUSE_WEBVIEW && !(wxUSE_WEBVIEW_WEBKIT || wxUSE_WEBVIEW_WEBKIT2 || wxUSE_WEBVIEW_IE) +#if wxUSE_WEBVIEW && !(wxUSE_WEBVIEW_WEBKIT || wxUSE_WEBVIEW_WEBKIT2 || \ + wxUSE_WEBVIEW_IE || wxUSE_WEBVIEW_EDGE) # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_WEBVIEW requires at least one backend" # else diff --git a/src/common/webview.cpp b/src/common/webview.cpp index e7cd9c158f..0a46c5fccd 100644 --- a/src/common/webview.cpp +++ b/src/common/webview.cpp @@ -107,9 +107,11 @@ wxStringWebViewFactoryMap::iterator wxWebView::FindFactory(const wxString &backe void wxWebView::InitFactoryMap() { #ifdef __WXMSW__ +#if wxUSE_WEBVIEW_IE if(m_factoryMap.find(wxWebViewBackendIE) == m_factoryMap.end()) RegisterFactory(wxWebViewBackendIE, wxSharedPtr (new wxWebViewFactoryIE)); +#endif #if wxUSE_WEBVIEW_EDGE if (wxWebViewEdge::IsAvailable() && From fb0e82e9d1840e922ea662adb5a83f74b6809878 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Fri, 17 Jan 2020 10:08:58 +0100 Subject: [PATCH 43/48] Implement GetPageSource() and GetPageText() --- interface/wx/webview.h | 2 +- src/msw/webview_edge.cpp | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 6c5a2b0ad6..1bdd57100c 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -285,7 +285,7 @@ public: Edge WebView2. It is available for Windows 7 and newer. The following features are currently unsupported with this backend: - virtual filesystems, custom urls, find, source code. + virtual filesystems, custom urls, find. This backend is not enabled by default, to build it follow these steps: - Visual Studio 2015, or newer, is required diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 88ff6c13a2..62481fa28e 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -492,14 +492,16 @@ void wxWebViewEdge::Reload(wxWebViewReloadFlags WXUNUSED(flags)) wxString wxWebViewEdge::GetPageSource() const { - // TODO: not implemented in SDK (could probably be implemented by script) - return wxString(); + wxString text; + const_cast(this)->RunScript("document.documentElement.outerHTML;", &text); + return text; } wxString wxWebViewEdge::GetPageText() const { - // TODO: not implemented in SDK (could probably be implemented by script) - return wxString(); + wxString text; + const_cast(this)->RunScript("document.body.innerText;", &text); + return text; } bool wxWebViewEdge::IsBusy() const From 26c82d43d180613909cb5a5a942d23379046c460 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Fri, 17 Jan 2020 21:11:26 +0100 Subject: [PATCH 44/48] Decode strings returned by ExecuteScript() ExecuteScript returns strings as fully quoted JSON strings so they have to be decoded to a binary string. --- include/wx/private/json.h | 89 +++++++++++++++++++++++++++++++++++++++ src/msw/webview_edge.cpp | 3 +- 2 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 include/wx/private/json.h diff --git a/include/wx/private/json.h b/include/wx/private/json.h new file mode 100644 index 0000000000..2e7bbaf7f8 --- /dev/null +++ b/include/wx/private/json.h @@ -0,0 +1,89 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/private/json.h +// Purpose: Helper functions to handle JSON data +// Author: Tobias Taschner +// Created: 2020-01-17 +// Copyright: (c) 2020 wxWidgets development team +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_PRIVATE_JSON_H_ +#define _WX_PRIVATE_JSON_H_ + +namespace wxJSON +{ + +// Decode a string literal including escape sequences +// If the input is not quoted string it will be returned as the input +wxString DecodeString(const wxString& str) +{ + if (!str.starts_with('"') || !str.ends_with('"')) + return str; + + wxString result; + const wxWCharBuffer buf = str.wc_str(); + const wchar_t* end = buf.data() + buf.length() - 1; + for (const wchar_t* ch = buf.data() + 1; ch < end; ++ch) + { + if (*ch == '\\') + { + switch (*(++ch)) + { + case 'b': + result.append('\b'); + break; + case 'n': + result.append('\n'); + break; + case 'r': + result.append('\r'); + break; + case 't': + result.append('\t'); + break; + case 'v': + result.append('\v'); + break; + case '\'': + result.append('\''); + break; + case '"': + result.append('"'); + break; + case '\\': + result.append('\\'); + break; + case 'u': + if (wxIsxdigit(ch[1]) && wxIsxdigit(ch[2]) && + wxIsxdigit(ch[3]) && wxIsxdigit(ch[4])) + { + wxUChar uchar = wxHexToDec(wxString(&ch[3], 2)) | + wxHexToDec(wxString(&ch[1], 2)) >> 8; + result.append(uchar); + ch += 4; + } + break; + case 'x': + if (wxIsxdigit(ch[1]) && wxIsxdigit(ch[2])) + { + wxChar hchar = wxHexToDec(wxString(&ch[1], 2)); + result.append(hchar); + ch += 2; + } + break; + + default: + result.append(*ch); + break; + } + } + else + result.append(*ch); + } + + return result; +} + +} // namespace JSON + +#endif // _WX_PRIVATE_JSON_H_ diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 62481fa28e..10f71b50e9 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -24,6 +24,7 @@ #include "wx/stdpaths.h" #include "wx/thread.h" #include "wx/private/jsscriptwrapper.h" +#include "wx/private/json.h" #include "wx/msw/private.h" #include "wx/msw/private/webview_edge.h" @@ -810,7 +811,7 @@ bool wxWebViewEdge::RunScript(const wxString& javascript, wxString* output) if (RunScriptSync(wrapJS.GetUnwrappedOutputCode() + ";", &result)) { if (output) - *output = result; + *output = wxJSON::DecodeString(result); result.clear(); } From caf92856098ecfc9594deb597c4bef11f9277e96 Mon Sep 17 00:00:00 2001 From: Tobias Taschner Date: Sun, 19 Jan 2020 21:32:11 +0100 Subject: [PATCH 45/48] Improved JSON string parsing --- include/wx/private/json.h | 62 +++++++++++++++++++-------------------- src/msw/webview_edge.cpp | 5 +++- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/include/wx/private/json.h b/include/wx/private/json.h index 2e7bbaf7f8..f9ddff7fca 100644 --- a/include/wx/private/json.h +++ b/include/wx/private/json.h @@ -14,74 +14,72 @@ namespace wxJSON { // Decode a string literal including escape sequences -// If the input is not quoted string it will be returned as the input -wxString DecodeString(const wxString& str) +// Returns false if the input string is not a valid JSON string +bool DecodeString(const wxString& in, wxString* out) { - if (!str.starts_with('"') || !str.ends_with('"')) - return str; - - wxString result; - const wxWCharBuffer buf = str.wc_str(); + const wxWCharBuffer buf = in.wc_str(); + const wchar_t* ch = buf.data(); + // String has to chart with a quote + if (*(ch++) != '"') + return false; + out->reserve(buf.length()); const wchar_t* end = buf.data() + buf.length() - 1; - for (const wchar_t* ch = buf.data() + 1; ch < end; ++ch) + for (; ch < end; ++ch) { if (*ch == '\\') { switch (*(++ch)) { case 'b': - result.append('\b'); + out->append('\b'); break; case 'n': - result.append('\n'); + out->append('\n'); break; case 'r': - result.append('\r'); + out->append('\r'); break; case 't': - result.append('\t'); + out->append('\t'); break; - case 'v': - result.append('\v'); + case 'f': + out->append('\f'); break; - case '\'': - result.append('\''); + case '/': + out->append('/'); break; case '"': - result.append('"'); + out->append('"'); break; case '\\': - result.append('\\'); + out->append('\\'); break; case 'u': +#if SIZEOF_WCHAR_T == 2 + // In this case, we handle surrogates without doing anything special was wchar_t strings use UTF-17 encoding. if (wxIsxdigit(ch[1]) && wxIsxdigit(ch[2]) && wxIsxdigit(ch[3]) && wxIsxdigit(ch[4])) { - wxUChar uchar = wxHexToDec(wxString(&ch[3], 2)) | + wchar_t uchar = wxHexToDec(wxString(&ch[3], 2)) | wxHexToDec(wxString(&ch[1], 2)) >> 8; - result.append(uchar); + out->append(uchar); ch += 4; } +#else + #error Implement correct surrogate handling. +#endif break; - case 'x': - if (wxIsxdigit(ch[1]) && wxIsxdigit(ch[2])) - { - wxChar hchar = wxHexToDec(wxString(&ch[1], 2)); - result.append(hchar); - ch += 2; - } - break; - default: - result.append(*ch); + return false; break; } } else - result.append(*ch); + out->append(*ch); } - return result; + // String has to end with a quote + return (*ch) == '"'; } } // namespace JSON diff --git a/src/msw/webview_edge.cpp b/src/msw/webview_edge.cpp index 10f71b50e9..df38961a3f 100644 --- a/src/msw/webview_edge.cpp +++ b/src/msw/webview_edge.cpp @@ -811,7 +811,10 @@ bool wxWebViewEdge::RunScript(const wxString& javascript, wxString* output) if (RunScriptSync(wrapJS.GetUnwrappedOutputCode() + ";", &result)) { if (output) - *output = wxJSON::DecodeString(result); + // Try to decode JSON string or return original + // result if it's not a valid JSON string + if (!wxJSON::DecodeString(result, output)) + *output = result; result.clear(); } From f6b79fdf8f19fde9f369f454834cbc3e6f956cef Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 22 Jan 2020 03:24:57 +0100 Subject: [PATCH 46/48] Rebake gcc makefiles accidentally modified in this branch Undo the changes due to the use of different version of bakefile 0.x. --- build/msw/makefile.gcc | 205 +++++++++++++++++++++++++++------- samples/ownerdrw/makefile.gcc | 5 +- samples/render/makefile.gcc | 5 +- samples/richtext/makefile.gcc | 5 +- samples/xti/makefile.gcc | 5 +- tests/makefile.gcc | 15 ++- utils/wxrc/makefile.gcc | 5 +- 7 files changed, 196 insertions(+), 49 deletions(-) diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc index ab62bc8cc4..c1c27dcc5f 100644 --- a/build/msw/makefile.gcc +++ b/build/msw/makefile.gcc @@ -5266,60 +5266,87 @@ clean: setup_h: $(SETUPHDIR)\wx ..\..\include\wx\$(__SETUP_H_SUBDIR_FILENAMES)\setup.h $(SETUPHDIR)\wx\setup.h $(SETUPHDIR)\wx\msw\rcdefs.h $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a: $(WXREGEX_OBJECTS) + $(foreach f,$(subst \,/,$(WXREGEX_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(WXREGEX_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a: $(WXZLIB_OBJECTS) + $(foreach f,$(subst \,/,$(WXZLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(WXZLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwxpng$(WXDEBUGFLAG).a: $(WXPNG_OBJECTS) + $(foreach f,$(subst \,/,$(WXPNG_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(WXPNG_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwxjpeg$(WXDEBUGFLAG).a: $(WXJPEG_OBJECTS) + $(foreach f,$(subst \,/,$(WXJPEG_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(WXJPEG_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwxtiff$(WXDEBUGFLAG).a: $(WXTIFF_OBJECTS) + $(foreach f,$(subst \,/,$(WXTIFF_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(WXTIFF_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a: $(WXEXPAT_OBJECTS) + $(foreach f,$(subst \,/,$(WXEXPAT_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(WXEXPAT_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ ifeq ($(USE_STC),1) $(LIBDIRNAME)\libwxscintilla$(WXDEBUGFLAG).a: $(WXSCINTILLA_OBJECTS) + $(foreach f,$(subst \,/,$(WXSCINTILLA_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(WXSCINTILLA_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif ifeq ($(MONOLITHIC),1) ifeq ($(SHARED),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)$(WXCOMPILER)$(VENDORTAG).dll: $(MONODLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\monodll_version_rc.o $(__wxscintilla_library_link_DEP) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(MONODLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__wxscintilla) + $(foreach f,$(subst \,/,$(MONODLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__wxscintilla) + @-del $@.rsp endif endif ifeq ($(MONOLITHIC),1) ifeq ($(SHARED),0) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a: $(MONOLIB_OBJECTS) + $(foreach f,$(subst \,/,$(MONOLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(MONOLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5327,15 +5354,21 @@ endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) $(LIBDIRNAME)\wxbase$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)$(WXCOMPILER)$(VENDORTAG).dll: $(BASEDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\basedll_version_rc.o - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(BASEDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + $(foreach f,$(subst \,/,$(BASEDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + @-del $@.rsp endif endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a: $(BASELIB_OBJECTS) + $(foreach f,$(subst \,/,$(BASELIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(BASELIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5347,15 +5380,21 @@ endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) $(LIBDIRNAME)\wxbase$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net$(WXCOMPILER)$(VENDORTAG).dll: $(NETDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\netdll_version_rc.o $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(NETDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(NETDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_net.a: $(NETLIB_OBJECTS) + $(foreach f,$(subst \,/,$(NETLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(NETLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5368,7 +5407,10 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core$(WXCOMPILER)$(VENDORTAG).dll: $(COREDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\coredll_version_rc.o $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(COREDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(COREDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5377,8 +5419,11 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a: $(CORELIB_OBJECTS) + $(foreach f,$(subst \,/,$(CORELIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(CORELIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5394,7 +5439,10 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv$(WXCOMPILER)$(VENDORTAG).dll: $(ADVDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\advdll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(ADVDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(ADVDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5403,8 +5451,11 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.a: $(ADVLIB_OBJECTS) + $(foreach f,$(subst \,/,$(ADVLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(ADVLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5421,7 +5472,10 @@ ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_MEDIA),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media$(WXCOMPILER)$(VENDORTAG).dll: $(MEDIADLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\mediadll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(MEDIADLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(MEDIADLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5432,8 +5486,11 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_MEDIA),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.a: $(MEDIALIB_OBJECTS) + $(foreach f,$(subst \,/,$(MEDIALIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(MEDIALIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5453,7 +5510,10 @@ ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_HTML),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html$(WXCOMPILER)$(VENDORTAG).dll: $(HTMLDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\htmldll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(HTMLDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(HTMLDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5464,8 +5524,11 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_HTML),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.a: $(HTMLLIB_OBJECTS) + $(foreach f,$(subst \,/,$(HTMLLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(HTMLLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5483,7 +5546,10 @@ ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_WEBVIEW),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview$(WXCOMPILER)$(VENDORTAG).dll: $(WEBVIEWDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(__coredll___depname) $(__basedll___depname) $(OBJS)\webviewdll_version_rc.o - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(WEBVIEWDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(WEBVIEWDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5494,8 +5560,11 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_WEBVIEW),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_webview.a: $(WEBVIEWLIB_OBJECTS) + $(foreach f,$(subst \,/,$(WEBVIEWLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(WEBVIEWLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5513,7 +5582,10 @@ ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_QA),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa$(WXCOMPILER)$(VENDORTAG).dll: $(QADLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\qadll_version_rc.o $(__coredll___depname) $(__basedll___depname) $(__xmldll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(QADLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a + $(foreach f,$(subst \,/,$(QADLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a + @-del $@.rsp endif endif endif @@ -5524,8 +5596,11 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_QA),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_qa.a: $(QALIB_OBJECTS) + $(foreach f,$(subst \,/,$(QALIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(QALIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5541,15 +5616,21 @@ endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) $(LIBDIRNAME)\wxbase$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml$(WXCOMPILER)$(VENDORTAG).dll: $(XMLDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\xmldll_version_rc.o $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(XMLDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(XMLDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a: $(XMLLIB_OBJECTS) + $(foreach f,$(subst \,/,$(XMLLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(XMLLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5562,7 +5643,10 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_XRC),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc$(WXCOMPILER)$(VENDORTAG).dll: $(XRCDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\xrcdll_version_rc.o $(__htmldll_library_link_DEP) $(__coredll___depname) $(__xmldll___depname) $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(XRCDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__htmldll_library_link_LIBR) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(XRCDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__htmldll_library_link_LIBR) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5571,8 +5655,11 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_XRC),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xrc.a: $(XRCLIB_OBJECTS) + $(foreach f,$(subst \,/,$(XRCLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(XRCLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5588,7 +5675,10 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_AUI),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui$(WXCOMPILER)$(VENDORTAG).dll: $(AUIDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\auidll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(AUIDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(AUIDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5597,8 +5687,11 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_AUI),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.a: $(AUILIB_OBJECTS) + $(foreach f,$(subst \,/,$(AUILIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(AUILIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5614,7 +5707,10 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_RIBBON),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_ribbon$(WXCOMPILER)$(VENDORTAG).dll: $(RIBBONDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\ribbondll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(RIBBONDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_ribbon.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(RIBBONDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_ribbon.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5623,8 +5719,11 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_RIBBON),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_ribbon.a: $(RIBBONLIB_OBJECTS) + $(foreach f,$(subst \,/,$(RIBBONLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(RIBBONLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5640,7 +5739,10 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_PROPGRID),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid$(WXCOMPILER)$(VENDORTAG).dll: $(PROPGRIDDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\propgriddll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(PROPGRIDDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(PROPGRIDDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5649,8 +5751,11 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_PROPGRID),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_propgrid.a: $(PROPGRIDLIB_OBJECTS) + $(foreach f,$(subst \,/,$(PROPGRIDLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(PROPGRIDLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5666,7 +5771,10 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_RICHTEXT),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext$(WXCOMPILER)$(VENDORTAG).dll: $(RICHTEXTDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\richtextdll_version_rc.o $(__htmldll_library_link_DEP) $(__xmldll___depname) $(__coredll___depname) $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(RICHTEXTDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__htmldll_library_link_LIBR) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(RICHTEXTDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__htmldll_library_link_LIBR) $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.a $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5675,8 +5783,11 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_RICHTEXT),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.a: $(RICHTEXTLIB_OBJECTS) + $(foreach f,$(subst \,/,$(RICHTEXTLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(RICHTEXTLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5692,7 +5803,10 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),1) ifeq ($(USE_STC),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc$(WXCOMPILER)$(VENDORTAG).dll: $(STCDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(__wxscintilla) $(OBJS)\stcdll_version_rc.o $(__coredll___depname) $(__basedll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(STCDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxscintilla$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + $(foreach f,$(subst \,/,$(STCDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(LIBDIRNAME)\libwxscintilla$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.a $(LIBDIRNAME)\libwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).a + @-del $@.rsp endif endif endif @@ -5701,8 +5815,11 @@ ifeq ($(MONOLITHIC),0) ifeq ($(SHARED),0) ifeq ($(USE_STC),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_stc.a: $(STCLIB_OBJECTS) $(__wxscintilla) + $(foreach f,$(subst \,/,$(STCLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(STCLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif @@ -5718,7 +5835,10 @@ ifeq ($(SHARED),1) ifeq ($(USE_GUI),1) ifeq ($(USE_OPENGL),1) $(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl$(WXCOMPILER)$(VENDORTAG).dll: $(GLDLL_OBJECTS) $(__wxtiff___depname) $(__wxjpeg___depname) $(__wxpng___depname) $(__wxscintilla) $(LIBDIRNAME)\libwxexpat$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxzlib$(WXDEBUGFLAG).a $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a $(OBJS)\gldll_version_rc.o $(__basedll___depname) $(__coredll___depname) $(__monodll___depname) - $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(GLDLL_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__WXLIBGLDEP_CORE_p) $(__WXLIBGLDEP_BASE_p) $(__WXLIB_MONO_p) -lopengl32 -lglu32 + $(foreach f,$(subst \,/,$(GLDLL_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--out-implib=$(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.a $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme $(__WXLIBGLDEP_CORE_p) $(__WXLIBGLDEP_BASE_p) $(__WXLIB_MONO_p) -lopengl32 -lglu32 + @-del $@.rsp endif endif endif @@ -5727,8 +5847,11 @@ ifeq ($(SHARED),0) ifeq ($(USE_GUI),1) ifeq ($(USE_OPENGL),1) $(LIBDIRNAME)\libwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_gl.a: $(GLLIB_OBJECTS) + $(foreach f,$(subst \,/,$(GLLIB_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul if exist $@ del $@ - ar rcu $@ $(GLLIB_OBJECTS) + ar rcu $@ @$@.rsp + @-del $@.rsp ranlib $@ endif endif diff --git a/samples/ownerdrw/makefile.gcc b/samples/ownerdrw/makefile.gcc index acd32455e6..bc99157836 100644 --- a/samples/ownerdrw/makefile.gcc +++ b/samples/ownerdrw/makefile.gcc @@ -218,7 +218,10 @@ clean: -if exist $(OBJS)\ownerdrw.exe del $(OBJS)\ownerdrw.exe $(OBJS)\ownerdrw.exe: $(OWNERDRW_OBJECTS) $(OBJS)\ownerdrw_ownerdrw_rc.o - $(CXX) -o $@ $(OWNERDRW_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + $(foreach f,$(subst \,/,$(OWNERDRW_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + @-del $@.rsp data: if not exist $(OBJS) mkdir $(OBJS) diff --git a/samples/render/makefile.gcc b/samples/render/makefile.gcc index 0518d46f8e..5d70f9fe19 100644 --- a/samples/render/makefile.gcc +++ b/samples/render/makefile.gcc @@ -239,7 +239,10 @@ clean: -if exist $(OBJS)\renddll_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_VERSION_NODOT)$(WXCOMPILER).dll del $(OBJS)\renddll_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_VERSION_NODOT)$(WXCOMPILER).dll $(OBJS)\render.exe: $(RENDER_OBJECTS) $(OBJS)\render_sample_rc.o - $(CXX) -o $@ $(RENDER_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + $(foreach f,$(subst \,/,$(RENDER_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + @-del $@.rsp ifeq ($(SHARED),1) $(OBJS)\renddll_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_VERSION_NODOT)$(WXCOMPILER).dll: $(RENDDLL_OBJECTS) diff --git a/samples/richtext/makefile.gcc b/samples/richtext/makefile.gcc index ba71a0d04f..56001c07ba 100644 --- a/samples/richtext/makefile.gcc +++ b/samples/richtext/makefile.gcc @@ -230,7 +230,10 @@ clean: -if exist $(OBJS)\richtext.exe del $(OBJS)\richtext.exe $(OBJS)\richtext.exe: $(RICHTEXT_OBJECTS) $(OBJS)\richtext_sample_rc.o - $(CXX) -o $@ $(RICHTEXT_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_RICHTEXT_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + $(foreach f,$(subst \,/,$(RICHTEXT_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_RICHTEXT_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + @-del $@.rsp $(OBJS)\richtext_richtext.o: ./richtext.cpp $(CXX) -c -o $@ $(RICHTEXT_CXXFLAGS) $(CPPDEPS) $< diff --git a/samples/xti/makefile.gcc b/samples/xti/makefile.gcc index 39b53999c0..d16522161d 100644 --- a/samples/xti/makefile.gcc +++ b/samples/xti/makefile.gcc @@ -224,7 +224,10 @@ clean: -if exist $(OBJS)\xti.exe del $(OBJS)\xti.exe $(OBJS)\xti.exe: $(XTI_OBJECTS) $(OBJS)\xti_sample_rc.o - $(CXX) -o $@ $(XTI_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + $(foreach f,$(subst \,/,$(XTI_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + @-del $@.rsp $(OBJS)\xti_sample_rc.o: ./../../samples/sample.rc $(WINDRES) -i$< -o$@ --define wxUSE_DPI_AWARE_MANIFEST=$(USE_DPI_AWARE_MANIFEST) --define __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__NDEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) --include-dir $(SETUPHDIR) --include-dir ./../../include $(__CAIRO_INCLUDEDIR_p) --include-dir . $(__DLLFLAG_p_1) --include-dir ./../../samples --define NOPCH diff --git a/tests/makefile.gcc b/tests/makefile.gcc index 2c75bba671..67c4758f4c 100644 --- a/tests/makefile.gcc +++ b/tests/makefile.gcc @@ -494,11 +494,17 @@ clean: -if exist $(OBJS)\test_gui.exe del $(OBJS)\test_gui.exe $(OBJS)\test.exe: $(TEST_OBJECTS) - $(CXX) -o $@ $(TEST_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_NET_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_PNG_IF_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + $(foreach f,$(subst \,/,$(TEST_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_NET_p) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_PNG_IF_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + @-del $@.rsp ifeq ($(USE_GUI),1) $(OBJS)\test_drawing.exe: $(TEST_DRAWING_OBJECTS) - $(CXX) -o $@ $(TEST_DRAWING_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + $(foreach f,$(subst \,/,$(TEST_DRAWING_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + @-del $@.rsp endif ifeq ($(SHARED),1) @@ -510,7 +516,10 @@ endif ifeq ($(USE_GUI),1) $(OBJS)\test_gui.exe: $(TEST_GUI_OBJECTS) $(OBJS)\test_gui_sample_rc.o - $(CXX) -o $@ $(TEST_GUI_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_WEBVIEW_p) $(__WXLIB_STC_p) $(__WXLIB_AUI_p) $(__WXLIB_RICHTEXT_p) $(__WXLIB_MEDIA_p) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + $(foreach f,$(subst \,/,$(TEST_GUI_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES) $(LDFLAGS) $(__WXLIB_WEBVIEW_p) $(__WXLIB_STC_p) $(__WXLIB_AUI_p) $(__WXLIB_RICHTEXT_p) $(__WXLIB_MEDIA_p) $(__WXLIB_XRC_p) $(__WXLIB_XML_p) $(__WXLIB_HTML_p) $(__WXLIB_CORE_p) $(__WXLIB_NET_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_SCINTILLA_IF_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + @-del $@.rsp endif data: diff --git a/utils/wxrc/makefile.gcc b/utils/wxrc/makefile.gcc index 5a94994a0e..d599d90a21 100644 --- a/utils/wxrc/makefile.gcc +++ b/utils/wxrc/makefile.gcc @@ -183,7 +183,10 @@ clean: ifeq ($(USE_XRC),1) $(OBJS)\wxrc.exe: $(WXRC_OBJECTS) - $(CXX) -o $@ $(WXRC_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_PNG_IF_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + $(foreach f,$(subst \,/,$(WXRC_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) + @move /y $@.rsp.tmp $@.rsp >nul + $(CXX) -o $@ @$@.rsp $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) $(____CAIRO_LIBDIR_FILENAMES_p) $(LDFLAGS) $(__WXLIB_XML_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_PNG_IF_MONO_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__CAIRO_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme + @-del $@.rsp endif $(OBJS)\wxrc_wxrc.o: ./wxrc.cpp From 0b2dd516c1f43579cbfc4d8ca4ba7a7edc22e425 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 22 Jan 2020 03:36:38 +0100 Subject: [PATCH 47/48] Slightly improve Edge webview backend setup instructions Make it even more clear where should the files go and which files should be copied, to avoid any ambiguity. --- interface/wx/webview.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 1bdd57100c..99c15ace6e 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -292,9 +292,12 @@ public: - Download the WebView2 SDK nuget package (Version 0.8.355 or newer) - Extract the package (it's a zip archive) to @c wxWidgets/3rdparty/webview2 + (you should have @c 3rdparty/webview2/build/native/include/WebView2.h + file after unpacking it) - Enable @c wxUSE_WEBVIEW_EDGE in CMake or @c setup.h - Build wxWidgets webview library - - Copy @c WebView2Loader.dll from @c wxWidgets/3rdparty/webview2/build/ + - Copy @c WebView2Loader.dll from the subdirectory corresponding to the + architecture used (x86 or x64) of @c wxWidgets/3rdparty/webview2/build/ to your applications executable - At runtime you can use wxWebView::IsBackendAvailable() to check if the backend can be used (it will be available if @c WebView2Loader.dll can be From 5d9e1ceb801c143d1125f6d95cc26db9f8eacbe5 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 22 Jan 2020 03:37:12 +0100 Subject: [PATCH 48/48] Show whether Edge backend is used in the webview sample Allow to see at a glance whether Edge is being used or not. --- samples/webview/webview.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/samples/webview/webview.cpp b/samples/webview/webview.cpp index ace08e8a97..aae3218750 100644 --- a/samples/webview/webview.cpp +++ b/samples/webview/webview.cpp @@ -366,11 +366,21 @@ WebFrame::WebFrame(const wxString& url) : m_info = new wxInfoBar(this); topsizer->Add(m_info, wxSizerFlags().Expand()); + // Create a log window + new wxLogWindow(this, _("Logging"), true, false); + // Create the webview wxString backend = wxWebViewBackendDefault; #ifdef __WXMSW__ if (wxWebView::IsBackendAvailable(wxWebViewBackendEdge)) + { + wxLogMessage("Using Edge backend"); backend = wxWebViewBackendEdge; + } + else + { + wxLogMessage("Edge backend not available"); + } #endif m_browser = wxWebView::New(this, wxID_ANY, url, wxDefaultPosition, wxDefaultSize, backend); topsizer->Add(m_browser, wxSizerFlags().Expand().Proportion(1)); @@ -385,9 +395,6 @@ WebFrame::WebFrame(const wxString& url) : //Set a more sensible size for web browsing SetSize(wxSize(800, 600)); - // Create a log window - new wxLogWindow(this, _("Logging"), true, false); - // Create the Tools menu m_tools_menu = new wxMenu(); wxMenuItem* print = m_tools_menu->Append(wxID_ANY , _("Print"));