Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deps: Update to wxWidgets 3.2.4 #3340

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

hadess
Copy link
Contributor

@hadess hadess commented Jan 9, 2024

This update fixes a large number of bugs, including cutting down on the number of run-time critical messages on startup.

This update also contains the NanoSVG build control options added in version 3.1.7.

@hadess
Copy link
Contributor Author

hadess commented Jan 9, 2024

I need to update 0001-wxWidget-fix.patch.

@hadess hadess force-pushed the wip/hadess/update-wxwidgets branch from 7335882 to 15a5271 Compare January 9, 2024 14:55
This update fixes a large number of bugs, including cutting down on the
number of run-time critical messages on startup.

This update also contains the NanoSVG build control options added in
version 3.1.7.

0001-wxWidget-fix.patch was updated, although the src/common/intl.cpp
and src/msw/bmpcbox.cpp hunks were dropped.
@hadess hadess force-pushed the wip/hadess/update-wxwidgets branch from 15a5271 to f8d3d11 Compare January 9, 2024 15:43
We can't have local copies of nanosvg being used in both wxWidgets and
slic3r, so add a new dep for nanosvg, use it in both wxWidgets and
libslic3r and remove the local copy.

[470/471] Linking CXX executable src/bambu-studio
FAILED: src/bambu-studio
: && /run/ccache/bin/c++ -std=gnu++20 -fext-numeric-literals -Wall -Wno-reorder -pthread -O3 -DNDEBUG -L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed src/CMakeFiles/BambuStudio.dir/BambuStudio.cpp.o -o src/bambu-studio -L/run/build/BambuStudio/deps/build/destdir/usr/local/lib -Wl,-rpath,/run/build/BambuStudio/deps/build/destdir/usr/local/lib:  src/libslic3r/liblibslic3r.a  -ldl  -lstdc++  -lpangoft2-1.0  src/slic3r/liblibslic3r_gui.a  -ldl  src/libslic3r/liblibslic3r.a  src/libnest2d/liblibnest2d.a  src/libslic3r/liblibslic3r.a  src/libnest2d/liblibnest2d.a  src/admesh/libadmesh.a  src/miniz/libminiz_static.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_log-gcc13-mt-x64-1_78.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_filesystem-gcc13-mt-x64-1_78.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_thread-gcc13-mt-x64-1_78.a  -lrt  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_locale-gcc13-mt-x64-1_78.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_regex-gcc13-mt-x64-1_78.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_chrono-gcc13-mt-x64-1_78.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_atomic-gcc13-mt-x64-1_78.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_date_time-gcc13-mt-x64-1_78.a  src/clipper/libclipper.a  src/boost/libnowide.a  src/glu-libtess/libglu-libtess.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libqhullcpp.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libqhullstatic_r.a  src/semver/libsemver.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libtbbmalloc.a  src/libslic3r/liblibslic3r_cgal.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libgmpxx.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libmpfr.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libgmp.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libpng.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKXDESTEP.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKSTEP.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKSTEP209.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKSTEPAttr.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKSTEPBase.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKXCAF.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKXSBase.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKVCAF.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKCAF.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKLCAF.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKCDF.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKV3d.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKService.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKMesh.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKBO.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKPrim.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKHLR.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKShHealing.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKTopAlgo.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKGeomAlgo.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKBRep.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKGeomBase.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKG3d.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKG2d.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKMath.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libTKernel.a  src/clipper2/libClipper2.a  src/mcut/libmcut.a  -lfreetype  -lfontconfig  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libopenvdb.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_system-gcc13-mt-x64-1_78.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libboost_iostreams-gcc13-mt-x64-1_78.a  -lbz2  -llzma  -lzstd  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libHalf-2_5.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libblosc.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libtbb.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libnlopt.a  src/imgui/libimgui.a  src/minilzo/libminilzo_static.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libGLEW.a  /usr/lib/x86_64-linux-gnu/libGL.so  src/hidapi/libhidapi.a  -ldl  -L/run/build/BambuStudio/deps/build/destdir/usr/local/lib  -pthread  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_gl-3.2.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_aui-3.2.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_baseu_net-3.2.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_media-3.2.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_webview-3.2.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_html-3.2.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_baseu-3.2.a  /usr/lib/x86_64-linux-gnu/libSM.so  /usr/lib/x86_64-linux-gnu/libICE.so  /usr/lib/x86_64-linux-gnu/libX11.so  /usr/lib/x86_64-linux-gnu/libXext.so  /usr/lib/x86_64-linux-gnu/libxkbcommon.so  /usr/lib/x86_64-linux-gnu/libEGL.so  /usr/lib/x86_64-linux-gnu/libGLX.so  -lwayland-egl  -lwayland-client  /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so  /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so  /usr/lib/x86_64-linux-gnu/libgstplayer-1.0.so  /usr/lib/x86_64-linux-gnu/libsoup-3.0.so  /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so  /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so  -lwx_gtk3u_core-3.2  -lgtk-3  -lgdk-3  -lz  -lharfbuzz  -lpangocairo-1.0  -lpango-1.0  -latk-1.0  -lcairo  -lcairo-gobject  /usr/lib/x86_64-linux-gnu/libSM.so  /usr/lib/x86_64-linux-gnu/libICE.so  /usr/lib/x86_64-linux-gnu/libX11.so  /usr/lib/x86_64-linux-gnu/libXext.so  /usr/lib/x86_64-linux-gnu/libxkbcommon.so  /usr/lib/x86_64-linux-gnu/libEGL.so  /usr/lib/x86_64-linux-gnu/libGLX.so  -lwayland-egl  -lwayland-client  /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so  /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so  /usr/lib/x86_64-linux-gnu/libgstplayer-1.0.so  /usr/lib/x86_64-linux-gnu/libsoup-3.0.so  /usr/lib/x86_64-linux-gnu/libwebkit2gtk-4.1.so  /usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so  -lwx_gtk3u_core-3.2  -lgtk-3  -lgdk-3  -lz  -lharfbuzz  -lpangocairo-1.0  -lpango-1.0  -latk-1.0  -lcairo  -lcairo-gobject  -lwx_baseu-3.2  /usr/lib/x86_64-linux-gnu/libz.so  /usr/lib/x86_64-linux-gnu/libfontconfig.so  /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so  -lnotify  -lgdk_pixbuf-2.0  /usr/lib/x86_64-linux-gnu/libpcre2-32.so  -lsecret-1  -lglib-2.0  -lgobject-2.0  -lgio-2.0  -lc  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libpng.a  /usr/lib/x86_64-linux-gnu/libz.so  /usr/lib/x86_64-linux-gnu/libfontconfig.so  /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so  -lnotify  -lgdk_pixbuf-2.0  /usr/lib/x86_64-linux-gnu/libpcre2-32.so  -lsecret-1  -lglib-2.0  -lgobject-2.0  -lgio-2.0  -lc  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libpng.a  -lm  -ldl  -lm  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libtiff.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib64/libjpeg.a  /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libexpat.a  /usr/lib/x86_64-linux-gnu/librt.a  /app/lib/libglfw.so.3.4  /usr/lib/x86_64-linux-gnu/libz.so  /usr/lib/x86_64-linux-gnu/libcurl.so  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  /usr/lib/x86_64-linux-gnu/libdbus-1.so  -lOSMesa  /usr/lib/x86_64-linux-gnu/libEGL.so  /usr/lib/x86_64-linux-gnu/libOpenGL.so  /usr/lib/x86_64-linux-gnu/libwayland-server.so  /usr/lib/x86_64-linux-gnu/libwayland-egl.so  /usr/lib/x86_64-linux-gnu/libwayland-client.so  /usr/lib/x86_64-linux-gnu/libcurl.so  -lgtk-3  -lgdk-3  -lz  -lharfbuzz  -lpangocairo-1.0  -lpango-1.0  -latk-1.0  -lcairo  -lcairo-gobject  -lgdk_pixbuf-2.0  -lgio-2.0  -lglib-2.0  -lgobject-2.0  -lgstreamer-1.0  -lgstbase-1.0  -lglib-2.0  -lgobject-2.0  -lgstreamer-1.0  -lgstbase-1.0 && cd /run/build/BambuStudio/build/src && ln -sfn /run/build/BambuStudio/resources /run/build/BambuStudio/build/src/../resources && cd /run/build/BambuStudio/build/src && ln -sfn zh_cn /run/build/BambuStudio/build/src/../resources/i18n/zh_CN
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a(bmpsvg.cpp.o):/run/build/BambuStudio/deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets/src/generic/../../3rdparty/nanosvg/src/nanosvg.h:1241: multiple definition of `nsvg__colors'; src/slic3r/liblibslic3r_gui.a(BitmapCache.cpp.o):(.data.rel.local+0x0): first defined here
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a(bmpsvg.cpp.o): in function `nsvg__parseXML(char*, void (*)(void*, char const*, char const**), void (*)(void*, char const*), void (*)(void*, char const*), void*)':
/run/build/BambuStudio/deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets/src/generic/../../3rdparty/nanosvg/src/nanosvg.h:331: multiple definition of `nsvg__parseXML(char*, void (*)(void*, char const*, char const**), void (*)(void*, char const*), void (*)(void*, char const*), void*)'; src/slic3r/liblibslic3r_gui.a(BitmapCache.cpp.o):BitmapCache.cpp:(.text+0xba50): first defined here
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a(bmpsvg.cpp.o): in function `nsvgDuplicatePath':
/run/build/BambuStudio/deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets/src/generic/../../3rdparty/nanosvg/src/nanosvg.h:2963: multiple definition of `nsvgDuplicatePath'; src/slic3r/liblibslic3r_gui.a(BitmapCache.cpp.o):BitmapCache.cpp:(.text+0xbb40): first defined here
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a(bmpsvg.cpp.o): in function `nsvgDelete':
/run/build/BambuStudio/deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets/src/generic/../../3rdparty/nanosvg/src/nanosvg.h:2993: multiple definition of `nsvgDelete'; src/slic3r/liblibslic3r_gui.a(BitmapCache.cpp.o):BitmapCache.cpp:(.text+0xbbd0): first defined here
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a(bmpsvg.cpp.o): in function `nsvgParse':
/run/build/BambuStudio/deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets/src/generic/../../3rdparty/nanosvg/src/nanosvg.h:2910: multiple definition of `nsvgParse'; src/slic3r/liblibslic3r_gui.a(BitmapCache.cpp.o):BitmapCache.cpp:(.text+0xbcb0): first defined here
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a(bmpsvg.cpp.o): in function `nsvgParseFromFile':
/run/build/BambuStudio/deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets/src/generic/../../3rdparty/nanosvg/src/nanosvg.h:2934: multiple definition of `nsvgParseFromFile'; src/slic3r/liblibslic3r_gui.a(BitmapCache.cpp.o):BitmapCache.cpp:(.text+0xc460): first defined here
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a(bmpsvg.cpp.o): in function `nsvgDeleteRasterizer':
/run/build/BambuStudio/deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets/src/generic/../../3rdparty/nanosvg/src/nanosvgrast.h:168: multiple definition of `nsvgDeleteRasterizer'; src/slic3r/liblibslic3r_gui.a(BitmapCache.cpp.o):BitmapCache.cpp:(.text+0xc530): first defined here
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a(bmpsvg.cpp.o): in function `nsvgCreateRasterizer':
/run/build/BambuStudio/deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets/src/generic/../../3rdparty/nanosvg/src/nanosvgrast.h:152: multiple definition of `nsvgCreateRasterizer'; src/slic3r/liblibslic3r_gui.a(BitmapCache.cpp.o):BitmapCache.cpp:(.text+0xc5c0): first defined here
/usr/lib/gcc/x86_64-unknown-linux-gnu/13.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld: /run/build/BambuStudio/deps/build/destdir/usr/local/lib/libwx_gtk3u_core-3.2.a(bmpsvg.cpp.o): in function `nsvgRasterize':
/run/build/BambuStudio/deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets/src/generic/../../3rdparty/nanosvg/src/nanosvgrast.h:1368: multiple definition of `nsvgRasterize'; src/slic3r/liblibslic3r_gui.a(BitmapCache.cpp.o):BitmapCache.cpp:(.text+0xc600): first defined here
@hadess
Copy link
Contributor Author

hadess commented Jan 10, 2024

How can I verify that both wxwidgets and bambustudio were built with nanosvg support?

@lanewei120
Copy link
Collaborator

as wxWidgets is a base module, which has lots of known issues on windows&&macos&&linux
I am afraid we can not upgrade it to a new version easily

we need to do lots of tests before the upgrading
and we will do it in next big version

anyway, @bambu123 please check the above question

@hadess
Copy link
Contributor Author

hadess commented Jan 25, 2024

Note that some changes/fixes are going to be necessary upstream to use this patch:

  • there's a change between 3.1.5 and 3.1.6 that broke the "Flushing Volumes" dialogue
  • nanoSVG support will need to be verified

@hadess
Copy link
Contributor Author

hadess commented Jan 25, 2024

there's a change between 3.1.5 and 3.1.6 that broke the "Flushing Volumes" dialogue

See wxWidgets/wxWidgets#24249

@lanewei120
Copy link
Collaborator

lanewei120 commented Jan 26, 2024

there is a patch "deps/wxWidgets/0001-wxWidget-fix.patch" applied to wxWidgets
and there are lots of the conflicts with 3.2.4
how did you solve those conflicts?

and maybe you can try to remove this patch and check whether the issue is there or not
if no issue, then we can focus on this patch file

@lanewei120
Copy link
Collaborator

a similiar issue before #2805

@hadess
Copy link
Contributor Author

hadess commented Jan 26, 2024

there is a patch "deps/wxWidgets/0001-wxWidget-fix.patch" applied to wxWidgets
and there are lots of the conflicts with 3.2.4
how did you solve those conflicts?

By manually applying all the changes to the upstream wxWidgets.

and maybe you can try to remove this patch and check whether the issue is there or not if no issue, then we can focus on this patch file

This isn't the problem, we don't apply it in the Flatpak.

The preferred way to dealing with this patch would be to upstream all the fixes and changes.

@lanewei120
Copy link
Collaborator

just tried on my windows
after building deps successfully
it can not pass compile at cmake stage

-- WXWIN environment set to:
CMake Error at C:/Program Files/CMake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find wxWidgets (missing: html adv gl core base webview aui net
media) (Required is at least version "3.1")
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files/CMake/share/cmake-3.20/Modules/FindwxWidgets.cmake:1025 (find_package_handle_standard_args)
src/CMakeLists.txt:50 (find_package)

-- Configuring incomplete, errors occurred!
See also "F:/work/projects/bambu_release/bamboo_slicer/build/CMakeFiles/CMakeOutput.log".
See also "F:/work/projects/bambu_release/bamboo_slicer/build/CMakeFiles/CMakeError.log".

@hadess
Copy link
Contributor Author

hadess commented Mar 2, 2024

after building deps successfully

If it can't find wxwidgets, then the deps aren't built and installed correctly. It's possible that newer wxwidgets have new or newer dependencies that you'll need to install and require to successfully test this.

I can't help you with the build though, I've never used Windows to do development.

@lanewei120 lanewei120 requested a review from MackBambu May 13, 2024 06:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants