From fd47370c5cafa5246819a99396c9f4c6c7e53aa9 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 26 Mar 2026 10:17:19 +0800 Subject: [PATCH] fix Windows build errors - wip --- deps/wxWidgets/wxWidgets.cmake | 13 ++++++++++++- src/CMakeLists.txt | 6 ++++-- src/slic3r/GUI/Widgets/WebView.cpp | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/deps/wxWidgets/wxWidgets.cmake b/deps/wxWidgets/wxWidgets.cmake index 931cdacc6d..4a1a4d9012 100644 --- a/deps/wxWidgets/wxWidgets.cmake +++ b/deps/wxWidgets/wxWidgets.cmake @@ -59,12 +59,23 @@ orcaslicer_add_cmake_project( # wxWidgets 3.3 cmake install doesn't include private headers. # OrcaSlicer uses some of the private headers (for accessibility support). # Copy the private headers directory after install. +if(MSVC) + set(_wx_inc_dest ${DESTDIR}/include/wx) +else() + set(_wx_inc_dest ${DESTDIR}/include/wx-3.3/wx) +endif() ExternalProject_Add_Step(dep_wxWidgets copy_private_headers DEPENDEES install COMMENT "Copying wxWidgets private headers" COMMAND ${CMAKE_COMMAND} -E copy_directory /include/wx/private - ${DESTDIR}/include/wx-3.3/wx/private + ${_wx_inc_dest}/private + COMMAND ${CMAKE_COMMAND} -E copy_directory + /include/wx/generic/private + ${_wx_inc_dest}/generic/private + COMMAND ${CMAKE_COMMAND} -E copy_directory + /include/wx/gtk/private + ${_wx_inc_dest}/gtk/private ) if (MSVC) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bc6c60aa3c..9aff002178 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -32,14 +32,16 @@ if (SLIC3R_GUI) set (wxWidgets_CONFIG_OPTIONS "--toolkit=gtk${SLIC3R_GTK}") find_package(wxWidgets 3.3 REQUIRED COMPONENTS base core adv html gl aui net media webview) else () - find_package(wxWidgets 3.3 REQUIRED COMPONENTS html adv gl core base webview aui net media) + find_package(wxWidgets 3.3 CONFIG REQUIRED COMPONENTS html adv gl core base webview aui net media) endif () if(UNIX) message(STATUS "wx-config path: ${wxWidgets_CONFIG_EXECUTABLE}") endif() - include(${wxWidgets_USE_FILE}) + if(wxWidgets_USE_FILE) + include(${wxWidgets_USE_FILE}) + endif() find_package(JPEG QUIET) diff --git a/src/slic3r/GUI/Widgets/WebView.cpp b/src/slic3r/GUI/Widgets/WebView.cpp index 88f5115003..f5424f19e5 100644 --- a/src/slic3r/GUI/Widgets/WebView.cpp +++ b/src/slic3r/GUI/Widgets/WebView.cpp @@ -329,7 +329,7 @@ wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url) bool WebView::CheckWebViewRuntime() { wxWebViewFactoryEdge factory; - auto wxVersion = factory.GetVersionInfo(); + auto wxVersion = factory.GetVersionInfo(wxVersionContext::RunTime); return wxVersion.GetMajor() != 0; }