Bambu and Snapmaker 3D Designer Build and Installation
Published on
Last updated on
Technical
AI Since Bambu and Snapmaker 3D Designer software on Linux is only available as AppImage bundles or Flatpaks, and I prefer not to use those formats, I decided to build them myself from source.
Bambu
#!/bin/bashexport ROOT=$(pwd)export CMAKE_POLICY_VERSION_MINIMUM=3.5sudo apt install -y git cmake clang g++ build-essential m4 pkgconf libgl1-mesa-dev libglu1-mesa-dev libosmesa6-dev libwayland-dev libxkbcommon-dev wayland-protocols extra-cmake-modules libcairo2-dev libgtk-3-dev libsoup2.4-dev libwebkit2gtk-4.1-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad nasm yasm libx264-dev libboost-filesystem-dev libboost-system-dev libboost-thread-dev libboost-log-dev libboost-locale-dev libboost-iostreams-dev libcurlpp-dev libglew-dev libglfw3-dev libcereal-dev libnlopt-dev libnlopt-cxx-dev libopenvdb-dev libopenvdb-tools libwxgtk3.2-dev libcgal-dev libopencv-dev libocct-foundation-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-modeling-data-dev libocct-modeling-algorithms-dev libocct-visualization-dev libnanovdb-toolsrm -rf deps/build deps/installmkdir -p deps/build deps/install
cmake --fresh -S deps -B deps/build -G Ninja -DDESTDIR=deps/install -DCMAKE_BUILD_TYPE=Release -DDEP_WX_GTK3=1 -DJPEG_VERSION=8 -DOPENVDB_FIND_MODULE_PATH=/usr/lib/x86_64-linux-gnu/cmake/OpenVDBcmake --build deps/build
rm -rf bambustudio_buildmkdir -p bambustudio_buildcmake --fresh -S . -B bambustudio_build -DSLIC3R_STATIC=ON -DSLIC3R_GTK=3 -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="${ROOT}/deps/install/usr/local" -DCMAKE_INSTALL_PREFIX=/opt/BambuStudio/ -DCMAKE_BUILD_TYPE=Releasesudo cmake --build bambustudio_build --target install --config ReleaseSnapmaker
-
Build and Install
export ROOT=$(pwd)#!/bin/bashexport CMAKE_POLICY_VERSION_MINIMUM=3.5sudo apt install -y git cmake clang g++ build-essential m4 pkgconf libgl1-mesa-dev libglu1-mesa-dev libosmesa6-dev libwayland-dev libxkbcommon-dev wayland-protocols extra-cmake-modules libcairo2-dev libgtk-3-dev libsoup2.4-dev libwebkit2gtk-4.1-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad nasm yasm libx264-dev libboost-filesystem-dev libboost-system-dev libboost-thread-dev libboost-log-dev libboost-locale-dev libboost-iostreams-dev libcurlpp-dev libglew-dev libglfw3-dev libcereal-dev libnlopt-dev libnlopt-cxx-dev libopenvdb-dev libopenvdb-tools libwxgtk3.2-dev libcgal-dev libopencv-dev libocct-foundation-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-modeling-data-dev libocct-modeling-algorithms-dev libocct-visualization-dev libnanovdb-toolsrm -rf deps/build deps/installmkdir -p deps/build deps/installcmake --fresh -S deps -B deps/build -G Ninja -DDESTDIR=deps/install -DCMAKE_BUILD_TYPE=Release -DDEP_WX_GTK3=1 -DJPEG_VERSION=8 -DOPENVDB_FIND_MODULE_PATH=/usr/lib/x86_64-linux-gnu/cmake/OpenVDBcmake --build deps/buildrm -rf snapemaker_buildmkdir -p snapemaker_buildcmake --fresh -S . -B snapemaker_build -G "Ninja Multi-Config" -DCMAKE_PREFIX_PATH="${ROOT}/deps/install/usr/local" -DCMAKE_INSTALL_PREFIX=/opt/snapmaker/ -DCMAKE_BUILD_TYPE=Release -DSLIC3R_STATIC=1 -DSLIC3R_PCH=OFF -DORCA_TOOLS=ON -DSLIC3R_GTK=3sudo cmake --build snapemaker_build --config Release --target install -
create a wrapper
/opt/snapmaker/snapmaker-orca, since additional envronment variables should be configured.#!/bin/bashDIR=$(dirname "$(readlink -f "$0")")export LD_LIBRARY_PATH="$DIR/bin:$LD_LIBRARY_PATH"export LC_ALL=Cexport DBUS_FATAL_WARNINGS=0if [ "$XDG_SESSION_TYPE" = "wayland" ] && [ "$ZINK_DISABLE_OVERRIDE" != "1" ]; thenif command -v glxinfo >/dev/null 2>&1; thenRENDERER=$(glxinfo | grep "OpenGL renderer string:" | sed 's/.*: //')if echo "$RENDERER" | grep -qi "NVIDIA"; thenZINK_FORCE_OVERRIDE=1if command -v nvidia-smi >/dev/null 2>&1; thenDRIVER_VERSION=$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n1)DRIVER_MAJOR=$(echo "$DRIVER_VERSION" | cut -d. -f1)[ "$DRIVER_MAJOR" -le 555 ] && ZINK_FORCE_OVERRIDE=0fiif [ "$ZINK_FORCE_OVERRIDE" = "1" ]; thenexport __GLX_VENDOR_LIBRARY_NAME=mesaexport __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.jsonexport MESA_LOADER_DRIVER_OVERRIDE=zinkexport GALLIUM_DRIVER=zinkexport WEBKIT_DISABLE_DMABUF_RENDERER=1fifififiexec "$DIR/bin/snapmaker-orca" "$@"