Lukas Matena 64a9b546fd Added wipe tower weight into G-code metadata 1 год назад
..
+Blosc 2e4ce6e283 Working cross builds on Mac for deps 1 год назад
+Boost 0d32829914 Fix missing boost dependency on zlib 1 год назад
+CGAL 2e4ce6e283 Working cross builds on Mac for deps 1 год назад
+CURL 3fba2bc140 Dependency update with simplified cmake code 1 год назад
+Catch2 3fba2bc140 Dependency update with simplified cmake code 1 год назад
+Cereal 3fba2bc140 Dependency update with simplified cmake code 1 год назад
+EXPAT 3fba2bc140 Dependency update with simplified cmake code 1 год назад
+GLEW 03451c39e2 Followup fully converted deps to new system 1 год назад
+GMP d71b4e07ef GMP is building from arm64 to x86_64 on Mac 1 год назад
+JPEG 793e9f08fc Update JPEG, PNG, TIFF to build mac-universal 1 год назад
+LibBGCode 64a9b546fd Added wipe tower weight into G-code metadata 1 год назад
+MPFR 2e4ce6e283 Working cross builds on Mac for deps 1 год назад
+NLopt 03451c39e2 Followup fully converted deps to new system 1 год назад
+NanoSVG 3fba2bc140 Dependency update with simplified cmake code 1 год назад
+OCCT 2e4ce6e283 Working cross builds on Mac for deps 1 год назад
+OpenCSG 79b86abebf Fix inconsistent option variable names in deps 1 год назад
+OpenEXR 03451c39e2 Followup fully converted deps to new system 1 год назад
+OpenSSL 1772bc2fcc Fix OpenSSL 1 год назад
+OpenVDB 79b86abebf Fix inconsistent option variable names in deps 1 год назад
+PNG 64ab5fe6e1 Revert PNG version to 1.6.35 and patch its CMake from upstream 1 год назад
+Qhull 61c883b6c9 update qhull 1 год назад
+TBB 4cb5e6f57f Add possibility to build shared libs 1 год назад
+TIFF 035406b0af Trying to fix PS build after deps update 1 год назад
+ZLIB 3fba2bc140 Dependency update with simplified cmake code 1 год назад
+heatshrink ce5f1951ce upgrade heatshrink cmake file 1 год назад
+wxWidgets 589d7318fd wx might need CMAKE_DEBUG_POSTFIX to be empty after all 1 год назад
CMakeLists.txt 5069d6833d Remove redundant find_package and warning message 1 год назад
CMakePresets.json 96c1a69aae Fix debug build and remove platform detection wizardry in presets 1 год назад
README.md 92c4fd41bf Add readme to deps 1 год назад
autobuild.cmake 0436acc7d9 Add presets and deps autobuild 1 год назад

README.md

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.