llvm 19 got a lot pickier about templates. Here's the simple adjustment
needed to make prusaslicer build with it. This depends on the update to
CGLA 5.6.2 that I just committed.

Index: Makefile
===================================================================
RCS file: /cvs/ports/cad/prusaslicer/Makefile,v
diff -u -p -r1.16 Makefile
--- Makefile    30 Jan 2025 10:15:11 -0000      1.16
+++ Makefile    30 Jan 2025 10:16:44 -0000
@@ -4,7 +4,7 @@ DPB_PROPERTIES = parallel
 
 V =            2.8.1
 PKGNAME =      prusaslicer-${V}
-REVISION =     0
+REVISION =     1
 
 GH_ACCOUNT =   prusa3d
 GH_PROJECT =   PrusaSlicer
Index: patches/patch-src_libslic3r_Arrange_Core_DataStoreTraits_hpp
===================================================================
RCS file: patches/patch-src_libslic3r_Arrange_Core_DataStoreTraits_hpp
diff -N patches/patch-src_libslic3r_Arrange_Core_DataStoreTraits_hpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_libslic3r_Arrange_Core_DataStoreTraits_hpp        28 Jan 
2025 18:38:34 -0000
@@ -0,0 +1,15 @@
+Fix build with llvm-19
+https://github.com/freebsd/freebsd-ports/commit/778f3f32a33da38f6b526acdddfd6d805a9d0535
+
+Index: src/libslic3r/Arrange/Core/DataStoreTraits.hpp
+--- src/libslic3r/Arrange/Core/DataStoreTraits.hpp.orig
++++ src/libslic3r/Arrange/Core/DataStoreTraits.hpp
+@@ -71,7 +71,7 @@ template<class T, class TT = T> using WritableDataStor
+ template<class T, class ArrItem>
+ void set_data(ArrItem &itm, const std::string &key, T &&data)
+ {
+-    WritableDataStoreTraits<ArrItem>::template set(itm, key, 
std::forward<T>(data));
++    WritableDataStoreTraits<ArrItem>::template set<T>(itm, key, 
std::forward<T>(data));
+ }
+ 
+ template<class T> constexpr bool IsReadWritableDataStore = IsDataStore<T> && 
IsWritableDataStore<T>;
Index: patches/patch-src_libslic3r_MeshBoolean_cpp
===================================================================
RCS file: patches/patch-src_libslic3r_MeshBoolean_cpp
diff -N patches/patch-src_libslic3r_MeshBoolean_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_libslic3r_MeshBoolean_cpp 28 Jan 2025 20:34:43 -0000
@@ -0,0 +1,12 @@
+Index: src/libslic3r/MeshBoolean.cpp
+--- src/libslic3r/MeshBoolean.cpp.orig
++++ src/libslic3r/MeshBoolean.cpp
+@@ -10,6 +10,8 @@
+ 
+ #undef PI
+ 
++#include <boost/next_prior.hpp>
++
+ // Include igl first. It defines "L" macro which then clashes with our 
localization
+ #include <igl/copyleft/cgal/mesh_boolean.h> // IWYU pragma: keep
+ #include <igl/MeshBooleanType.h>

Reply via email to