Notifications
Clear all

Source code support?  

  RSS
Beelsebob
(@beelsebob)
New Member
Source code support?

Does anyone know where the best place to ask about support building and modifying PrusaSlicer is?  Is there a discord server with people who contribute to the software?

In this particular instance, my question is about building on macOS.  It appears that the instructions for building for macOS are incomplete.  Specifically, I've identified a whole set of additional dependencies that are needed:

boost
cereal
cgal
glew
ilmbase
libjpeg
libpng
nlopt
openvdb
qhull
tbb
wxwidgets

However, it appears also that the recommended method for getting hold of dependencies (Homebrew) doesn't give you these dependencies in a working state.  In the source's current state, it seems that while `cmake` succeeds, make fails due to libilmbase not being found. That appears to be caused by this error in a cmake script

--- a/cmake/modules/FindOpenVDB.cmake
+++ b/cmake/modules/FindOpenVDB.cmake
@@ -355,7 +355,7 @@ if (IlmBase_FOUND AND NOT TARGET IlmBase::Half)
   message(STATUS "Falling back to IlmBase found by pkg-config...")
 
   find_library(IlmHalf_LIBRARY NAMES Half)
-  if(IlmHalf_LIBRARY-NOTFOUND OR NOT IlmBase_INCLUDE_DIRS)
+  if("${IlmHalf_LIBRARY}" STREQUAL "IlmHalf_LIBRARY-NOTFOUND" OR NOT IlmBase_INCLUDE_DIRS)
     just_fail("IlmBase::Half can not be found!")
   endif()

This only gets you as far as `cmake` failing with a sensible error message:

CMake Warning at cmake/modules/FindOpenVDB.cmake:345 (message):
  IlmBase::Half can not be found!
Call Stack (most recent call first):
  cmake/modules/FindOpenVDB.cmake:367 (just_fail)
  CMakeLists.txt:555 (find_package)


CMake Error at CMakeLists.txt:560 (message):
  OpenVDB could not be found with the bundled find module.  You can try to
  specify the find module location of your OpenVDB installation with the
  OPENVDB_FIND_MODULE_PATH cache variable.

There's also some issues with libjpeg not supporting JPEG extensions for adding alpha channel support. What this all adds up to to me is that I'm getting hold of dependencies in the "wrong" way, and that the guys at Prusa actually building this are likely getting hold of them in a different way. Does anyone have any idea what the right way to get things building on macOS is?

Posted : 09/08/2022 6:14 pm
TT
 TT
(@tt-4)
Eminent Member
RE: Source code support?

I'm disappointed that this post hasn't been answered yet, because I'm having trouble building the current git repo in Linux.  Where do the normal PrusaSlicer developers discuss issues?

[ 83%] Building CXX object OpenEXR/IlmImf/CMakeFiles/IlmImf.dir/ImfZip.cpp.o
/home/ttabi/PrusaSlicer/deps/build/dep_OpenEXR-prefix/src/dep_OpenEXR/OpenEXR/IlmImf/ImfDwaCompressor.cpp: In member function ‘int Imf_2_5::DwaCompressor::compress(const char*, int, Imath_2_5::Box2i, const char*&)’:
/home/ttabi/PrusaSlicer/deps/build/dep_OpenEXR-prefix/src/dep_OpenEXR/OpenEXR/IlmImf/ImfDwaCompressor.cpp:2180:26: error: ‘compressBound’ was not declared in this scope; did you mean ‘Compression’?
 2180 |         uLongf outSize = compressBound (inSize);
      |                          ^~~~~~~~~~~~~
      |                          Compression
/home/ttabi/PrusaSlicer/deps/build/dep_OpenEXR-prefix/src/dep_OpenEXR/OpenEXR/IlmImf/ImfDwaCompressor.cpp:2218:34: error: ‘compressBound’ was not declared in this scope; did you mean ‘Compression’?
 2218 |                 uLongf destLen = compressBound (
      |                                  ^~~~~~~~~~~~~
      |                                  Compression
/home/ttabi/PrusaSlicer/deps/build/dep_OpenEXR-prefix/src/dep_OpenEXR/OpenEXR/IlmImf/ImfDwaCompressor.cpp:2271:25: error: ‘compressBound’ was not declared in this scope; did you mean ‘Compression’?
 2271 |         uLongf dstLen = compressBound ((uLongf)*rleUncompressedSize);
      |                         ^~~~~~~~~~~~~
      |                         Compression
/home/ttabi/PrusaSlicer/deps/build/dep_OpenEXR-prefix/src/dep_OpenEXR/OpenEXR/IlmImf/ImfDwaCompressor.cpp: In member function ‘void Imf_2_5::DwaCompressor::initializeBuffers(size_t&)’:
/home/ttabi/PrusaSlicer/deps/build/dep_OpenEXR-prefix/src/dep_OpenEXR/OpenEXR/IlmImf/ImfDwaCompressor.cpp:2973:48: error: ‘compressBound’ was not declared in this scope; did you mean ‘Compression’?
 2973 |                             static_cast<Int64>(compressBound (maxLossyDctAcSize)) );
      |                                                ^~~~~~~~~~~~~
      |                                                Compression
/home/ttabi/PrusaSlicer/deps/build/dep_OpenEXR-prefix/src/dep_OpenEXR/OpenEXR/IlmImf/ImfDwaCompressor.cpp:3010:44: error: ‘compressBound’ was not declared in this scope; did you mean ‘Compression’?
 3010 |     maxOutBufferSize += static_cast<Int64>(compressBound (rleBufferSize));
      |                                            ^~~~~~~~~~~~~
      |                                            Compression
gmake[5]:  [OpenEXR/IlmImf/CMakeFiles/IlmImf.dir/build.make:454: OpenEXR/IlmImf/CMakeFiles/IlmImf.dir/ImfDwaCompressor.cpp.o] Error 1
gmake[4]:  [CMakeFiles/Makefile2:444: OpenEXR/IlmImf/CMakeFiles/IlmImf.dir/all] Error 2
gmake[3]:  [Makefile:136: all] Error 2
make[2]:  [CMakeFiles/dep_OpenEXR.dir/build.make:86: dep_OpenEXR-prefix/src/dep_OpenEXR-stamp/dep_OpenEXR-build] Error 2
make[1]:  [CMakeFiles/Makefile2:367: CMakeFiles/dep_OpenEXR.dir/all] Error 2
make:  [Makefile:91: all] Error 2

Posted : 15/12/2022 11:27 pm
Beelsebob liked
Neophyl
(@neophyl)
Illustrious Member
RE:

They use github, which is presumably where you got the source code from in the first place.  Did you not notice the issues area when you grabbed the code ?

Just search one of the MANY issues around build problems.  Remember to search both OPEN and CLOSED issues.  If you cant find the answer already posted then open a new issue.

https://github.com/prusa3d/PrusaSlicer/issues

For example a quick search brought up this discussion which may be relevant https://github.com/prusa3d/PrusaSlicer/issues/7412

 

Posted : 15/12/2022 11:49 pm
Share: