Browse Source

Fix win32 make build

Signed-off-by: falkTX <falktx@falktx.com>
popup-tests
falkTX 1 month ago
parent
commit
7077e63097
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
4 changed files with 58 additions and 4 deletions
  1. +9
    -0
      dgl/Makefile
  2. +23
    -0
      dgl/src/WebViewWin32.cpp
  3. +1
    -0
      distrho/DistrhoUI_win32.cpp
  4. +25
    -4
      distrho/extra/WebViewWin32.hpp

+ 9
- 0
dgl/Makefile View File

@@ -54,6 +54,10 @@ OBJS_common = \
$(BUILD_DIR)/dgl/Window.cpp.o \
$(BUILD_DIR)/dgl/WindowPrivateData.cpp.o

ifeq ($(WINDOWS)$(USE_WEB_VIEW),truetrue)
OBJS_common += $(BUILD_DIR)/dgl/WebViewWin32.cpp.o
endif

# ---------------------------------------------------------------------------------------------------------------------

OBJS_cairo = $(OBJS_common) \
@@ -201,6 +205,11 @@ $(BUILD_DIR)/dgl/pugl.mm.o: src/pugl.mm
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -ObjC++ -o $@

$(BUILD_DIR)/dgl/WebViewWin32.cpp.o: src/WebViewWin32.cpp
-@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -std=gnu++17 -c -o $@

# ---------------------------------------------------------------------------------------------------------------------

$(BUILD_DIR)/dgl/%.cpp.cairo.o: src/%.cpp


+ 23
- 0
dgl/src/WebViewWin32.cpp View File

@@ -0,0 +1,23 @@
/*
* DISTRHO Plugin Framework (DPF)
* Copyright (C) 2012-2025 Filipe Coelho <falktx@falktx.com>
*
* Permission to use, copy, modify, and/or distribute this software for any purpose with
* or without fee is hereby granted, provided that the above copyright notice and this
* permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

// Include CHOC separately because it requires C++17

#define DISTRHO_WEB_VIEW_INCLUDE_IMPLEMENTATION
#define WEB_VIEW_NAMESPACE DGL_NAMESPACE
#define WEB_VIEW_DGL_NAMESPACE
#include "../WebView.hpp"
#include "../../distrho/extra/WebViewWin32.hpp"

+ 1
- 0
distrho/DistrhoUI_win32.cpp View File

@@ -22,6 +22,7 @@

#if DISTRHO_UI_WEB_VIEW
# define DISTRHO_WEB_VIEW_INCLUDE_IMPLEMENTATION
# define WEB_VIEW_NAMESPACE DISTRHO_NAMESPACE
# include "extra/WebView.hpp"
# include "extra/WebViewWin32.hpp"
#endif

+ 25
- 4
distrho/extra/WebViewWin32.hpp View File

@@ -1,6 +1,6 @@
/*
* DISTRHO Plugin Framework (DPF)
* Copyright (C) 2012-2024 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2012-2025 Filipe Coelho <falktx@falktx.com>
*
* Permission to use, copy, modify, and/or distribute this software for any purpose with
* or without fee is hereby granted, provided that the above copyright notice and this
@@ -26,13 +26,26 @@ START_NAMESPACE_DISTRHO

class WebView;

WebView* webview_choc_create(const WebViewOptions& opts);
END_NAMESPACE_DISTRHO

#ifdef WEB_VIEW_DGL_NAMESPACE
START_NAMESPACE_DGL
using DISTRHO_NAMESPACE::WebView;
#else
START_NAMESPACE_DISTRHO
#endif

WebView* webview_choc_create(const WEB_VIEW_NAMESPACE::WebViewOptions& opts);
void webview_choc_destroy(WebView*);
void* webview_choc_handle(WebView*);
void webview_choc_eval(WebView*, const char* js);
void webview_choc_navigate(WebView*, const char* url);

#ifdef WEB_VIEW_DGL_NAMESPACE
END_NAMESPACE_DGL
#else
END_NAMESPACE_DISTRHO
#endif

// --------------------------------------------------------------------------------------------------------------------

@@ -41,9 +54,13 @@ END_NAMESPACE_DISTRHO
# define WC_ERR_INVALID_CHARS 0
# include "choc/choc_WebView.h"

#ifdef WEB_VIEW_DGL_NAMESPACE
START_NAMESPACE_DGL
#else
START_NAMESPACE_DISTRHO
#endif

WebView* webview_choc_create(const WebViewOptions& opts)
WebView* webview_choc_create(const WEB_VIEW_NAMESPACE::WebViewOptions& opts)
{
WebView::Options wopts;
wopts.acceptsFirstMouseClick = true;
@@ -52,7 +69,7 @@ WebView* webview_choc_create(const WebViewOptions& opts)
std::unique_ptr<WebView> webview = std::make_unique<WebView>(wopts);
DISTRHO_SAFE_ASSERT_RETURN(webview->loadedOK(), nullptr);

if (const WebViewMessageCallback callback = opts.callback)
if (const WEB_VIEW_NAMESPACE::WebViewMessageCallback callback = opts.callback)
{
webview->addInitScript("function postMessage(m){window.chrome.webview.postMessage(m);}");

@@ -94,7 +111,11 @@ void webview_choc_navigate(WebView* const webview, const char* const url)
webview->navigate(url);
}

#ifdef WEB_VIEW_DGL_NAMESPACE
END_NAMESPACE_DGL
#else
END_NAMESPACE_DISTRHO
#endif

#endif // DISTRHO_WEB_VIEW_INCLUDE_IMPLEMENTATION



Loading…
Cancel
Save