PrusaSlicer/deps
2024-11-18 23:48:09 +01:00
..
+Blosc Working cross builds on Mac for deps 2023-10-25 14:57:43 +02:00
+Boost Fix missing boost dependency on zlib 2023-11-01 16:01:47 +01:00
+Catch2 Dependency update with simplified cmake code 2023-10-24 15:06:08 +02:00
+Cereal Dependency update with simplified cmake code 2023-10-24 15:06:08 +02:00
+CGAL Working cross builds on Mac for deps 2023-10-25 14:57:43 +02:00
+CURL Dependency update with simplified cmake code 2023-10-24 15:06:08 +02:00
+Eigen Refactor CMake and improve #includes. 2024-07-08 15:36:46 +02:00
+EXPAT Dependency update with simplified cmake code 2023-10-24 15:06:08 +02:00
+GLEW Followup fully converted deps to new system 2023-10-24 15:06:46 +02:00
+GMP GMP is building from arm64 to x86_64 on Mac 2023-10-25 13:21:40 +02:00
+heatshrink upgrade heatshrink cmake file 2023-11-03 13:45:20 +01:00
+JPEG Update JPEG, PNG, TIFF to build mac-universal 2023-10-24 16:34:59 +02:00
+LibBGCode Updated libbgcode version to include profile_version and produced_on coversion 2024-11-18 23:48:09 +01:00
+MPFR Working cross builds on Mac for deps 2023-10-25 14:57:43 +02:00
+NanoSVG Dependency update with simplified cmake code 2023-10-24 15:06:08 +02:00
+NLopt Followup fully converted deps to new system 2023-10-24 15:06:46 +02:00
+OCCT SPE-2257: Downgrade OCCT to 7.6.1 because newer versions are triangulating chamfers incorrectly. 2024-08-27 12:54:20 +02:00
+OpenCSG Remove the need to list libraries to build in deps/CMakeLists.txt 2023-12-22 14:15:44 +01:00
+OpenEXR Followup fully converted deps to new system 2023-10-24 15:06:46 +02:00
+OpenSSL Fix OpenSSL 2023-10-24 15:07:34 +02:00
+OpenVDB Switch OpenVDB repository to prusa3d 2023-12-18 13:58:27 +01:00
+PNG Revert PNG version to 1.6.35 and patch its CMake from upstream 2023-10-30 09:34:37 +01:00
+Qhull update qhull 2023-10-24 15:07:34 +02:00
+TBB Add possibility to build shared libs 2023-10-24 15:07:34 +02:00
+wxWidgets Patch wxWidget CMake to download and use recent WebView2 library 2024-08-09 09:54:35 +02:00
+ZLIB Dependency update with simplified cmake code 2023-10-24 15:06:08 +02:00
autobuild.cmake Add presets and deps autobuild 2023-10-24 16:31:02 +02:00
CMakeLists.txt Fix of Webview2 deps. 2024-03-25 12:05:55 +01:00
CMakePresets.json Fix debug build and remove platform detection wizardry in presets 2023-10-27 15:59:15 +02:00
README.md Add readme to deps 2023-11-13 13:37:59 +01:00

PrusaSlicer dependencies

This folder is a top level CMake project to build the dependent libraries for PrusaSlicer. It can be configured and built in the standard CMake way using the commands:

cmake .. 
cmake --build .

Each dependency is specified in a separate folder prefixed with the + sign. The underlying framework to download and build external projects is CMake's ExternalProject module. No other tool (e.g. Python) is involved in the process. All the standard CMake switches work as expected, -G for alternative build file generators like Ninja or Visual Studio projects. Important toolchain configuration variables are forwarded to each package build script if they happen to be CMake based. Otherwise they are forwarded to the appropriate build system of a particular library package.

A note about build configurations on MSVC

To build PrusaSlicer in different configurations with a Visual Studio toolchain, it is necessary to also build the dependencies in the appropriate configurations. As MSVC runtimes are not compatible between different build configurations, it's not possible to link a library built in Release mode to PrusaSlicer being built in Debug mode. This fact applies to all libraries except those with proper C linkage and interface lacking any STL container (e.g. ZLIB). Many of the dependent libraries don't fall into this cathegory thus they need to be built twice: in Release and Debug versions.

The DEP_DEBUG flag is used to specify if Debug versions of the affected libraries will be built. If an MSVC toochain is used, this flag is ON by default and OFF for any other platform and compiler suite.

Note that it's not necessary to build the dependencies for each CMake build configuration (e.g. RelWithDebInfo). When PrusaSlicer is built in such a configuration, a pure Debug or Release build of dependencies will be compatible with the main project. CMake should automatically choose the right configuration of the dependencies in such cases. This may not work in all cases (see https://stackoverflow.com/questions/24262081/cmake-relwithdebinfo-links-to-debug-libs).

Automatic dependency build while configuring PrusaSlicer

It is possible build the dependencies while configuring the main PrusaSlicer project. To invoke this feature, configure PrusaSlicer with the -DPrusaSlicer_BUILD_DEPS:BOOL=ON flag. All the necessary arguments will be forwarded to the dependency build and the paths to finding the libraries (CMAKE_PREFIX_PATH) will automatically be set for the main project.

All that needs to be done to build the whole PrusaSlicer project from scratch is to use the command

cmake --preset default -DPrusaSlicer_BUILD_DEPS:BOOL=ON

in the top level source directory. This method makes use of presets which are a relatively new feature of CMake. To list the current available presets, use the

cmake --list-presets

command in the source directory where a CMakePresets.json file is available.