-
Notifications
You must be signed in to change notification settings - Fork 270
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
WIP: deps/wxWidgets: Fix BambuStudio linking #3278
base: master
Are you sure you want to change the base?
Conversation
It will disable bmpsvg. Instead we should inline nanosvg functions in header files. |
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
bf52bf5
to
b06dcdb
Compare
I'll be testing something out now, that I can't easily test locally. Let's see if it builds! |
The build fails in part because the version of wxWidgets that BambuStudio uses doesn't have any build flags to control the NanoSVG usage. It would be good to upgrade that a version with that feature first, I'll try and do that separately. |
Done in #3340 |
We can't have local copies of nanosvg being used in both wxWidgets and slic3r, so disable the wxWidgets usage.