summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO69
-rw-r--r--0001-cxx-version.patch25
-rw-r--r--0002-silence-compiler-warnings.patch24
-rw-r--r--0003-silence-preprocessing.patch25
-rw-r--r--0004-glfw.patch (renamed from glfw.patch)14
-rw-r--r--0005-boost107400.patch66
-rw-r--r--0006-python.patch (renamed from python.patch)79
-rw-r--r--0007-cpplib.patch53
-rw-r--r--0008-clang-isnan-isinf.patch28
-rw-r--r--0009-openexr3.patch394
-rw-r--r--0010-openvdb.patch140
-rw-r--r--0011-openimageio.patch41
-rw-r--r--0012-opencolorio.patch24
-rw-r--r--0013-boost179-fstream.patch37
-rw-r--r--0014-spdlog.patch136
-rw-r--r--PKGBUILD77
-rw-r--r--boost016900_serialization.patch41
17 files changed, 1167 insertions, 106 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9a6fb5e7de41..5176c0585650 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,37 +1,78 @@
pkgbase = luxcorerender
pkgdesc = Physically correct, unbiased rendering engine.
- pkgver = 2.3
- pkgrel = 1
+ pkgver = 2.7.beta1
+ pkgrel = 2
epoch = 2
url = https://www.luxcorerender.org/
arch = x86_64
license = Apache
makedepends = opencl-headers
+ makedepends = cuda-sdk
makedepends = boost
- makedepends = git
- makedepends = doxygen
makedepends = cmake
+ makedepends = doxygen
+ makedepends = git
makedepends = ninja
makedepends = pyside2-tools
depends = opencl-icd-loader
depends = blosc
depends = boost-libs
- depends = embree
+ depends = embree3
depends = glfw
depends = gtk3
depends = openimagedenoise
depends = openimageio
+ depends = openvdb
+ depends = python
+ depends = spdlog
optdepends = opencl-driver: for gpu acceleration
optdepends = pyside2: for pyluxcoretools gui
provides = luxrays
- source = https://github.com/LuxCoreRender/LuxCore/archive/luxcorerender_v2.3.tar.gz
- source = python.patch
- source = glfw.patch
- source = boost016900_serialization.patch
- sha256sums = d0afda77bd2a89ac050255495d8b0939096d259a92cf99fa5a92a51256a3d8a4
- sha256sums = a00ee865eee4d9edf685bd4010aea4c3ae96ba5d22c2e17cda313b4d3468a806
- sha256sums = 4e04c3eb653f00d2389aff8e7fda2d244e258cbca3a22e32c13388a3984e4bb1
- sha256sums = 495d183aef045e53ec8c53aa08cdcc082fb4e69ccb0857693cb0cf2684db0760
+ options = !lto
+ source = https://github.com/LuxCoreRender/LuxCore/archive/luxcorerender_v2.7beta1.tar.gz
+ source = 0001-cxx-version.patch
+ source = 0002-silence-compiler-warnings.patch
+ source = 0003-silence-preprocessing.patch
+ source = 0004-glfw.patch
+ source = 0005-boost107400.patch
+ source = 0006-python.patch
+ source = 0007-cpplib.patch
+ source = 0008-clang-isnan-isinf.patch
+ source = 0009-openexr3.patch
+ source = 0010-openvdb.patch
+ source = 0011-openimageio.patch
+ source = 0012-opencolorio.patch
+ source = 0013-boost179-fstream.patch
+ source = 0014-spdlog.patch
+ sha256sums = b844989b8229bf02f3c8aa6845be6a587aa5ae55a45861591119ad0e1a195867
+ sha256sums = d3e0c4f74341746bf271efa6a62f3f0e2a72072afd86c032a9a5a1a565cf28f0
+ sha256sums = 540f6e92877165c06ce70d2c7ac5c28ec95632520941b645f63ffa5d77541693
+ sha256sums = d754596d2c17a3d12fa38abb373f4a58b2ca7a0b8df8fdf7ba9e991753998b6b
+ sha256sums = 77db48d1a823f345a170c0632d3bfa0a962c92f6c662117e2a96a172d48732e9
+ sha256sums = 415ba07ff99f9b97106aa806c6c1b40b68be3c39096ecd08cd2e0d40e6ea2fc3
+ sha256sums = fa142fa282ae3e2482e7c39ffa07382d68ad732f32468eae5aa67d4378efc144
+ sha256sums = 71b62a8c8c61779d914ce8e10bb5594dd0ed8bfecc1d6007263870393bb89955
+ sha256sums = 09bf685f7367b05ac2d756e22c3b8d7a1ba931bca7ef4d6096852bbcdd203f8b
+ sha256sums = e2034c00d456cf04843f84ee36eca991498a9580d52d15fafebe63f61642afb2
+ sha256sums = 12bb2b0873b14f7878b9ec05b36a18156879b770da5ba47505bf3d6004038092
+ sha256sums = 9eca0d8c3de4088ed02b40b5269ce709077f0b810eaa570050d9f41c320e79ee
+ sha256sums = 1d91f515a4fcfb88119e02a71f4a5185a6765991296cd1d4760e36a642c29ff1
+ sha256sums = 3185b3e4b42423fb51ef007e9f36f193ef7bd54bb83efdb242e7ba3c6fb67532
+ sha256sums = ca46c01fbe2183916e20e990c23991148e878e401cec6d9ddabf7aa6bfdc6933
+ b2sums = ead966b0df7bb72ac9aa2aefb1e5f2dd020156a8e66f67aeff75d29606072ea7b147ddc4d6effea687baf4653e670bd3ad93fc9c7b0e7cac340cb1d5976adb14
+ b2sums = 2b8c411347c4b27b21cddf7f4543beeaa229968e95f59f762b872264afd23cb5cea8074bd606b8e56df1a84473ada13720f8fb097fcfb80303495a89ed9052ef
+ b2sums = 97302dc99edebe5f35d5d469b2a2a9172eb7357248fb2bcc4510507de59a4d1db32cbfaf18acbba29b5046011615f57eb6ab322346560ec2777172c6b08a30b9
+ b2sums = c951ce3d6172c0a916c13fa53c682336a74d229c6e903f26c40f7a6e91a6b3ff54241178f85e4945d621210d23f54503b95e69d0f05e40246165eb23422aafb9
+ b2sums = 88e40b301961daef2e493b71cbd497aeb63035e9ed1ff2078c98c6a2c0e17f7c23a712905cd335ad3cc518b7b53b503441b261bc04ee6a27cb8531f74ec019f8
+ b2sums = 8ef8933c5dc6acb0881ddb51f959530eeda80c7d7d0a1e26ce5878e19b082746e95af8bee53e5937276e500473bbd56137cf68e5901b2a0a48d9255e11016cbf
+ b2sums = 96708a30229163849cefc4e7e13db571fe2529f08952a999a2176f99b4748869391184345780ef22d74ae8c93fb18b0a8831fcb5f3b043bcb63b545e90396205
+ b2sums = 7c8979e9549b03f0535d5760d9929acfb0d954b027253ec42ce910033c5aac60a34af3bbe92b6b07b9a3d0c0e66a43373b74697bdbc91e2ca6ae42ae4866352d
+ b2sums = 947d3cba2c9e1c4c430f9623a13f5275613491ac1125c88b042dc4bb0fa6905c8955731e75e954850035f3605df12fdf5f77b5caec7495b3d321aa6eb357bd57
+ b2sums = 3e2431d7b0175a7ec0ac452d0201222a26d16cb02191aa7a65a14cfb6af5a99109e82efeb8125f5b8b76314bfbc8ede5d055da5955cfa5d0238870d9de3bd73c
+ b2sums = 76ee674dcbcd52c698924cbcd547d2b8a4b3761cf2ade8d7c463b2a5bdc9f741537485ce9db12968d3b43a28cca1508223e3a363fc7c0b7b9483e107d77155e7
+ b2sums = 6ebaf49099a78adb59c0f9c601410529b8709377ec1c6eacf9510bdf5fba5027cdd81bae6422425cceab6ee1ebb4709a3edf9d818fcce2a5b475e009153a7842
+ b2sums = f56cec862ace8a1499a1a718f3c88488661b7d683d4e9bafc027d20fcb6542ce91a70f11ad46dd7a5ad0e61f2cd8dff6247617ad8d51b378e96fdc5e0c1ae94a
+ b2sums = 78333747e508f28293c85175e0f9d0624b8303c1f4f5491304e79c3dbc104fedf4eaac9065f0876a968d379898eb5810cd802350adae44de5f44673b0949f1ba
+ b2sums = 5e59c732a417775984cd85755b7a1810b33fb8a09cb3a8542c048958e7788d1aac3ecef5f28266278ca6444e1f59421b1d167a305eda9e70c0ae62155c01274b
pkgname = luxcorerender
-
diff --git a/0001-cxx-version.patch b/0001-cxx-version.patch
new file mode 100644
index 000000000000..e7f2cf76380f
--- /dev/null
+++ b/0001-cxx-version.patch
@@ -0,0 +1,25 @@
+From d73cadf257821da12ce526432ed6fe8e6fb5665a Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Wed, 31 Jan 2024 06:51:35 +0100
+Subject: [PATCH 01/14] cxx-version
+
+---
+ CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 72c1996ac..fad738f43 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -41,6 +41,8 @@ unset(CMAKE_CONFIGURATION_TYPES CACHE)
+ # This boots up the generator:
+ enable_language(C)
+ enable_language(CXX)
++set(CMAKE_CXX_STANDARD 23)
++set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+ if (CMAKE_CONFIGURATION_TYPES)
+
+--
+2.43.0
+
diff --git a/0002-silence-compiler-warnings.patch b/0002-silence-compiler-warnings.patch
new file mode 100644
index 000000000000..758649761611
--- /dev/null
+++ b/0002-silence-compiler-warnings.patch
@@ -0,0 +1,24 @@
+From a7943d7b3f00c5d1405214761bbdc65bf9c578ad Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:19:13 +0200
+Subject: [PATCH 02/14] silence-compiler-warnings
+
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fad738f43..a266db8f2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -43,6 +43,7 @@ enable_language(C)
+ enable_language(CXX)
+ set(CMAKE_CXX_STANDARD 23)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
+
+ if (CMAKE_CONFIGURATION_TYPES)
+
+--
+2.43.0
+
diff --git a/0003-silence-preprocessing.patch b/0003-silence-preprocessing.patch
new file mode 100644
index 000000000000..61a2fcaedc20
--- /dev/null
+++ b/0003-silence-preprocessing.patch
@@ -0,0 +1,25 @@
+From ad805c618b38f3a9918f7e10dfa3a5411f42283f Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:19:34 +0200
+Subject: [PATCH 03/14] silence-preprocessing
+
+---
+ cmake/KernelPreprocess.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/KernelPreprocess.cmake b/cmake/KernelPreprocess.cmake
+index d877f0ef3..3d71d4a57 100644
+--- a/cmake/KernelPreprocess.cmake
++++ b/cmake/KernelPreprocess.cmake
+@@ -23,7 +23,7 @@
+ ################################################################################
+
+ FUNCTION(PreprocessOCLKernel NAMESPACE KERNEL SRC DST)
+- MESSAGE(STATUS "Preprocessing OpenCL kernel: " ${SRC} " => " ${DST} )
++ #MESSAGE(STATUS "Preprocessing OpenCL kernel: " ${SRC} " => " ${DST} )
+
+ add_custom_command(
+ OUTPUT ${DST}
+--
+2.43.0
+
diff --git a/glfw.patch b/0004-glfw.patch
index 29c1e0fef7af..90070a15188b 100644
--- a/glfw.patch
+++ b/0004-glfw.patch
@@ -1,5 +1,14 @@
+From be9e10a37ac78e8f3aee57d65694c0eebc27b90c Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:16:28 +0200
+Subject: [PATCH 04/14] glfw
+
+---
+ samples/luxcoreui/CMakeLists.txt | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
diff --git a/samples/luxcoreui/CMakeLists.txt b/samples/luxcoreui/CMakeLists.txt
-index 33b50b3d0..ba1982a42 100644
+index 8b74e0704..d2e823874 100644
--- a/samples/luxcoreui/CMakeLists.txt
+++ b/samples/luxcoreui/CMakeLists.txt
@@ -22,7 +22,10 @@
@@ -14,3 +23,6 @@ index 33b50b3d0..ba1982a42 100644
include_directories(deps/glfw-3.1.1/include)
include_directories(deps/nfd/include)
+--
+2.43.0
+
diff --git a/0005-boost107400.patch b/0005-boost107400.patch
new file mode 100644
index 000000000000..6aa57c25f308
--- /dev/null
+++ b/0005-boost107400.patch
@@ -0,0 +1,66 @@
+From 15c4773cdbe2322860face1ac8f54baf24ebf04b Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:17:09 +0200
+Subject: [PATCH 05/14] boost107400
+
+---
+ src/slg/engines/bakecpu/bakecputhread.cpp | 2 ++
+ src/slg/engines/pathocl/pathoclopenclthread.cpp | 2 ++
+ src/slg/engines/tilepathocl/tilepathoclthread.cpp | 2 ++
+ src/slg/film/filmserialize.cpp | 1 +
+ 4 files changed, 7 insertions(+)
+
+diff --git a/src/slg/engines/bakecpu/bakecputhread.cpp b/src/slg/engines/bakecpu/bakecputhread.cpp
+index d4766aaf3..82629772c 100644
+--- a/src/slg/engines/bakecpu/bakecputhread.cpp
++++ b/src/slg/engines/bakecpu/bakecputhread.cpp
+@@ -23,6 +23,8 @@
+ #include "slg/utils/varianceclamping.h"
+ #include "slg/film/imagepipeline/plugins/bakemapmargin.h"
+
++#include <boost/bind.hpp>
++
+ using namespace std;
+ using namespace luxrays;
+ using namespace slg;
+diff --git a/src/slg/engines/pathocl/pathoclopenclthread.cpp b/src/slg/engines/pathocl/pathoclopenclthread.cpp
+index d006861a5..47d8e7d1e 100644
+--- a/src/slg/engines/pathocl/pathoclopenclthread.cpp
++++ b/src/slg/engines/pathocl/pathoclopenclthread.cpp
+@@ -31,6 +31,8 @@
+ #include "slg/renderconfig.h"
+ #include "slg/engines/pathocl/pathocl.h"
+
++#include <boost/bind.hpp>
++
+ using namespace std;
+ using namespace luxrays;
+ using namespace slg;
+diff --git a/src/slg/engines/tilepathocl/tilepathoclthread.cpp b/src/slg/engines/tilepathocl/tilepathoclthread.cpp
+index f8e3fa2d1..4a44d13c8 100644
+--- a/src/slg/engines/tilepathocl/tilepathoclthread.cpp
++++ b/src/slg/engines/tilepathocl/tilepathoclthread.cpp
+@@ -24,6 +24,8 @@
+ #include "slg/kernels/kernels.h"
+ #include "slg/engines/tilepathocl/tilepathocl.h"
+
++#include <boost/bind.hpp>
++
+ using namespace std;
+ using namespace luxrays;
+ using namespace slg;
+diff --git a/src/slg/film/filmserialize.cpp b/src/slg/film/filmserialize.cpp
+index 6cd3aee46..120eb8cb5 100644
+--- a/src/slg/film/filmserialize.cpp
++++ b/src/slg/film/filmserialize.cpp
+@@ -20,6 +20,7 @@
+
+ #include <boost/lexical_cast.hpp>
+ #include <boost/foreach.hpp>
++#include <boost/serialization/library_version_type.hpp>
+ #include <boost/serialization/unordered_set.hpp>
+
+ #include "slg/film/film.h"
+--
+2.43.0
+
diff --git a/python.patch b/0006-python.patch
index 205a2d12ee35..16dafd757827 100644
--- a/python.patch
+++ b/0006-python.patch
@@ -1,5 +1,19 @@
+From a6fbe12e4031aea2a23088ec1ec224dbe84a19af Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:17:31 +0200
+Subject: [PATCH 06/14] python
+
+---
+ CMakeLists.txt | 4 ++++
+ samples/luxcoreconsole/CMakeLists.txt | 2 +-
+ samples/luxcoredemo/CMakeLists.txt | 2 +-
+ samples/luxcorescenedemo/CMakeLists.txt | 2 +-
+ samples/luxcoreui/CMakeLists.txt | 3 ++-
+ tests/luxcoreimplserializationdemo/CMakeLists.txt | 2 +-
+ 6 files changed, 10 insertions(+), 5 deletions(-)
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a4a073f2e..4025bc894 100644
+index a266db8f2..393a1cbaa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,6 +28,10 @@ MESSAGE(STATUS "CMake version " ${CMAKE_VERSION} " detected")
@@ -14,64 +28,59 @@ index a4a073f2e..4025bc894 100644
SET(CMAKE_LEGACY_CYGWIN_WIN32 0)
diff --git a/samples/luxcoreconsole/CMakeLists.txt b/samples/luxcoreconsole/CMakeLists.txt
-index dc3f5d8cf..a8b429814 100644
+index 96e09bc6a..cdb83231c 100644
--- a/samples/luxcoreconsole/CMakeLists.txt
+++ b/samples/luxcoreconsole/CMakeLists.txt
-@@ -28,4 +28,4 @@ set(LUXCORECONSOLE_SRCS
-
- add_executable(luxcoreconsole ${LUXCORECONSOLE_SRCS})
-
--TARGET_LINK_LIBRARIES(luxcoreconsole ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${OPENCL_LIBRARIES})
-\ No newline at end of file
-+TARGET_LINK_LIBRARIES(luxcoreconsole ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${OPENCL_LIBRARIES})
+@@ -31,5 +31,5 @@ add_executable(luxcoreconsole ${LUXCORECONSOLE_SRCS})
+ if(APPLE)
+ TARGET_LINK_LIBRARIES(luxcoreconsole expat "-framework Carbon" "-framework IOKit" ${LUXCORE_LIBRARY} ${Boost_LIBRARIES})
+ else()
+-TARGET_LINK_LIBRARIES(luxcoreconsole ${LUXCORE_LIBRARY} ${Boost_LIBRARIES})
++TARGET_LINK_LIBRARIES(luxcoreconsole ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
+ endif()
diff --git a/samples/luxcoredemo/CMakeLists.txt b/samples/luxcoredemo/CMakeLists.txt
-index c140dc23b..c8cba9880 100644
+index 194104caf..241dbd5f2 100644
--- a/samples/luxcoredemo/CMakeLists.txt
+++ b/samples/luxcoredemo/CMakeLists.txt
@@ -29,4 +29,4 @@ set(LUXCORELIBDEMO_SRCS
add_executable(luxcoredemo ${LUXCORELIBDEMO_SRCS})
add_definitions(${VISIBILITY_FLAGS})
--TARGET_LINK_LIBRARIES(luxcoredemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${OPENCL_LIBRARIES})
-+TARGET_LINK_LIBRARIES(luxcoredemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${OPENCL_LIBRARIES})
+-TARGET_LINK_LIBRARIES(luxcoredemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${OPENCL_LIBRARIES} ${CUDA_ALL_LIBRARIES})
++TARGET_LINK_LIBRARIES(luxcoredemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${OPENCL_LIBRARIES} ${CUDA_ALL_LIBRARIES})
diff --git a/samples/luxcorescenedemo/CMakeLists.txt b/samples/luxcorescenedemo/CMakeLists.txt
-index 90c1967cd..aa024f650 100644
+index 1840a0e42..504739572 100644
--- a/samples/luxcorescenedemo/CMakeLists.txt
+++ b/samples/luxcorescenedemo/CMakeLists.txt
@@ -29,4 +29,4 @@ set(LUXCORESCENEDEMO_SRCS
add_executable(luxcorescenedemo ${LUXCORESCENEDEMO_SRCS})
add_definitions(${VISIBILITY_FLAGS})
--TARGET_LINK_LIBRARIES(luxcorescenedemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${OPENCL_LIBRARIES})
-+TARGET_LINK_LIBRARIES(luxcorescenedemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${OPENCL_LIBRARIES})
+-TARGET_LINK_LIBRARIES(luxcorescenedemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES})
++TARGET_LINK_LIBRARIES(luxcorescenedemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
diff --git a/samples/luxcoreui/CMakeLists.txt b/samples/luxcoreui/CMakeLists.txt
-index 33b50b3d0..ba1982a42 100644
+index d2e823874..80325af7e 100644
--- a/samples/luxcoreui/CMakeLists.txt
+++ b/samples/luxcoreui/CMakeLists.txt
-@@ -88,4 +91,5 @@ TARGET_LINK_LIBRARIES(luxcoreui
+@@ -103,5 +103,6 @@ TARGET_LINK_LIBRARIES(luxcoreui
+ ${LUXCORE_LIBRARY}
${OPENGL_LIBRARIES}
${GTK3_LIBRARIES}
- ${Boost_LIBRARIES}
-+ ${PYTHON_LIBRARIES}
- ${OPENCL_LIBRARIES})
-diff --git a/tests/benchsimple/CMakeLists.txt b/tests/benchsimple/CMakeLists.txt
-index 3ac004b2b..b2abe340c 100644
---- a/tests/benchsimple/CMakeLists.txt
-+++ b/tests/benchsimple/CMakeLists.txt
-@@ -22,4 +22,4 @@ link_directories (${LuxRays_LIB_DIR})
- add_executable(benchsimple benchsimple.cpp)
- add_definitions(${VISIBILITY_FLAGS})
- remove_definitions("-DLUXCORE_DLL")
--target_link_libraries(benchsimple luxrays ${EMBREE_LIBRARY} ${TBB_LIBRARY} )
-+target_link_libraries(benchsimple luxrays ${EMBREE_LIBRARY} ${PYTHON_LIBRARIES} ${TBB_LIBRARY} )
+- ${Boost_LIBRARIES})
++ ${Boost_LIBRARIES}
++ ${PYTHON_LIBRARIES})
+ endif()
diff --git a/tests/luxcoreimplserializationdemo/CMakeLists.txt b/tests/luxcoreimplserializationdemo/CMakeLists.txt
-index c8d9c4aa9..1dc6b7c63 100644
+index bdd3445b8..baa52f622 100644
--- a/tests/luxcoreimplserializationdemo/CMakeLists.txt
+++ b/tests/luxcoreimplserializationdemo/CMakeLists.txt
-@@ -30,4 +30,4 @@ include_directories(${LuxRays_SOURCE_DIR}/deps/bcd-1.1/include)
+@@ -31,4 +31,4 @@ include_directories(${LuxRays_SOURCE_DIR}/deps/opencolorio-2.0.0/include)
add_executable(luxcoreimplserializationdemo ${LUXCOREIMPL_SERIALIZATIONDEMO_SRCS})
--TARGET_LINK_LIBRARIES(luxcoreimplserializationdemo luxcore slg-core slg-film slg-kernels luxrays bcd opensubdiv openvdb ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES})
-\ Brak znaku nowej linii na końcu pliku
-+TARGET_LINK_LIBRARIES(luxcoreimplserializationdemo luxcore slg-core slg-film slg-kernels luxrays bcd opensubdiv openvdb ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${PYTHON_LIBRARIES} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES})
+-TARGET_LINK_LIBRARIES(luxcoreimplserializationdemo luxcore slg-core slg-film slg-kernels luxrays bcd opensubdiv openvdb opencolorio ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES})
+\ No newline at end of file
++TARGET_LINK_LIBRARIES(luxcoreimplserializationdemo luxcore slg-core slg-film slg-kernels luxrays bcd opensubdiv openvdb ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${PYTHON_LIBRARIES})
+--
+2.43.0
+
diff --git a/0007-cpplib.patch b/0007-cpplib.patch
new file mode 100644
index 000000000000..4517b62ef8ac
--- /dev/null
+++ b/0007-cpplib.patch
@@ -0,0 +1,53 @@
+From a0165f46b8bd07d0c19f5e5ded7a3f102adb9f1f Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:17:51 +0200
+Subject: [PATCH 07/14] cpplib
+
+---
+ src/slg/scene/parsematerials.cpp | 2 ++
+ src/slg/scene/parseobjects.cpp | 2 ++
+ src/slg/scene/parsevolumes.cpp | 2 ++
+ 3 files changed, 6 insertions(+)
+
+diff --git a/src/slg/scene/parsematerials.cpp b/src/slg/scene/parsematerials.cpp
+index 7b3952125..d26cb29e3 100644
+--- a/src/slg/scene/parsematerials.cpp
++++ b/src/slg/scene/parsematerials.cpp
+@@ -52,6 +52,8 @@
+
+ #include "slg/utils/filenameresolver.h"
+
++#include <atomic>
++
+ using namespace std;
+ using namespace luxrays;
+ using namespace slg;
+diff --git a/src/slg/scene/parseobjects.cpp b/src/slg/scene/parseobjects.cpp
+index ddabedfae..3cb8712ba 100644
+--- a/src/slg/scene/parseobjects.cpp
++++ b/src/slg/scene/parseobjects.cpp
+@@ -19,6 +19,8 @@
+ #include "slg/scene/scene.h"
+ #include "slg/utils/filenameresolver.h"
+
++#include <atomic>
++
+ using namespace std;
+ using namespace luxrays;
+ using namespace slg;
+diff --git a/src/slg/scene/parsevolumes.cpp b/src/slg/scene/parsevolumes.cpp
+index c9798c2ec..8101b5742 100644
+--- a/src/slg/scene/parsevolumes.cpp
++++ b/src/slg/scene/parsevolumes.cpp
+@@ -32,6 +32,8 @@
+ #include "slg/volumes/heterogenous.h"
+ #include "slg/volumes/homogenous.h"
+
++#include <atomic>
++
+ using namespace std;
+ using namespace luxrays;
+ using namespace slg;
+--
+2.43.0
+
diff --git a/0008-clang-isnan-isinf.patch b/0008-clang-isnan-isinf.patch
new file mode 100644
index 000000000000..52b53615ba73
--- /dev/null
+++ b/0008-clang-isnan-isinf.patch
@@ -0,0 +1,28 @@
+From 816c122471a1d0000a4059ca43142431e63eb755 Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:18:23 +0200
+Subject: [PATCH 08/14] clang-isnan-isinf
+
+---
+ include/luxrays/utils/utils.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/include/luxrays/utils/utils.h b/include/luxrays/utils/utils.h
+index b6584b383..d48d7d93d 100644
+--- a/include/luxrays/utils/utils.h
++++ b/include/luxrays/utils/utils.h
+@@ -48,6 +48,11 @@ template <class T>
+ int isinf(T a) { return std::isinf(a); }
+ #endif
+
++#ifdef __clang__
++using std::isnan;
++using std::isinf;
++#endif
++
+ #if defined(__APPLE__)
+ #include <string>
+ #endif
+--
+2.43.0
+
diff --git a/0009-openexr3.patch b/0009-openexr3.patch
new file mode 100644
index 000000000000..7753e652f8b3
--- /dev/null
+++ b/0009-openexr3.patch
@@ -0,0 +1,394 @@
+From 596bb2f33c70b7c6859019971938194cc39e8bdb Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:18:50 +0200
+Subject: [PATCH 09/14] openexr3
+
+---
+ cmake/Packages/FindOpenEXR.cmake | 241 ++++++++++--------
+ .../src/OpenColorIO/BitDepthUtils.h | 2 +-
+ .../src/OpenColorIO/MathUtils.h | 2 +-
+ .../src/OpenColorIO/ops/range/RangeOp.cpp | 2 +-
+ .../OpenColorIO/transforms/builtins/ACES.cpp | 2 +-
+ .../transforms/builtins/OpHelpers.cpp | 2 +-
+ .../src/libutils/oiiohelpers/oiiohelpers.cpp | 2 +-
+ deps/openvdb-7.0.0/openvdb/Types.h | 2 +-
+ include/slg/imagemap/imagemap.h | 2 +-
+ include/slg/utils/halfserialization.h | 2 +-
+ 10 files changed, 137 insertions(+), 122 deletions(-)
+
+diff --git a/cmake/Packages/FindOpenEXR.cmake b/cmake/Packages/FindOpenEXR.cmake
+index dfe517b34..a2f7b4c62 100644
+--- a/cmake/Packages/FindOpenEXR.cmake
++++ b/cmake/Packages/FindOpenEXR.cmake
+@@ -1,123 +1,138 @@
+-################################################################################
+-# Copyright 1998-2020 by authors (see AUTHORS.txt)
++# - Find OpenEXR library
++# Find the native OpenEXR includes and library
++# This module defines
++# OPENEXR_INCLUDE_DIRS, where to find ImfXdr.h, etc. Set when
++# OPENEXR_INCLUDE_DIR is found.
++# OPENEXR_LIBRARIES, libraries to link against to use OpenEXR.
++# OPENEXR_ROOT_DIR, The base directory to search for OpenEXR.
++# This can also be an environment variable.
++# OPENEXR_FOUND, If false, do not try to use OpenEXR.
+ #
+-# This file is part of LuxCoreRender.
++# For individual library access these advanced settings are available
++# OPENEXR_HALF_LIBRARY, Path to Half library
++# OPENEXR_IEX_LIBRARY, Path to Half library
++# OPENEXR_ILMIMF_LIBRARY, Path to Ilmimf library
++# OPENEXR_ILMTHREAD_LIBRARY, Path to IlmThread library
++# OPENEXR_IMATH_LIBRARY, Path to Imath library
+ #
+-# Licensed under the Apache License, Version 2.0 (the "License");
+-# you may not use this file except in compliance with the License.
+-# You may obtain a copy of the License at
+-#
+-# http://www.apache.org/licenses/LICENSE-2.0
+-#
+-# Unless required by applicable law or agreed to in writing, software
+-# distributed under the License is distributed on an "AS IS" BASIS,
+-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-# See the License for the specific language governing permissions and
+-# limitations under the License.
+-################################################################################
+-
+-# - Try to find OpenEXR
+-# Library is first searched for in OPENEXR_ROOT
+-# Once done, this will define
++# also defined, but not for general use are
++# OPENEXR_LIBRARY, where to find the OpenEXR library.
++
++#=============================================================================
++# Copyright 2011 Blender Foundation.
+ #
+-# OPENEXR_FOUND - system has OpenEXR
+-# OPENEXR_INCLUDE_DIRS - the OpenEXR include directories
+-# OPENEXR_LIBRARIES - link these to use OpenEXR
+-
+-# Lookup user specified path first
+-SET(OpenEXR_TEST_HEADERS ImfXdr.h OpenEXRConfig.h IlmBaseConfig.h)
+-SET(OpenEXR_INC_SUFFIXES include/OpenEXR include Include Headers)
+-FIND_PATH(OPENEXR_INCLUDE_DIRS
+- NAMES ${OpenEXR_TEST_HEADERS}
+- PATHS "${OPENEXR_ROOT}"
+- PATH_SUFFIXES ${OpenEXR_INC_SUFFIXES}
+- NO_DEFAULT_PATH
+- DOC "The directory where IlmBaseConfig.h resides"
++# Distributed under the OSI-approved BSD 3-Clause License,
++# see accompanying file BSD-3-Clause-license.txt for details.
++#=============================================================================
++
++# If OPENEXR_ROOT_DIR was defined in the environment, use it.
++IF(NOT OPENEXR_ROOT_DIR AND NOT $ENV{OPENEXR_ROOT_DIR} STREQUAL "")
++ SET(OPENEXR_ROOT_DIR $ENV{OPENEXR_ROOT_DIR})
++ENDIF()
++
++# Old versions (before 2.0?) do not have any version string, just assuming this should be fine though.
++SET(_openexr_libs_ver_init "2.0")
++
++SET(_openexr_FIND_COMPONENTS
++ Iex
++ Imath
++ OpenEXR
++ IlmThread
+ )
+-FIND_PATH(OPENEXR_INCLUDE_DIRS
+- NAMES ${OpenEXR_TEST_HEADERS}
+- PATHS /usr/local /usr /sw /opt/local /opt/csw /opt
+- PATH_SUFFIXES ${OpenEXR_INC_SUFFIXES}
+- DOC "The directory where IlmBaseConfig.h resides"
++
++SET(_openexr_SEARCH_DIRS
++ ${OPENEXR_ROOT_DIR}
++ /opt/lib/openexr
++)
++
++FIND_PATH(OPENEXR_INCLUDE_DIR
++ NAMES
++ OpenEXR/ImfXdr.h
++ HINTS
++ ${_openexr_SEARCH_DIRS}
++ PATH_SUFFIXES
++ include
+ )
+
+-IF (OPENEXR_INCLUDE_DIRS)
+-# Lookup additional headers in case they are in subdirectories
+-SET(OpenEXR_MODULES Iex Imf half Imath IlmThread)
+-FOREACH(i ${OpenEXR_MODULES})
+- FIND_PATH(OpenEXR_${i}_INCLUDE_DIR
+- NAMES ${i}.h ${i}Header.h ${i}Math.h
+- PATHS "${OPENEXR_INCLUDE_DIRS}" "${OPENEXR_INCLUDE_DIRS}/${i}" "${OPENEXR_INCLUDE_DIRS}/Ilm${i}"
+- NO_DEFAULT_PATH
+- DOC "The directory where ${i}.h resides"
+- )
+-ENDFOREACH(i)
+-FOREACH(i ${OpenEXR_MODULES})
+- IF (NOT OpenEXR_${i}_INCLUDE_DIR)
+- SET(OpenEXR_${i}_INCLUDE_DIR "")
+- ENDIF (NOT OpenEXR_${i}_INCLUDE_DIR)
+- IF ("${OpenEXR_${i}_INCLUDE_DIR}" STREQUAL "${OPENEXR_INCLUDE_DIRS}")
+- SET(OpenEXR_${i}_INCLUDE_DIR "")
+- ENDIF ("${OpenEXR_${i}_INCLUDE_DIR}" STREQUAL "${OPENEXR_INCLUDE_DIRS}")
+-ENDFOREACH(i)
+-FOREACH(i ${OpenEXR_MODULES})
+- SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIRS} ${OpenEXR_${i}_INCLUDE_DIR})
+-ENDFOREACH(i)
+-ENDIF(OPENEXR_INCLUDE_DIRS)
+-
+-SET(OpenEXR_LIBRARY_MODULES Iex IlmImf Half Imath IlmThread)
+-SET(OpenEXR_LIB_SUFFIXES lib64 lib Lib lib/OpenEXR Libs x64/Release/lib)
+-SET(OpenEXR_LIB_SUFFIXES_REL)
+-SET(OpenEXR_LIB_SUFFIXES_DBG)
+-FOREACH(i ${OpenEXR_LIB_SUFFIXES})
+- SET(OpenEXR_LIB_SUFFIXES_REL ${OpenEXR_LIB_SUFFIXES_REL}
+- "${i}" "${i}/release" "${i}/relwithdebinfo" "${i}/minsizerel" "${i}/dist")
+- SET(OpenEXR_LIB_SUFFIXES_DBG ${OpenEXR_LIB_SUFFIXES_DBG}
+- "${i}" "${i}/debug" "${i}/dist")
+-ENDFOREACH(i)
+-SET(OPENEXR_LIBRARIES)
+-FOREACH(i ${OpenEXR_LIBRARY_MODULES})
+- FIND_LIBRARY(OpenEXR_${i}_LIBRARY_REL
+- NAMES ${i}
+- PATHS "${OPENEXR_ROOT}"
+- PATH_SUFFIXES ${OpenEXR_LIB_SUFFIXES_REL}
+- NO_DEFAULT_PATH
+- DOC "The ${i} release library"
+- )
+- FIND_LIBRARY(OpenEXR_${i}_LIBRARY_REL
+- NAMES ${i}
+- PATHS /usr/local /usr /sw /opt/local /opt/csw /opt
+- PATH_SUFFIXES ${OpenEXR_LIB_SUFFIXES_REL}
+- DOC "The ${i} release library"
+- )
+- FIND_LIBRARY(OpenEXR_${i}_LIBRARY_DBG
+- NAMES "${i}d" "${i}D" "${i}_d" "${i}_D" "${i}_debug"
+- PATHS "${OPENEXR_ROOT}"
+- PATH_SUFFIXES ${OpenEXR_LIB_SUFFIXES_DBG}
+- NO_DEFAULT_PATH
+- DOC "The ${i} debug library"
+- )
+- FIND_LIBRARY(OpenEXR_${i}_LIBRARY_DBG
+- NAMES "${i}d" "${i}D" "${i}_d" "${i}_D" "${i}_debug"
+- PATHS /usr/local /usr /sw /opt/local /opt/csw /opt
+- PATH_SUFFIXES ${OpenEXR_LIB_SUFFIXES_DBG}
+- DOC "The ${i} debug library"
+- )
+- IF (OpenEXR_${i}_LIBRARY_REL AND OpenEXR_${i}_LIBRARY_DBG)
+- SET(OPENEXR_LIBRARIES ${OPENEXR_LIBRARIES}
+- optimized ${OpenEXR_${i}_LIBRARY_REL}
+- debug ${OpenEXR_${i}_LIBRARY_DBG})
+- ELSEIF (OpenEXR_${i}_LIBRARY_REL)
+- SET(OPENEXR_LIBRARIES ${OPENEXR_LIBRARIES}
+- ${OpenEXR_${i}_LIBRARY_REL})
+- ELSEIF (OpenEXR_${i}_LIBRARY_DBG)
+- SET(OPENEXR_LIBRARIES ${OPENEXR_LIBRARIES}
+- ${OpenEXR_${i}_LIBRARY_DBG})
+- ENDIF (OpenEXR_${i}_LIBRARY_REL AND OpenEXR_${i}_LIBRARY_DBG)
+-ENDFOREACH (i)
++# If the headers were found, get the version from config file, if not already set.
++IF(OPENEXR_INCLUDE_DIR)
++ IF(NOT OPENEXR_VERSION)
++
++ FIND_FILE(_openexr_CONFIG
++ NAMES
++ OpenEXRConfig.h
++ PATHS
++ "${OPENEXR_INCLUDE_DIR}"
++ "${OPENEXR_INCLUDE_DIR}/OpenEXR"
++ NO_DEFAULT_PATH
++ )
++
++ IF(_openexr_CONFIG)
++ FILE(STRINGS "${_openexr_CONFIG}" OPENEXR_BUILD_SPECIFICATION
++ REGEX "^[ \t]*#define[ \t]+OPENEXR_VERSION_STRING[ \t]+\"[.0-9]+\".*$")
++ ELSE()
++ MESSAGE(WARNING "Could not find \"OpenEXRConfig.h\" in \"${OPENEXR_INCLUDE_DIR}\"")
++ ENDIF()
+
++ IF(OPENEXR_BUILD_SPECIFICATION)
++ MESSAGE(STATUS "${OPENEXR_BUILD_SPECIFICATION}")
++ STRING(REGEX REPLACE ".*#define[ \t]+OPENEXR_VERSION_STRING[ \t]+\"([.0-9]+)\".*"
++ "\\1" _openexr_libs_ver_init ${OPENEXR_BUILD_SPECIFICATION})
++ ELSE()
++ MESSAGE(WARNING "Could not determine ILMBase library version, assuming ${_openexr_libs_ver_init}.")
++ ENDIF()
++
++ UNSET(_openexr_CONFIG CACHE)
++
++ ENDIF()
++ENDIF()
++
++SET("OPENEXR_VERSION" ${_openexr_libs_ver_init} CACHE STRING "Version of OpenEXR lib")
++UNSET(_openexr_libs_ver_init)
++
++STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _openexr_libs_ver ${OPENEXR_VERSION})
++
++SET(_openexr_LIBRARIES)
++FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS})
++ STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
++
++ FIND_LIBRARY(OPENEXR_${UPPERCOMPONENT}_LIBRARY
++ NAMES
++ ${COMPONENT}-${_openexr_libs_ver} ${COMPONENT}
++ NAMES_PER_DIR
++ HINTS
++ ${_openexr_SEARCH_DIRS}
++ PATH_SUFFIXES
++ lib64 lib
++ )
++ LIST(APPEND _openexr_LIBRARIES "${OPENEXR_${UPPERCOMPONENT}_LIBRARY}")
++ENDFOREACH()
++
++UNSET(_openexr_libs_ver)
++
++# handle the QUIETLY and REQUIRED arguments and set OPENEXR_FOUND to TRUE if
++# all listed variables are TRUE
+ INCLUDE(FindPackageHandleStandardArgs)
+-FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENEXR DEFAULT_MSG OPENEXR_LIBRARIES OPENEXR_INCLUDE_DIRS)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR DEFAULT_MSG
++ _openexr_LIBRARIES OPENEXR_INCLUDE_DIR)
+
+-MARK_AS_ADVANCED(OPENEXR_INCLUDE_DIRS OPENEXR_LIBRARIES)
++IF(OPENEXR_FOUND)
++ SET(OPENEXR_LIBRARIES ${_openexr_LIBRARIES})
++ # Both include paths are needed because of dummy OSL headers mixing #include <OpenEXR/foo.h> and #include <foo.h> :(
++ SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR}/OpenEXR ${OPENEXR_INCLUDE_DIR}/Imath)
++ENDIF()
++
++MARK_AS_ADVANCED(
++ OPENEXR_INCLUDE_DIR
++ OPENEXR_VERSION
++)
++FOREACH(COMPONENT ${_openexr_FIND_COMPONENTS})
++ STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
++ MARK_AS_ADVANCED(OPENEXR_${UPPERCOMPONENT}_LIBRARY)
++ENDFOREACH()
+
++UNSET(COMPONENT)
++UNSET(UPPERCOMPONENT)
++UNSET(_openexr_FIND_COMPONENTS)
++UNSET(_openexr_LIBRARIES)
++UNSET(_openexr_SEARCH_DIRS)
+diff --git a/deps/opencolorio-2.0.0/src/OpenColorIO/BitDepthUtils.h b/deps/opencolorio-2.0.0/src/OpenColorIO/BitDepthUtils.h
+index a8b3cbd94..bb0163bff 100644
+--- a/deps/opencolorio-2.0.0/src/OpenColorIO/BitDepthUtils.h
++++ b/deps/opencolorio-2.0.0/src/OpenColorIO/BitDepthUtils.h
+@@ -7,7 +7,7 @@
+
+ #include <OpenColorIO/OpenColorIO.h>
+
+-#include "OpenEXR/half.h"
++#include "Imath/half.h"
+
+
+ namespace OCIO_NAMESPACE
+diff --git a/deps/opencolorio-2.0.0/src/OpenColorIO/MathUtils.h b/deps/opencolorio-2.0.0/src/OpenColorIO/MathUtils.h
+index 309c6244f..0873d4908 100644
+--- a/deps/opencolorio-2.0.0/src/OpenColorIO/MathUtils.h
++++ b/deps/opencolorio-2.0.0/src/OpenColorIO/MathUtils.h
+@@ -9,7 +9,7 @@
+
+ #include <OpenColorIO/OpenColorIO.h>
+
+-#include "OpenEXR/half.h"
++#include "Imath/half.h"
+
+ namespace OCIO_NAMESPACE
+ {
+diff --git a/deps/opencolorio-2.0.0/src/OpenColorIO/ops/range/RangeOp.cpp b/deps/opencolorio-2.0.0/src/OpenColorIO/ops/range/RangeOp.cpp
+index b6fb6d9e7..e7389203c 100644
+--- a/deps/opencolorio-2.0.0/src/OpenColorIO/ops/range/RangeOp.cpp
++++ b/deps/opencolorio-2.0.0/src/OpenColorIO/ops/range/RangeOp.cpp
+@@ -7,7 +7,7 @@
+ #include <OpenColorIO/OpenColorIO.h>
+
+ #include "GpuShaderUtils.h"
+-#include "OpenEXR/half.h"
++#include "Imath/half.h"
+ #include "HashUtils.h"
+ #include "MathUtils.h"
+ #include "ops/lut1d/Lut1DOpData.h"
+diff --git a/deps/opencolorio-2.0.0/src/OpenColorIO/transforms/builtins/ACES.cpp b/deps/opencolorio-2.0.0/src/OpenColorIO/transforms/builtins/ACES.cpp
+index 20968c0da..9ee2ac27a 100644
+--- a/deps/opencolorio-2.0.0/src/OpenColorIO/transforms/builtins/ACES.cpp
++++ b/deps/opencolorio-2.0.0/src/OpenColorIO/transforms/builtins/ACES.cpp
+@@ -6,7 +6,7 @@
+
+ #include <OpenColorIO/OpenColorIO.h>
+
+-#include "OpenEXR/half.h"
++#include "Imath/half.h"
+ #include "ops/fixedfunction/FixedFunctionOp.h"
+ #include "ops/gradingrgbcurve/GradingRGBCurveOp.h"
+ #include "ops/log/LogOp.h"
+diff --git a/deps/opencolorio-2.0.0/src/OpenColorIO/transforms/builtins/OpHelpers.cpp b/deps/opencolorio-2.0.0/src/OpenColorIO/transforms/builtins/OpHelpers.cpp
+index 04b8fbd40..288ca5668 100644
+--- a/deps/opencolorio-2.0.0/src/OpenColorIO/transforms/builtins/OpHelpers.cpp
++++ b/deps/opencolorio-2.0.0/src/OpenColorIO/transforms/builtins/OpHelpers.cpp
+@@ -4,7 +4,7 @@
+
+ #include <OpenColorIO/OpenColorIO.h>
+
+-#include "OpenEXR/half.h"
++#include "Imath/half.h"
+ #include "ops/lut1d/Lut1DOp.h"
+ #include "transforms/builtins/OpHelpers.h"
+
+diff --git a/deps/opencolorio-2.0.0/src/libutils/oiiohelpers/oiiohelpers.cpp b/deps/opencolorio-2.0.0/src/libutils/oiiohelpers/oiiohelpers.cpp
+index 3228644ad..11478daff 100644
+--- a/deps/opencolorio-2.0.0/src/libutils/oiiohelpers/oiiohelpers.cpp
++++ b/deps/opencolorio-2.0.0/src/libutils/oiiohelpers/oiiohelpers.cpp
+@@ -5,7 +5,7 @@
+ #include <OpenColorIO/OpenColorIO.h>
+
+
+-#include "OpenEXR/half.h"
++#include "Imath/half.h"
+ #include "oiiohelpers.h"
+ #include "utils/StringUtils.h"
+
+diff --git a/deps/openvdb-7.0.0/openvdb/Types.h b/deps/openvdb-7.0.0/openvdb/Types.h
+index 70269cf07..0d9906828 100644
+--- a/deps/openvdb-7.0.0/openvdb/Types.h
++++ b/deps/openvdb-7.0.0/openvdb/Types.h
+@@ -6,7 +6,7 @@
+
+ #include "version.h"
+ #include "Platform.h"
+-#include <OpenEXR/half.h>
++#include <Imath/half.h>
+ #include <openvdb/math/Math.h>
+ #include <openvdb/math/BBox.h>
+ #include <openvdb/math/Quat.h>
+diff --git a/include/slg/imagemap/imagemap.h b/include/slg/imagemap/imagemap.h
+index 0260456ce..46d2c2241 100644
+--- a/include/slg/imagemap/imagemap.h
++++ b/include/slg/imagemap/imagemap.h
+@@ -19,7 +19,7 @@
+ #ifndef _SLG_IMAGEMAP_H
+ #define _SLG_IMAGEMAP_H
+
+-#include <OpenEXR/half.h>
++#include <Imath/half.h>
+
+ #include <string>
+ #include <limits>
+diff --git a/include/slg/utils/halfserialization.h b/include/slg/utils/halfserialization.h
+index 551789888..2624f118c 100644
+--- a/include/slg/utils/halfserialization.h
++++ b/include/slg/utils/halfserialization.h
+@@ -19,7 +19,7 @@
+ #ifndef _SLG_HALFSERIALIZATION_H
+ #define _SLG_HALFSERIALIZATION_H
+
+-#include <OpenEXR/half.h>
++#include <Imath/half.h>
+
+ #include "luxrays/utils/utils.h"
+ #include "luxrays/utils/serializationutils.h"
+--
+2.43.0
+
diff --git a/0010-openvdb.patch b/0010-openvdb.patch
new file mode 100644
index 000000000000..366a7c00f195
--- /dev/null
+++ b/0010-openvdb.patch
@@ -0,0 +1,140 @@
+From 3bf21ed9f4d392487b479a5a532c7e39caa5be1c Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Wed, 31 Jan 2024 06:52:05 +0100
+Subject: [PATCH 10/14] openvdb
+
+---
+ CMakeLists.txt | 10 +++++++++-
+ samples/luxcoreconsole/CMakeLists.txt | 2 +-
+ samples/luxcoredemo/CMakeLists.txt | 2 +-
+ samples/luxcorescenedemo/CMakeLists.txt | 2 +-
+ samples/luxcoreui/CMakeLists.txt | 3 ++-
+ src/luxcore/CMakeLists.txt | 5 ++---
+ src/slg/CMakeLists.txt | 7 +------
+ tests/luxcoreimplserializationdemo/CMakeLists.txt | 2 +-
+ 8 files changed, 18 insertions(+), 15 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 393a1cbaa..73b3eac24 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -113,6 +113,14 @@ include_directories("${LuxRays_SOURCE_DIR}/deps/robin-hood-hashing-3.9.1/src/inc
+ # Find dependencies
+ include(Dependencies)
+
++SET(Boost_Save ${Boost_LIBRARIES})
++find_package(OpenVDB)
++LIST(APPEND Boost_LIBRARIES ${Boost_Save})
++
++if (NOT OpenVDB_FOUND)
++ MESSAGE(FATAL_ERROR "--> Could not locate required OpenVDB files - Please check ${OpenVDB_SEARCH_PATH}")
++endif()
++
+ if (NOT Boost_FOUND)
+ MESSAGE(FATAL_ERROR "--> Could not locate required Boost files - Please check ${BOOST_SEARCH_PATH}")
+ endif()
+@@ -176,7 +184,7 @@ if (BUILD_LUXCORE_DLL)
+ set(LUXCORE_LIBRARY luxcore)
+ ADD_DEFINITIONS("-DLUXCORE_DLL")
+ else()
+- set(LUXCORE_LIBRARY luxcore slg-core slg-film slg-kernels luxrays bcd opensubdiv openvdb opencolorio ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES})
++ set(LUXCORE_LIBRARY luxcore slg-core slg-film slg-kernels luxrays bcd opensubdiv ${OPENVDB_LIBRARY} opencolorio ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES})
+ endif()
+
+ ################################################################################
+diff --git a/samples/luxcoreconsole/CMakeLists.txt b/samples/luxcoreconsole/CMakeLists.txt
+index cdb83231c..638bcd1da 100644
+--- a/samples/luxcoreconsole/CMakeLists.txt
++++ b/samples/luxcoreconsole/CMakeLists.txt
+@@ -31,5 +31,5 @@ add_executable(luxcoreconsole ${LUXCORECONSOLE_SRCS})
+ if(APPLE)
+ TARGET_LINK_LIBRARIES(luxcoreconsole expat "-framework Carbon" "-framework IOKit" ${LUXCORE_LIBRARY} ${Boost_LIBRARIES})
+ else()
+-TARGET_LINK_LIBRARIES(luxcoreconsole ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
++TARGET_LINK_LIBRARIES(luxcoreconsole opencolorio ${OpenVDB_LIBRARIES} ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
+ endif()
+diff --git a/samples/luxcoredemo/CMakeLists.txt b/samples/luxcoredemo/CMakeLists.txt
+index 241dbd5f2..c7ac7ac77 100644
+--- a/samples/luxcoredemo/CMakeLists.txt
++++ b/samples/luxcoredemo/CMakeLists.txt
+@@ -29,4 +29,4 @@ set(LUXCORELIBDEMO_SRCS
+ add_executable(luxcoredemo ${LUXCORELIBDEMO_SRCS})
+ add_definitions(${VISIBILITY_FLAGS})
+
+-TARGET_LINK_LIBRARIES(luxcoredemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${OPENCL_LIBRARIES} ${CUDA_ALL_LIBRARIES})
++TARGET_LINK_LIBRARIES(luxcoredemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${OPENCL_LIBRARIES} ${CUDA_ALL_LIBRARIES} ${OpenVDB_LIBRARIES})
+diff --git a/samples/luxcorescenedemo/CMakeLists.txt b/samples/luxcorescenedemo/CMakeLists.txt
+index 504739572..f428305ec 100644
+--- a/samples/luxcorescenedemo/CMakeLists.txt
++++ b/samples/luxcorescenedemo/CMakeLists.txt
+@@ -29,4 +29,4 @@ set(LUXCORESCENEDEMO_SRCS
+ add_executable(luxcorescenedemo ${LUXCORESCENEDEMO_SRCS})
+ add_definitions(${VISIBILITY_FLAGS})
+
+-TARGET_LINK_LIBRARIES(luxcorescenedemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
++TARGET_LINK_LIBRARIES(luxcorescenedemo ${LUXCORE_LIBRARY} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${OpenVDB_LIBRARIES})
+diff --git a/samples/luxcoreui/CMakeLists.txt b/samples/luxcoreui/CMakeLists.txt
+index 80325af7e..92f1784f7 100644
+--- a/samples/luxcoreui/CMakeLists.txt
++++ b/samples/luxcoreui/CMakeLists.txt
+@@ -104,5 +104,6 @@ TARGET_LINK_LIBRARIES(luxcoreui
+ ${OPENGL_LIBRARIES}
+ ${GTK3_LIBRARIES}
+ ${Boost_LIBRARIES}
+- ${PYTHON_LIBRARIES})
++ ${PYTHON_LIBRARIES}
++ ${OpenVDB_LIBRARIES})
+ endif()
+diff --git a/src/luxcore/CMakeLists.txt b/src/luxcore/CMakeLists.txt
+index d797b749f..4a3fa76e9 100644
+--- a/src/luxcore/CMakeLists.txt
++++ b/src/luxcore/CMakeLists.txt
+@@ -175,15 +175,14 @@ set(PYLUXCORE_SRCS
+
+ add_library(pyluxcore MODULE ${PYLUXCORE_SRCS} ${LUXCORE_LIB_SRCS} ${LUX_PARSER_SRC})
+
+-include_directories(${LuxRays_SOURCE_DIR}/deps/openvdb-7.0.0)
++include_directories(${OpenVDB_INCLUDE_DIRS})
+ include_directories(${LuxRays_SOURCE_DIR}/deps/opencolorio-2.0.0/include)
+
+-add_definitions(-DOPENVDB_STATICLIB ${VISIBILITY_FLAGS})
+ if(APPLE)
+ target_link_libraries(pyluxcore -Wl,-undefined -Wl,dynamic_lookup slg-core slg-film slg-kernels luxrays bcd opensubdiv openvdb opencolorio expat ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES})
+ SET_TARGET_PROPERTIES(pyluxcore PROPERTIES XCODE_ATTRIBUTE_DEPLOYMENT_POSTPROCESSING NO) # exclude pylux from strip, not possible
+ else()
+- target_link_libraries(pyluxcore PRIVATE slg-core slg-film slg-kernels luxrays bcd opensubdiv openvdb opencolorio ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES})
++ target_link_libraries(pyluxcore PRIVATE slg-core slg-film slg-kernels luxrays bcd opensubdiv ${OpenVDB_LIBRARIES} opencolorio ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES})
+ endif()
+
+ set_target_properties(pyluxcore PROPERTIES PREFIX "")
+diff --git a/src/slg/CMakeLists.txt b/src/slg/CMakeLists.txt
+index 2f1bf79cc..9424b82bc 100644
+--- a/src/slg/CMakeLists.txt
++++ b/src/slg/CMakeLists.txt
+@@ -143,12 +143,7 @@ set(OPENVDB_SRCS
+
+ SOURCE_GROUP("Source Files\\OpenVDB Library" FILES ${OPENVDB_SRCS})
+
+-include_directories(${LuxRays_SOURCE_DIR}/deps/openvdb-7.0.0)
+-
+-# Required by OpenVDB to read ABI 3
+-#add_definitions("-D OPENVDB_USE_DEPRECATED_ABI -DOPENVDB_3_ABI_COMPATIBLE -DOPENVDB_STATICLIB -DOPENVDB_OPENEXR_STATICLIB")
+-add_definitions("-DOPENVDB_USE_BLOSC -DOPENVDB_STATICLIB -DOPENVDB_OPENEXR_STATICLIB")
+-add_library(openvdb STATIC ${OPENVDB_SRCS})
++include_directories(${OpenVDB_INCLUDE_DIRS})
+
+ ###########################################################################
+ #
+diff --git a/tests/luxcoreimplserializationdemo/CMakeLists.txt b/tests/luxcoreimplserializationdemo/CMakeLists.txt
+index baa52f622..2bfad6bf1 100644
+--- a/tests/luxcoreimplserializationdemo/CMakeLists.txt
++++ b/tests/luxcoreimplserializationdemo/CMakeLists.txt
+@@ -31,4 +31,4 @@ include_directories(${LuxRays_SOURCE_DIR}/deps/opencolorio-2.0.0/include)
+
+ add_executable(luxcoreimplserializationdemo ${LUXCOREIMPL_SERIALIZATIONDEMO_SRCS})
+
+-TARGET_LINK_LIBRARIES(luxcoreimplserializationdemo luxcore slg-core slg-film slg-kernels luxrays bcd opensubdiv openvdb ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${PYTHON_LIBRARIES})
++TARGET_LINK_LIBRARIES(luxcoreimplserializationdemo luxcore slg-core slg-film slg-kernels luxrays bcd opensubdiv opencolorio ${OpenVDB_LIBRARIES} ${BLOSC_LIBRARY} ${EMBREE_LIBRARY} ${OIDN_LIBRARY} ${TBB_LIBRARY} ${TIFF_LIBRARIES} ${TIFF_LIBRARIES} ${OPENEXR_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${PYTHON_LIBRARIES})
+--
+2.43.0
+
diff --git a/0011-openimageio.patch b/0011-openimageio.patch
new file mode 100644
index 000000000000..7c0cf0adc2a4
--- /dev/null
+++ b/0011-openimageio.patch
@@ -0,0 +1,41 @@
+From f02bdb4057380d48c0f793f7f9e7b5b3e1cfbcf0 Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:20:33 +0200
+Subject: [PATCH 11/14] openimageio
+
+---
+ cmake/Packages/FindOpenImageIO.cmake | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/cmake/Packages/FindOpenImageIO.cmake b/cmake/Packages/FindOpenImageIO.cmake
+index 66bf54966..49eb82372 100644
+--- a/cmake/Packages/FindOpenImageIO.cmake
++++ b/cmake/Packages/FindOpenImageIO.cmake
+@@ -55,6 +55,15 @@ FIND_LIBRARY(OPENIMAGEIO_LIBRARY
+ lib64 lib x64/Release/lib
+ )
+
++FIND_LIBRARY(OPENIMAGEIO_UTIL_LIBRARY
++ NAMES
++ OpenImageIO_Util
++ HINTS
++ ${_openimageio_SEARCH_DIRS}
++ PATH_SUFFIXES
++ lib64 lib x64/Release/lib
++ )
++
+ # handle the QUIETLY and REQUIRED arguments and set OPENIMAGEIO_FOUND to TRUE if
+ # all listed variables are TRUE
+ INCLUDE(FindPackageHandleStandardArgs)
+@@ -62,7 +71,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenImageIO DEFAULT_MSG
+ OPENIMAGEIO_LIBRARY OPENIMAGEIO_INCLUDE_DIR)
+
+ IF(OPENIMAGEIO_FOUND)
+- SET(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARY})
++ SET(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARY} ${OPENIMAGEIO_UTIL_LIBRARY})
+ SET(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR})
+ ENDIF(OPENIMAGEIO_FOUND)
+
+--
+2.43.0
+
diff --git a/0012-opencolorio.patch b/0012-opencolorio.patch
new file mode 100644
index 000000000000..9c1cea8a0f2a
--- /dev/null
+++ b/0012-opencolorio.patch
@@ -0,0 +1,24 @@
+From 152eb08598ccc0ef7525a99425cc86be5dc6cdf9 Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:21:33 +0200
+Subject: [PATCH 12/14] opencolorio
+
+---
+ deps/opencolorio-2.0.0/src/OpenColorIO/FileRules.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/deps/opencolorio-2.0.0/src/OpenColorIO/FileRules.cpp b/deps/opencolorio-2.0.0/src/OpenColorIO/FileRules.cpp
+index 329f54f50..f22926b35 100644
+--- a/deps/opencolorio-2.0.0/src/OpenColorIO/FileRules.cpp
++++ b/deps/opencolorio-2.0.0/src/OpenColorIO/FileRules.cpp
+@@ -6,6 +6,7 @@
+ #include <map>
+ #include <regex>
+ #include <sstream>
++#include <cstring>
+
+ #include <OpenColorIO/OpenColorIO.h>
+
+--
+2.43.0
+
diff --git a/0013-boost179-fstream.patch b/0013-boost179-fstream.patch
new file mode 100644
index 000000000000..99ccb2aca571
--- /dev/null
+++ b/0013-boost179-fstream.patch
@@ -0,0 +1,37 @@
+From 6c37bbfa60a8d00e1e87a63043d67c82e137d7fb Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sun, 3 Jul 2022 20:02:31 +0200
+Subject: [PATCH 13/14] boost179 fstream
+
+---
+ src/luxrays/utils/cuda.cpp | 1 +
+ src/luxrays/utils/ocl.cpp | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/luxrays/utils/cuda.cpp b/src/luxrays/utils/cuda.cpp
+index 6ae9e9f42..888e12497 100644
+--- a/src/luxrays/utils/cuda.cpp
++++ b/src/luxrays/utils/cuda.cpp
+@@ -24,6 +24,7 @@
+
+ #include <boost/algorithm/string/replace.hpp>
+ #include <boost/algorithm/string/trim.hpp>
++#include <boost/filesystem/fstream.hpp>
+
+ #include "luxrays/luxrays.h"
+ #include "luxrays/utils/utils.h"
+diff --git a/src/luxrays/utils/ocl.cpp b/src/luxrays/utils/ocl.cpp
+index 785836cef..80b7a8f45 100644
+--- a/src/luxrays/utils/ocl.cpp
++++ b/src/luxrays/utils/ocl.cpp
+@@ -24,6 +24,7 @@
+
+ #include <boost/algorithm/string/replace.hpp>
+ #include <boost/algorithm/string/trim.hpp>
++#include <boost/filesystem/fstream.hpp>
+
+ #include "luxrays/luxrays.h"
+ #include "luxrays/utils/utils.h"
+--
+2.43.0
+
diff --git a/0014-spdlog.patch b/0014-spdlog.patch
new file mode 100644
index 000000000000..f82d7f6c3a10
--- /dev/null
+++ b/0014-spdlog.patch
@@ -0,0 +1,136 @@
+From 582e247a72c4cbfce33f41aeb2c4628464e81070 Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sat, 21 May 2022 18:20:14 +0200
+Subject: [PATCH 14/14] spdlog
+
+---
+ CMakeLists.txt | 7 ++++++-
+ include/luxcore/luxcorelogger.h | 2 +-
+ include/luxcore/luxcoresink.h | 4 ++--
+ src/luxcore/luxcore.cpp | 2 +-
+ src/luxcore/luxcoreimpl.cpp | 16 ++++++++++++++++
+ src/luxcore/luxcoreinit.cpp | 6 +++---
+ 6 files changed, 29 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 73b3eac24..511e06672 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -107,12 +107,17 @@ include_directories("${LuxRays_SOURCE_DIR}/deps/json-3.7.3/include")
+ include_directories("${LuxRays_SOURCE_DIR}/deps/cuew/include")
+ include_directories("${LuxRays_SOURCE_DIR}/deps/clew/include")
+ include_directories("${LuxRays_SOURCE_DIR}/deps/optix-7.1.0/include")
+-include_directories("${LuxRays_SOURCE_DIR}/deps/spdlog-1.8.0/include")
++#include_directories("${LuxRays_SOURCE_DIR}/deps/spdlog-1.8.0/include")
+ include_directories("${LuxRays_SOURCE_DIR}/deps/robin-hood-hashing-3.9.1/src/include")
+
+ # Find dependencies
+ include(Dependencies)
+
++add_definitions(-DSPDLOG_FMT_EXTERNAL=1)
++add_definitions(-DSPDLOG_USE_STD_FORMAT=1)
++find_package(spdlog REQUIRED)
++include_directories(${SPDLOG_INCLUDE_DIRS})
++
+ SET(Boost_Save ${Boost_LIBRARIES})
+ find_package(OpenVDB)
+ LIST(APPEND Boost_LIBRARIES ${Boost_Save})
+diff --git a/include/luxcore/luxcorelogger.h b/include/luxcore/luxcorelogger.h
+index ecf979893..030f891f2 100644
+--- a/include/luxcore/luxcorelogger.h
++++ b/include/luxcore/luxcorelogger.h
+@@ -22,7 +22,7 @@
+ #include <memory>
+ #include <sstream>
+
+-#include "spdlog/spdlog.h"
++#include <spdlog/spdlog.h>
+
+ #include "luxrays/utils/strutils.h"
+ #include "luxrays/utils/properties.h"
+diff --git a/include/luxcore/luxcoresink.h b/include/luxcore/luxcoresink.h
+index a7207a027..7ccb8f622 100644
+--- a/include/luxcore/luxcoresink.h
++++ b/include/luxcore/luxcoresink.h
+@@ -21,7 +21,7 @@
+
+ #include <mutex>
+
+-#include "spdlog/sinks/rotating_file_sink.h"
++#include <spdlog/sinks/rotating_file_sink.h>
+
+ //------------------------------------------------------------------------------
+ // Our SpdLog sink for LuxCore call back handler
+@@ -41,7 +41,7 @@ namespace sinks {
+ memory_buf_t formatted;
+ base_sink<Mutex>::formatter_->format(msg, formatted);
+
+- logHandler(fmt::to_string(formatted).c_str());
++ logHandler(formatted.c_str());
+ }
+ }
+
+diff --git a/src/luxcore/luxcore.cpp b/src/luxcore/luxcore.cpp
+index ab754faac..2a86bc817 100644
+--- a/src/luxcore/luxcore.cpp
++++ b/src/luxcore/luxcore.cpp
+@@ -19,7 +19,7 @@
+ #include <OpenImageIO/imagebuf.h>
+ #include <OpenImageIO/imagebufalgo.h>
+
+-#include "spdlog/spdlog.h"
++#include <spdlog/spdlog.h>
+
+ #include "luxrays/core/intersectiondevice.h"
+ #include "luxrays/utils/utils.h"
+diff --git a/src/luxcore/luxcoreimpl.cpp b/src/luxcore/luxcoreimpl.cpp
+index b0bf6b900..522f05428 100644
+--- a/src/luxcore/luxcoreimpl.cpp
++++ b/src/luxcore/luxcoreimpl.cpp
+@@ -20,6 +20,7 @@
+ #include <boost/foreach.hpp>
+ #include <boost/thread/once.hpp>
+ #include <boost/thread/mutex.hpp>
++#include <format>
+
+ #include "luxcore/luxcorelogger.h"
+ #include "luxrays/core/intersectiondevice.h"
+@@ -1805,3 +1806,18 @@ void RenderSessionImpl::SaveResumeFile(const std::string &fileName) {
+
+ API_END();
+ }
++
++
++template <>
++struct std::formatter<luxcore::Camera::CameraType> {
++ // for debugging only
++ formatter() { std::cout << "formatter<luxcore::Camera::CameraType>()\n"; }
++
++ constexpr auto parse(std::format_parse_context& ctx) {
++ return ctx.begin();
++ }
++
++ auto format(const luxcore::Camera::CameraType& cam, std::format_context& ctx) const {
++ return std::format_to(ctx.out(), "{}", int(cam));
++ }
++};
+diff --git a/src/luxcore/luxcoreinit.cpp b/src/luxcore/luxcoreinit.cpp
+index 489968516..b6cee09a0 100644
+--- a/src/luxcore/luxcoreinit.cpp
++++ b/src/luxcore/luxcoreinit.cpp
+@@ -20,9 +20,9 @@
+ #include <boost/format.hpp>
+ #include <boost/thread/mutex.hpp>
+
+-#include "spdlog/spdlog.h"
+-#include "spdlog/sinks/rotating_file_sink.h"
+-#include "spdlog/sinks/null_sink.h"
++#include <spdlog/spdlog.h>
++#include <spdlog/sinks/rotating_file_sink.h>
++#include <spdlog/sinks/null_sink.h>
+
+ #include "luxrays/luxrays.h"
+ #include "luxrays/utils/strutils.h"
+--
+2.43.0
+
diff --git a/PKGBUILD b/PKGBUILD
index 4bd8d8465d83..3d50f8bb5965 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,37 +2,83 @@
# Maintainer : bartus <arch-user-repoᘓbartus.33mail.com>
# Configuration
-((DISABLE_OPENCL)) || {
+# shellcheck disable=SC2015
+((DISABLE_OPENCL)) && {
+ CMAKE_FLAGS+=("-DLUXRAYS_DISABLE_OPENCL=ON")
+} || {
depends+=(opencl-icd-loader)
makedepends+=(opencl-headers)
optdepends+=("opencl-driver: for gpu acceleration")
- CMAKE_FLAGS+=("-DLUXRAYS_DISABLE_OPENCL=ON")
+}
+# shellcheck disable=SC2015
+((DISABLE_CUDA||DISABLE_OPENCL)) && {
+ CMAKE_FLAGS+=("-DLUXRAYS_DISABLE_CUDA=ON")
+} || {
+ makedepends+=(cuda-sdk)
}
pkgname=luxcorerender
-pkgver=2.3
-_name=LuxCore-${pkgname}_v${pkgver}
-#_rel="rc1"
+pkgver=2.7
+_rel="beta1"
[ -n "${_rel}" ] && _pkgver=${pkgver}${_rel} && pkgver+=".${_rel}" || _pkgver=${pkgver}
-pkgrel=1
+_name=LuxCore-${pkgname}_v${_pkgver}
+pkgrel=2
epoch=2
pkgdesc="Physically correct, unbiased rendering engine."
arch=('x86_64')
url="https://www.luxcorerender.org/"
license=('Apache')
-depends+=(blosc boost-libs embree glfw gtk3 openimagedenoise openimageio)
+depends+=(blosc boost-libs embree3 glfw gtk3 openimagedenoise openimageio openvdb python spdlog)
optdepends+=("pyside2: for pyluxcoretools gui")
-makedepends+=(boost git doxygen cmake ninja pyside2-tools)
+makedepends+=(boost cmake doxygen git ninja pyside2-tools)
provides=(luxrays)
+options=('!lto')
source=("https://github.com/LuxCoreRender/LuxCore/archive/${pkgname}_v${_pkgver}.tar.gz"
- "python.patch"
- "glfw.patch"
- "boost016900_serialization.patch"
+ "0001-cxx-version.patch"
+ "0002-silence-compiler-warnings.patch"
+ "0003-silence-preprocessing.patch"
+ "0004-glfw.patch"
+ "0005-boost107400.patch"
+ "0006-python.patch"
+ "0007-cpplib.patch"
+ "0008-clang-isnan-isinf.patch"
+ "0009-openexr3.patch"
+ "0010-openvdb.patch"
+ "0011-openimageio.patch"
+ "0012-opencolorio.patch"
+ "0013-boost179-fstream.patch"
+ "0014-spdlog.patch"
)
-sha256sums=('d0afda77bd2a89ac050255495d8b0939096d259a92cf99fa5a92a51256a3d8a4'
- 'a00ee865eee4d9edf685bd4010aea4c3ae96ba5d22c2e17cda313b4d3468a806'
- '4e04c3eb653f00d2389aff8e7fda2d244e258cbca3a22e32c13388a3984e4bb1'
- '495d183aef045e53ec8c53aa08cdcc082fb4e69ccb0857693cb0cf2684db0760')
+sha256sums=('24adaf0da781921ed18c2aee55468ee94138db023e5cff95a5ede0fb394f8c09'
+ 'd3e0c4f74341746bf271efa6a62f3f0e2a72072afd86c032a9a5a1a565cf28f0'
+ '540f6e92877165c06ce70d2c7ac5c28ec95632520941b645f63ffa5d77541693'
+ 'd754596d2c17a3d12fa38abb373f4a58b2ca7a0b8df8fdf7ba9e991753998b6b'
+ '77db48d1a823f345a170c0632d3bfa0a962c92f6c662117e2a96a172d48732e9'
+ '415ba07ff99f9b97106aa806c6c1b40b68be3c39096ecd08cd2e0d40e6ea2fc3'
+ 'fa142fa282ae3e2482e7c39ffa07382d68ad732f32468eae5aa67d4378efc144'
+ '71b62a8c8c61779d914ce8e10bb5594dd0ed8bfecc1d6007263870393bb89955'
+ '09bf685f7367b05ac2d756e22c3b8d7a1ba931bca7ef4d6096852bbcdd203f8b'
+ 'e2034c00d456cf04843f84ee36eca991498a9580d52d15fafebe63f61642afb2'
+ '12bb2b0873b14f7878b9ec05b36a18156879b770da5ba47505bf3d6004038092'
+ '9eca0d8c3de4088ed02b40b5269ce709077f0b810eaa570050d9f41c320e79ee'
+ '1d91f515a4fcfb88119e02a71f4a5185a6765991296cd1d4760e36a642c29ff1'
+ '3185b3e4b42423fb51ef007e9f36f193ef7bd54bb83efdb242e7ba3c6fb67532'
+ 'ca46c01fbe2183916e20e990c23991148e878e401cec6d9ddabf7aa6bfdc6933')
+b2sums=('0f6203610dbef2fd2d43c6465502459337eb99da00b494d7bfcab245b8fdb3d9f9179018e6d9b2f927024f6a21fba4d5cfb51e9e14049d1a56ce8aabaea2312d'
+ '2b8c411347c4b27b21cddf7f4543beeaa229968e95f59f762b872264afd23cb5cea8074bd606b8e56df1a84473ada13720f8fb097fcfb80303495a89ed9052ef'
+ '97302dc99edebe5f35d5d469b2a2a9172eb7357248fb2bcc4510507de59a4d1db32cbfaf18acbba29b5046011615f57eb6ab322346560ec2777172c6b08a30b9'
+ 'c951ce3d6172c0a916c13fa53c682336a74d229c6e903f26c40f7a6e91a6b3ff54241178f85e4945d621210d23f54503b95e69d0f05e40246165eb23422aafb9'
+ '88e40b301961daef2e493b71cbd497aeb63035e9ed1ff2078c98c6a2c0e17f7c23a712905cd335ad3cc518b7b53b503441b261bc04ee6a27cb8531f74ec019f8'
+ '8ef8933c5dc6acb0881ddb51f959530eeda80c7d7d0a1e26ce5878e19b082746e95af8bee53e5937276e500473bbd56137cf68e5901b2a0a48d9255e11016cbf'
+ '96708a30229163849cefc4e7e13db571fe2529f08952a999a2176f99b4748869391184345780ef22d74ae8c93fb18b0a8831fcb5f3b043bcb63b545e90396205'
+ '7c8979e9549b03f0535d5760d9929acfb0d954b027253ec42ce910033c5aac60a34af3bbe92b6b07b9a3d0c0e66a43373b74697bdbc91e2ca6ae42ae4866352d'
+ '947d3cba2c9e1c4c430f9623a13f5275613491ac1125c88b042dc4bb0fa6905c8955731e75e954850035f3605df12fdf5f77b5caec7495b3d321aa6eb357bd57'
+ '3e2431d7b0175a7ec0ac452d0201222a26d16cb02191aa7a65a14cfb6af5a99109e82efeb8125f5b8b76314bfbc8ede5d055da5955cfa5d0238870d9de3bd73c'
+ '76ee674dcbcd52c698924cbcd547d2b8a4b3761cf2ade8d7c463b2a5bdc9f741537485ce9db12968d3b43a28cca1508223e3a363fc7c0b7b9483e107d77155e7'
+ '6ebaf49099a78adb59c0f9c601410529b8709377ec1c6eacf9510bdf5fba5027cdd81bae6422425cceab6ee1ebb4709a3edf9d818fcce2a5b475e009153a7842'
+ 'f56cec862ace8a1499a1a718f3c88488661b7d683d4e9bafc027d20fcb6542ce91a70f11ad46dd7a5ad0e61f2cd8dff6247617ad8d51b378e96fdc5e0c1ae94a'
+ '78333747e508f28293c85175e0f9d0624b8303c1f4f5491304e79c3dbc104fedf4eaac9065f0876a968d379898eb5810cd802350adae44de5f44673b0949f1ba'
+ '5e59c732a417775984cd85755b7a1810b33fb8a09cb3a8542c048958e7788d1aac3ecef5f28266278ca6444e1f59421b1d167a305eda9e70c0ae62155c01274b')
prepare() {
for patch in "${srcdir}"/*.patch; do
@@ -44,6 +90,7 @@ prepare() {
build() {
_pyver=$(python -c "from sys import version_info; print(\"%d%d\" % (version_info.major,version_info.minor))")
CMAKE_FLAGS+=("-DPYTHON_V=${_pyver}")
+ CMAKE_FLAGS+=("-DCMAKE_BUILD_TYPE=Release")
cmake "${CMAKE_FLAGS[@]}" -S "${srcdir}"/${_name} -B build -G Ninja
# shellcheck disable=SC2086
ninja $(grep -oP -- '-+[A-z]+ ?[0-9]*'<<<"${MAKEFLAGS:--j1}") -C "${srcdir}/build"
diff --git a/boost016900_serialization.patch b/boost016900_serialization.patch
deleted file mode 100644
index 900a2573403d..000000000000
--- a/boost016900_serialization.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-commit 9478fb60fd00a30c048841d0e3764673e77a47b5
-Author: bartus <bartus@manjaro>
-Date: Sat Mar 30 13:17:45 2019 +0000
-
- drop eos portable archiver
-
-diff --git a/include/luxrays/utils/serializationutils.h b/include/luxrays/utils/serializationutils.h
-index d2cec5ed6..e35812765 100644
---- a/include/luxrays/utils/serializationutils.h
-+++ b/include/luxrays/utils/serializationutils.h
-@@ -42,19 +42,22 @@
- #include <boost/serialization/set.hpp>
- #include <boost/serialization/vector.hpp>
-
--//#include <boost/archive/binary_iarchive.hpp>
--//#include <boost/archive/binary_oarchive.hpp>
--#include "eos/portable_oarchive.hpp"
--#include "eos/portable_iarchive.hpp"
-+#include <boost/archive/binary_iarchive.hpp>
-+#include <boost/archive/binary_oarchive.hpp>
-+#include <boost/archive/polymorphic_oarchive.hpp>
-+#include <boost/archive/polymorphic_iarchive.hpp>
-+#include <boost/lexical_cast.hpp>
-+//#include "eos/portable_oarchive.hpp"
-+//#include "eos/portable_iarchive.hpp"
-
- #include "luxrays/luxrays.h"
-
- namespace luxrays {
-
--//typedef boost::archive::binary_oarchive LuxOutputArchive;
--//typedef boost::archive::binary_iarchive LuxInputArchive;
--typedef eos::portable_oarchive LuxOutputArchive;
--typedef eos::portable_iarchive LuxInputArchive;
-+typedef boost::archive::binary_oarchive LuxOutputArchive;
-+typedef boost::archive::binary_iarchive LuxInputArchive;
-+//typedef eos::portable_oarchive LuxOutputArchive;
-+//typedef eos::portable_iarchive LuxInputArchive;
-
- class SerializationOutputFile {
- public: