From b35a982c6f55735623a98eea0bde849a547a3370 Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Thu, 26 Mar 2026 13:01:55 +0100 Subject: [PATCH] Windows... --- private/lib/windows/x86_64/rktwebview.dll | Bin 99328 -> 99328 bytes .../lib/windows/x86_64/rktwebview_test.exe | Bin 28672 -> 28672 bytes private/racket-webview-qt.rkt | 65 ++++++++++-------- rktwebview_qt/rktwebview.cpp | 12 ++++ rktwebview_qt/rktwebview.h | 1 + 5 files changed, 48 insertions(+), 30 deletions(-) diff --git a/private/lib/windows/x86_64/rktwebview.dll b/private/lib/windows/x86_64/rktwebview.dll index 21a44dbd30137b885260fb1b5869207618f016fa..49f11b448167621e6523e2db79068e6dca9d3311 100644 GIT binary patch delta 23178 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 delta 22926 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 b;fcc3dK)Kh%-A@0WA?_}11lD>H`xCHe0c;g diff --git a/private/lib/windows/x86_64/rktwebview_test.exe b/private/lib/windows/x86_64/rktwebview_test.exe index 2a1ab4160f2e17d46f85e3c5bba91ee643a5b76c..93ebe2c6f3610bc63d99cd98ae68a0494a61d3a9 100644 GIT binary patch delta 99 zcmZp8z}WDBaRDQfg5+i7in2@M%TtreGE>Xr q(^E_0Q_E8GN*Dwu|BZEKl$`7sCn_p{q9!-LER}&lWOH`hR6zg(upjdP delta 99 zcmZp8z}WDBaRDP!i{NG^Mxg)@EfzR~hmm9Q`dD#B*2%|XWhFToin2@M%TtreGE>Xr q(^E_0Q_E8GN*Dwt|BZEKl$h)oCo0O1q9!-LER}&lcyo5#R6zhhULd3Z diff --git a/private/racket-webview-qt.rkt b/private/racket-webview-qt.rkt index be8fbc2..3240ae3 100644 --- a/private/racket-webview-qt.rkt +++ b/private/racket-webview-qt.rkt @@ -4,6 +4,7 @@ ffi/unsafe/define ffi/unsafe/atomic ffi/unsafe/os-thread + ffi/unsafe/cvector racket/async-channel racket/runtime-path racket/port @@ -131,35 +132,6 @@ "QtWebEngineProcess.exe" "QtWebEngineProcess")) -(set! quiet-call - (when (or (eq? os 'windows) (eq? os 'linux)) - (putenv "QT_PLUGIN_PATH" - (path->string (build-path os-lib-dir))) - (putenv "QTWEBENGINEPROCESS_PATH" - (path->string (build-path os-lib-dir webengine-process))) - (putenv "QTWEBENGINE_RESOURCES_PATH" - (path->string (build-path os-lib-dir "resources"))) - (putenv "QTWEBENGINE_LOCALES_PATH" - (path->string (build-path os-lib-dir "translations" "qtwebengine_locales"))) - (putenv "RKT_WEBVIEW_PRG" - (let ((p - (path->string (build-path os-lib-dir rktwebview-prg))) - ) - (displayln p) - p - )) - (when (eq? os 'linux) - (putenv "QT_QPA_PLATFORM" "xcb") - (putenv "LD_LIBRARY_PATH" - (string-append - (path->string (build-path os-lib-dir)) ":" - (path->string (build-path os-lib-dir "platforms")) - ) - ) - ) - ) - ) - ;;; Preload libraries #| @@ -209,6 +181,8 @@ (define-ffi-definer define-rktwebview webview-lib) + + ;;; Callbacks from the OS library ;(define callback-box (box '())) @@ -300,6 +274,9 @@ ) ) +;RKTWEBVIEW_EXPORT void rkt_webview_env(const char *env_cmds[]); +(define-rktwebview rkt_webview_env + (_fun _cvector -> _void)) ;RKTWEBVIEW_QT_EXPORT void rkt_webview_init(int &argc, char **argv); (define-rktwebview rkt_webview_init @@ -458,6 +435,34 @@ ; 'done))))) ; (f))))) +(define rkt_env + (when (or (eq? os 'windows) (eq? os 'linux)) + (let ((env (list (string-append "QT_PLUGIN_PATH=" (path->string (build-path os-lib-dir))) + (string-append "QTWEBENGINEPROCESS_PATH=" (path->string (build-path os-lib-dir webengine-process))) + (string-append "QTWEBENGINE_RESOURCES_PATH=" (path->string (build-path os-lib-dir "resources"))) + (string-append "QTWEBENGINE_LOCALES_PATH=" (path->string (build-path os-lib-dir "translations" "qtwebengine_locales"))) + (string-append "RKT_WEBVIEW_PRG=" (path->string (build-path os-lib-dir rktwebview-prg)))))) + (when (eq? os 'linux) + (set! env (append + env + (list + (string-append "QT_QPA_PLATFORM=" "xcb") + (string-append "LD_LIBRARY_PATH=" + (string-append + (path->string (build-path os-lib-dir)) ":" + (path->string (build-path os-lib-dir "platforms")) + ))))) + ) + (append env (list #f))))) + +;(define env_array (_array _string/utf-8 (length rkt_env))) + +;(let ((i 0)) +; (while (< i (length rkt_env)) +; (array-set! env_array i (list-ref rkt_env i)) +; (set! i (+ i 1)))) + +(rkt_webview_env (list->cvector rkt_env _string/utf-8)) (rkt_webview_init) @@ -493,7 +498,7 @@ (set! waiting (- waiting 1)) ) ) - (sleep 0.001) + (sleep 0.005) (f)) )) (f))) diff --git a/rktwebview_qt/rktwebview.cpp b/rktwebview_qt/rktwebview.cpp index 3bba070..4d62fe5 100644 --- a/rktwebview_qt/rktwebview.cpp +++ b/rktwebview_qt/rktwebview.cpp @@ -526,3 +526,15 @@ rkt_data_t *rkt_webview_get_event() return nullptr; } } + +void rkt_webview_env(const char *env_cmds[]) +{ + int i; + for(i = 0; env_cmds[i] != nullptr && strcmp(env_cmds[i], "") != 0; i++) { +#ifdef WIN32 + _putenv(env_cmds[i]); +#else + putenv(env_cmds[i]); +#endif + } +} diff --git a/rktwebview_qt/rktwebview.h b/rktwebview_qt/rktwebview.h index 902a7d2..5bd8fd2 100644 --- a/rktwebview_qt/rktwebview.h +++ b/rktwebview_qt/rktwebview.h @@ -10,6 +10,7 @@ extern "C" { +RKTWEBVIEW_EXPORT void rkt_webview_env(const char *env_cmds[]); RKTWEBVIEW_EXPORT void rkt_webview_init(); RKTWEBVIEW_EXPORT void rkt_webview_cleanup(); //RKTWEBVIEW_EXPORT void rkt_webview_process_events(int for_ms);