wxWidgets 3.3 cmake install doesn't include private headers.
OrcaSlicer uses some private headers for accessibility support.
Add a post-install step to copy the private headers directory.
wxWidgets 3.3 bundles its own NanoSVG in bmpsvg.cpp, conflicting with
OrcaSlicer's bundled copy which includes the nsvgRasterizeXY extension.
Set wxUSE_NANOSVG=OFF in deps cmake to use OrcaSlicer's version only.
# Description
update cmake to 4.3.x version for better support of new build tools
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the
changes made in this PR.
-->
Defaults to ignore:
/opt/local (MacPorts)
/opt/homebrew (Homebrew on ARM)
/opt/local (Homebrew on x86)
We want to ignore these paths so any dependencies they might contain don't interfere with the build.
This fixes https://github.com/OrcaSlicer/OrcaSlicer/issues/10460
* Fix GIT_COMMIT_HASH not set in Flatpak builds
The env var check was gated inside the .git directory check, so
Flatpak builds (which exclude .git from the sandbox) always fell
back to "0000000". Lift the env var check to top level and inject
the commit hash into the Flatpak manifest via build-options.env.
* Switch Flatpak build to Clang/LLD via LLVM 21 SDK extension
- Add org.freedesktop.Sdk.Extension.llvm21
- Bump runtime to GNOME 49 (SDK 25.08) for llvm21 availability
* fix build errors and improving build speed for flatpak
* fxi more build errors
* Update error messages for GNOME Platform and SDK versions
* Reapply "Switch to self hosted mac runner (#12024)" with proper fix
This reverts commit 783f9926e3.
* use conditional logic for self-hosted runners
* improve readbility
- Add configurable GLEW_USE_EGL option (default OFF) to match wxWidgets
- Explicitly set wxUSE_GLCANVAS_EGL=OFF for vendored wxWidgets build
- Add compile-time check to detect EGL/GLX backend mismatch between
GLEW and wxWidgets, preventing silent rendering failures
The bug occurred when GLEW was compiled with EGL support (using
eglGetProcAddress) but wxWidgets created GLX contexts. This mismatch
caused OpenGL function pointers to fail loading, resulting in blank
3D model preview.
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Add read support for Google's Draco (.drc) format.
* Fix build on Linux
* Use boost instead of fstat.
* Switch to boost memory-mapped file to save RAM and potentially improve performance.
* Trim trailing whitespace.
* Initial Draco write support.
Currently always exports with 16-bit precision and speed 0 (best compression).
The back-end function does have arguments to specify them, it's just not hooked into the GUI.
* Add Draco to the About dialogue.
* Fix Linux compile (hopefully)
* Add an option to associate DRC files on Windows.
* Implement a Preferences option to set Draco position quantization bits
* Update src/slic3r/GUI/Preferences.cpp
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
* Some slight changes to ianalexis's suggestion.
* Implement a create_item_spinctrl() function for numeric inputs, and use that instead of create_item_input().
* Move "bits" to inside the spinctrl box.
* Refactor following yw4z's feedback
* Update src/slic3r/GUI/Preferences.cpp
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
* Change to 0 bits as the default setting for Draco export precision.
* Change to a lossy checkbox and a bits field with a range of 8-30.
* Proper SpinInput code from yw4z
* Revert "Proper SpinInput code from yw4z"
This reverts commit 7e9c85f31a.
* Revert "Change to a lossy checkbox and a bits field with a range of 8-30."
This reverts commit d642c9bcc0.
* Redo preferences based on SoftFever's feedback
* Refactor to minimize code duplication
* Fix padding
* Improve Draco export quality level tooltip clarity
Clarify that 0 means lossless compression (not uncompressed),
document the valid lossy range (8-30), and better explain the
tradeoff between file size and geometric detail.
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: Ian Bassi <ian.bassi@outlook.com>
# Description
[Updated Qhull]
changelog
https://github.com/qhull/qhull/releases/tag/v8.0.2
# Screenshots/Recordings/Graphs
<!--
> Please attach relevant screenshots to showcase the UI changes.
> Please attach images that can help explain the changes.
-->
## Tests
<!--
> Please describe the tests that you have conducted to verify the changes made in this PR.
-->
Add fallback URL for MPFR source download
Updated MPFR.cmake to include both the GNU FTP and mpfr.org URLs for downloading the MPFR source. This improves reliability in case one of the sources is unavailable.
* Add script with VS version auto detection
* Add msvc145 toolset support
* Fix issue when build slicer only
* Fix vs2026 OpenCV build
* Set github action to use new build script
* Get vs version from `msbuild --version` so it works for github action
* Auto generate CMAKE_PREFIX_PATH/DESTDIR
* Auto set CMAKE_INSTALL_PREFIX
* Always default SLIC3R_STATIC to on
* Only allow one value for CMAKE_OSX_ARCHITECTURES
* Set arch for OpenSSL from CMAKE_OSX_ARCHITECTURES
* Set CMAKE_INSTALL_RPATH from CMAKE_PREFIX_PATH
* Default CMAKE_MACOSX_RPATH and CMAKE_MACOSX_BUNDLE to on
* Auto set BBL_RELEASE_TO_PUBLIC based on build config
* Default to GTK 3
* Fix linux debug build
Update find modules to also look for the debug variant of the libraries
* Set DEP_DEBUG and ORCA_INCLUDE_DEBUG_INFO based on CMAKE_BUILD_TYPE
* Add a fallback value for Windows SDK if the env variables are not set
* Reflect CMake changes in the build scripts
* Add missing line
* Fix auto setting DEP_DEBUG and ORCA_INCLUDE_DEBUG_INFO
* Update dep folder name for linux in GH actions
* Invert dep-folder-name conditions
`''` is considered a falsy value, which was causing the value to always be set to 'OrcaSlicer_dep'
* Properly handle finding the debug version of libnoise
* Convert FindNLopt.cmake to a config mode wrapper
* Use separate build directory for debug builds on Linux
* Move find_package for libnoise
* Cleanup and improve linux build script
- Add dry run
- Add build in RelWithDebInfo
- Add function to print and run commands
* Remove linux destdir deprecation and cleanup
* Fix flatpak build
* Disable fail fast for flatpak builds
* Flatpak improvements
- Build wxWidgets using deps cmake
- Improve handling of space freeing commands while building deps
- Allow cmake to directly download deps
- Set needed flags within cmake instead of the build manifest
* Print clean build commands
* Implement shellcheck recommendations
* Cleanup
* Fix CMakeLists.txt syntax by replacing empty elseif with else statement
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
Move many third-party components' source codes from the src folder to a new folder called deps_src. The goal is to make the code structure clearer and easier to navigate.
* remove OSMesa
OSMesa is depricated for quite a while and got removed with Mesa 25.1.0
* remove OSMesa from all buildfiles, readmes, etc…
---------
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
* Revert 98be94a729
We carry a wxgtk patch [1] that detects dark theme automatically. If it
doesn't work, it means that either selected Gtk theme is not installed
in flatpak environment, or appropriate xdg-desktop-portal for the DE is not
installed.
Plasma users may need to install org.gtk.Gtk3theme.Adapta
Also see https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.Settings.html
[1] 0001-Enable-using-a-dark-theme-when-Gnome-dark-style-is-s.patch
* flatpak: introduce ORCA_SLICER_DARK_THEME to force dark theme
If ORCA_SLICER_DARK_THEME is set, dark theme will be applied regardless
of system settings.
* FIX: occt build failure
Pick up build error fix from upstream:
7236e83dcc
/run/build/BambuStudio/deps/build/dep_OCCT-prefix/src/dep_OCCT/src/StdPrs/StdPrs_BRepFont.cxx: In member function ‘Standard_Boolean StdPrs_BRepFont::renderGlyph(Standard_Utf32Char, TopoDS_Shape&)’:
/run/build/BambuStudio/deps/build/dep_OCCT-prefix/src/dep_OCCT/src/StdPrs/StdPrs_BRepFont.cxx:465:30: error: invalid conversion from ‘unsigned char*’ to ‘const char*’ [-fpermissive]
465 | const char* aTags = &anOutline->tags[aStartIndex];
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| unsigned char*
* Set policy CMP0167 to NEW
Newer cmake switched to using BoostConfig.cmake shipped with boost-1.70
or later for detecting boost, to preserve old behavior policy CMP0167
was introduced.
Set it to "NEW" to indicate that we want to use .cmake shipped with
boost
* Add OpenSSL tarball link to the manifest
* Add curl zip to the manifest
* flatpak: bump runtime version to 47
Gnome 47 has been released a while ago
---------
Co-authored-by: Bastien Nocera <hadess@hadess.net>
* Patch GMP to build on GCC15
* Add cstdint include - GCC15 defaults to C23
* Update GMP PATCH_COMMAND to work without a valid git repo
* Set GMP_DIRECTORY_FLAG
* Fix OCCT and OpenCV patching during build
The inclusion of the `--directory` flag here isn't necessary because of
how `PATCH_COMMAND` applies patches. In fact this causes issues when
trying to build from an archive, `--directory` seems to imply `--index`
and thus this patch only succeeds if you're inside an initialized git
repo. If you simply use the archive without a git repo the build fails
at the patch step.
* Alter patch command based on git repo status
`git apply` has different behavior when inside a git repo vs not. If
we're in a git repo we need to fully quality the path for these patches,
otherwise we can omit the directory flag.
---------
Co-authored-by: Joe Palazzolo <joe@joepalazzolo.net>
* Add support for perlin noise fuzzy skin
* Support multiple types of coherent noise
* Updated tooltips for more clarity.
* Reorder options as suggested by @discip
* Fix accidental removal of &
* Move libnoise to deps
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>
* Initial commit for the builder
* fix wx, use hack to install into /app
* add some workarounds for /usr/local
* fix up rest of paths
* attempt to fix wxwebview undef
* figure out why wxwidgets isnt getting its patches applied
* do "proper" patching of wxwidgets
* Flip the flag
* actually append the /usr/local
* restrict package finding to flatpak only
* Update the destdir stuff for mpfr, gmp
* Transfer over all the _destdir, again
* update patch command for all other plats
* initial ci check
* what even happened
* clear ci image
* I doubt this will do anything
* do cleanup after running each step
* remove build objects for flatpak ci
* compress debug info
* Fix MacOS build
* Try saving space after building deps
* No debug info for now
* Do debug info, use thin static archives
* use BSD flag, not --thin
* try building with lto
* Use release, no debug info
* remove lto
* Revert the last 5 commits
* It might require write perms
* Revert "It might require write perms"
This reverts commit 44cec58a57.
* Import fixes for merge
* remove some patch stuff
* the worst hack!
* remove uneeded patches
* Initial commit for the builder
* note to self, go back to regular wx
* attempt to fix wxwebview undef
* do "proper" patching of wxwidgets
* update patch command for all other plats
* what even happened
* -ldep_name-NOTFOUND is still here
* concat patches
* Build wx with flatpak
* more wx shenatigans
* fix a missing import
* build wx with proper flags
* fix imports and libs
* trigger ci
* try fixing mac and windows ci
* remove duplicate definition of freetype
* curl may not have openssl for a dep
* has openssl been found?
* force building
* build images on apple
* cleanup for review
* cleanup cmake files
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>