summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO28
-rw-r--r--OSL-01.13.7.patch357
-rw-r--r--PKGBUILD54
-rw-r--r--appleseed.cli_wrap4
-rw-r--r--appleseed.studio_wrap4
-rw-r--r--oiio_cxx_std_14.patch36
-rw-r--r--opencolorio1.patch82
-rw-r--r--openexr3.patch398
-rw-r--r--openimageio.patch46
9 files changed, 993 insertions, 16 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 51bab2ecc23c..7b75acd6bfdb 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = appleseed-git
pkgdesc = Physically-based global illumination rendering engine primarily designed for animation and visual effects (development vesion).
- pkgver = 2.1.0.beta.r275.g390d5cda9
- pkgrel = 1
+ pkgver = 2.1.0.beta.r284.g1e60a023d
+ pkgrel = 7
epoch = 1
url = https://appleseedhq.net
arch = i686
@@ -19,7 +19,7 @@ pkgbase = appleseed-git
depends = boost-libs
depends = boost-python2-libs
depends = openexr
- depends = opencolorio
+ depends = opencolorio1
depends = openimageio
depends = openshadinglanguage
depends = xerces-c
@@ -30,14 +30,34 @@ pkgbase = appleseed-git
source = boost_107400.patch
source = cmake.extra.install.dirs.remove.patch
source = osl_1.11.8.patch::https://github.com/appleseedhq/appleseed/pull/2900.patch
+ source = oiio_cxx_std_14.patch
+ source = openexr3.patch
+ source = opencolorio1.patch
+ source = openimageio.patch
+ source = OSL-01.13.7.patch
+ source = appleseed.studio_wrap
+ source = appleseed.cli_wrap
sha256sums = SKIP
sha256sums = 8e7d453ced2a58b162b6e8e2ace09916755b70821837b2c7502a3417f03a25a3
sha256sums = 87b987f006e45d11cc4dfec2bd37fd2b760fd2bdbf06f48e7d467cbca9b2b301
sha256sums = 0171eaa9ec499ecf74ac8878dbacfb28f81094e9a7bed46819314613e6ae7133
+ sha256sums = 194902d8c32f23155dddd4205ce3744852e0b86fc22e74739ce5ab7bf97924a7
+ sha256sums = b6ed6ca0034a2ec81ecf8f44e11dba7b3469130a3106fcca58318174003e2642
+ sha256sums = 881b53983e24ade13480d2be2cfe10990890286cd9910c14e83284da427a1713
+ sha256sums = e0c1730745e756a85d633ab1dd50c39b1f744b173b50ca38595d4ee9325b5670
+ sha256sums = 2eebb1faff7c6b9d24cea79ba489d194d832b18e446ff88866180904467bdf1e
+ sha256sums = 8f6f7dfc816b10079692f27e717a80c05c7fe94ad6149a3d78859fefe808996f
+ sha256sums = 6f80a201373610facce02b0bd6764af2c1730d6f39932117767e3dcfa7b72804
b2sums = SKIP
b2sums = 8461888dc541113700f377379b0e688bdbc6a5b79bfda4c1b061c2e3811a03c43583272862d6b084f092c6bb372c15b31d2a25849b9e2d89d1e3ed657f680846
b2sums = 85d278ea12672e44657fbfe8695744508db88cea54dbc93410632b05175c94a5e29e28dfb739ba88ec10a2449ff499484854ba177db03f5e41b24d2b8e6b9328
b2sums = cc21c08931d4e5060bbf9b8d2732e68eb28edc923e952db09665e2f63a0918e24f6d35f39a2ea2048a6b5ad67833df08bc9a5e1fea065e1df975ca5e40d414f0
+ b2sums = e999b4aaf4efcb3671de7f197d9ab92fd90cee34aaf879d30f959c88cea55416b0715ce85ce0452203484e4b336aed453ecff9166e12b9da9170101a3118138c
+ b2sums = 9499c09e99fba96958861f1da7833728850c5581cf371a8f6994012288445d8fd24ec3cfe4f9e22a5860c930d91e710ffed9b33ba3cf2d8385ffa1cda4909528
+ b2sums = 6a92e81297d3bdc8c8b77034d9dac1864dd59b106503b6c711fbdd04122ef8374b908054844ec2999ba6a845363afebf566b2769cf306843c8bc017453e54de1
+ b2sums = 316300d0540c16c3bcaf1ea37ee470957c35ff995129dafc28249db4526f07a22b67058fd4abbc685691604716048fef039661ba06f5515fff858f7c16d2906e
+ b2sums = d2acec93ceb18fbe6b98a4901def16691e9d5c55daf84e1d3e427d4799b4cd4a22aaa1869b41dba19a8de0c0da3c68e4b71fc060e7b3c249e93d97553bda4d87
+ b2sums = b87bd4812393340507c642470084764d770a593cb868538cb8580710dc4d1ae7708db6749a7034afcbd2b78af8498264299e1352df695b47b31277711ca66c87
+ b2sums = 47a3ff0cee076be409111f860b93ac638999da5ed7e6cda1ca7dfdb3efa34d92b7720612855471939c742be69c5a6c413d1de022b6f6c764780c47b064aef93f
pkgname = appleseed-git
-
diff --git a/OSL-01.13.7.patch b/OSL-01.13.7.patch
new file mode 100644
index 000000000000..6ad8bb9d8282
--- /dev/null
+++ b/OSL-01.13.7.patch
@@ -0,0 +1,357 @@
+From 16d44f637e092e86d98eb968b1a0e9e213892f94 Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sun, 3 Mar 2024 21:05:30 +0100
+Subject: [PATCH] OSL 01.13.7
+
+---
+ .../kernel/rendering/rendererservices.cpp | 108 +++++++++---------
+ .../kernel/rendering/rendererservices.h | 42 +++----
+ 2 files changed, 75 insertions(+), 75 deletions(-)
+
+diff --git a/src/appleseed/renderer/kernel/rendering/rendererservices.cpp b/src/appleseed/renderer/kernel/rendering/rendererservices.cpp
+index fcb491ea8..acd56a896 100644
+--- a/src/appleseed/renderer/kernel/rendering/rendererservices.cpp
++++ b/src/appleseed/renderer/kernel/rendering/rendererservices.cpp
+@@ -99,46 +99,46 @@ RendererServices::RendererServices(
+ , m_texture_store(nullptr)
+ {
+ // Set up attribute getters.
+- m_global_attr_getters[OIIO::ustring("object:object_instance_id")] = &RendererServices::get_attr_object_instance_id;
+- m_global_attr_getters[OIIO::ustring("object:object_instance_index")] = &RendererServices::get_attr_object_instance_index;
+- m_global_attr_getters[OIIO::ustring("object:assembly_instance_id")] = &RendererServices::get_attr_assembly_instance_id;
+- m_global_attr_getters[OIIO::ustring("object:assembly_name")] = &RendererServices::get_attr_assembly_name;
+- m_global_attr_getters[OIIO::ustring("object:assembly_instance_name")] = &RendererServices::get_attr_assembly_instance_name;
+- m_global_attr_getters[OIIO::ustring("object:object_instance_name")] = &RendererServices::get_attr_object_instance_name;
+- m_global_attr_getters[OIIO::ustring("object:object_name")] = &RendererServices::get_attr_object_name;
+-
+- m_global_attr_getters[OIIO::ustring("camera:resolution")] = &RendererServices::get_attr_camera_resolution;
+- m_global_attr_getters[OIIO::ustring("camera:projection")] = &RendererServices::get_attr_camera_projection;
+- m_global_attr_getters[OIIO::ustring("camera:pixelaspect")] = &RendererServices::get_attr_camera_pixelaspect;
+- m_global_attr_getters[OIIO::ustring("camera:screen_window")] = &RendererServices::get_attr_camera_screen_window;
+- m_global_attr_getters[OIIO::ustring("camera:fov")] = &RendererServices::get_attr_camera_fov;
+- m_global_attr_getters[OIIO::ustring("camera:clip")] = &RendererServices::get_attr_camera_clip;
+- m_global_attr_getters[OIIO::ustring("camera:clip_near")] = &RendererServices::get_attr_camera_clip_near;
+- m_global_attr_getters[OIIO::ustring("camera:clip_far")] = &RendererServices::get_attr_camera_clip_far;
+- m_global_attr_getters[OIIO::ustring("camera:shutter")] = &RendererServices::get_attr_camera_shutter;
+- m_global_attr_getters[OIIO::ustring("camera:shutter_open")] = &RendererServices::get_attr_camera_shutter_open;
+- m_global_attr_getters[OIIO::ustring("camera:shutter_close")] = &RendererServices::get_attr_camera_shutter_close;
+-
+- m_global_attr_getters[OIIO::ustring("path:ray_depth")] = &RendererServices::get_attr_ray_depth;
+- m_global_attr_getters[OIIO::ustring("path:ray_length")] = &RendererServices::get_attr_ray_length;
+- m_global_attr_getters[OIIO::ustring("path:ray_ior")] = &RendererServices::get_attr_ray_ior;
+- m_global_attr_getters[OIIO::ustring("path:ray_has_differentials")] = &RendererServices::get_attr_ray_has_differentials;
+-
+- m_global_attr_getters[OIIO::ustring("surface_shader:diffuse")] = &RendererServices::get_attr_surface_shader_diffuse;
+- m_global_attr_getters[OIIO::ustring("surface_shader:glossy")] = &RendererServices::get_attr_surface_shader_glossy;
+- m_global_attr_getters[OIIO::ustring("surface_shader:emission")] = &RendererServices::get_attr_surface_shader_emission;
+-
+- m_global_attr_getters[OIIO::ustring("appleseed:version_major")] = &RendererServices::get_attr_appleseed_version_major;
+- m_global_attr_getters[OIIO::ustring("appleseed:version_minor")] = &RendererServices::get_attr_appleseed_version_minor;
+- m_global_attr_getters[OIIO::ustring("appleseed:version_patch")] = &RendererServices::get_attr_appleseed_version_patch;
+- m_global_attr_getters[OIIO::ustring("appleseed:version")] = &RendererServices::get_attr_appleseed_version;
++ m_global_attr_getters[OIIO::ustringhash("object:object_instance_id")] = &RendererServices::get_attr_object_instance_id;
++ m_global_attr_getters[OIIO::ustringhash("object:object_instance_index")] = &RendererServices::get_attr_object_instance_index;
++ m_global_attr_getters[OIIO::ustringhash("object:assembly_instance_id")] = &RendererServices::get_attr_assembly_instance_id;
++ m_global_attr_getters[OIIO::ustringhash("object:assembly_name")] = &RendererServices::get_attr_assembly_name;
++ m_global_attr_getters[OIIO::ustringhash("object:assembly_instance_name")] = &RendererServices::get_attr_assembly_instance_name;
++ m_global_attr_getters[OIIO::ustringhash("object:object_instance_name")] = &RendererServices::get_attr_object_instance_name;
++ m_global_attr_getters[OIIO::ustringhash("object:object_name")] = &RendererServices::get_attr_object_name;
++
++ m_global_attr_getters[OIIO::ustringhash("camera:resolution")] = &RendererServices::get_attr_camera_resolution;
++ m_global_attr_getters[OIIO::ustringhash("camera:projection")] = &RendererServices::get_attr_camera_projection;
++ m_global_attr_getters[OIIO::ustringhash("camera:pixelaspect")] = &RendererServices::get_attr_camera_pixelaspect;
++ m_global_attr_getters[OIIO::ustringhash("camera:screen_window")] = &RendererServices::get_attr_camera_screen_window;
++ m_global_attr_getters[OIIO::ustringhash("camera:fov")] = &RendererServices::get_attr_camera_fov;
++ m_global_attr_getters[OIIO::ustringhash("camera:clip")] = &RendererServices::get_attr_camera_clip;
++ m_global_attr_getters[OIIO::ustringhash("camera:clip_near")] = &RendererServices::get_attr_camera_clip_near;
++ m_global_attr_getters[OIIO::ustringhash("camera:clip_far")] = &RendererServices::get_attr_camera_clip_far;
++ m_global_attr_getters[OIIO::ustringhash("camera:shutter")] = &RendererServices::get_attr_camera_shutter;
++ m_global_attr_getters[OIIO::ustringhash("camera:shutter_open")] = &RendererServices::get_attr_camera_shutter_open;
++ m_global_attr_getters[OIIO::ustringhash("camera:shutter_close")] = &RendererServices::get_attr_camera_shutter_close;
++
++ m_global_attr_getters[OIIO::ustringhash("path:ray_depth")] = &RendererServices::get_attr_ray_depth;
++ m_global_attr_getters[OIIO::ustringhash("path:ray_length")] = &RendererServices::get_attr_ray_length;
++ m_global_attr_getters[OIIO::ustringhash("path:ray_ior")] = &RendererServices::get_attr_ray_ior;
++ m_global_attr_getters[OIIO::ustringhash("path:ray_has_differentials")] = &RendererServices::get_attr_ray_has_differentials;
++
++ m_global_attr_getters[OIIO::ustringhash("surface_shader:diffuse")] = &RendererServices::get_attr_surface_shader_diffuse;
++ m_global_attr_getters[OIIO::ustringhash("surface_shader:glossy")] = &RendererServices::get_attr_surface_shader_glossy;
++ m_global_attr_getters[OIIO::ustringhash("surface_shader:emission")] = &RendererServices::get_attr_surface_shader_emission;
++
++ m_global_attr_getters[OIIO::ustringhash("appleseed:version_major")] = &RendererServices::get_attr_appleseed_version_major;
++ m_global_attr_getters[OIIO::ustringhash("appleseed:version_minor")] = &RendererServices::get_attr_appleseed_version_minor;
++ m_global_attr_getters[OIIO::ustringhash("appleseed:version_patch")] = &RendererServices::get_attr_appleseed_version_patch;
++ m_global_attr_getters[OIIO::ustringhash("appleseed:version")] = &RendererServices::get_attr_appleseed_version;
+
+ // Set up user data getters.
+- m_global_user_data_getters[OIIO::ustring("Tn")] = &RendererServices::get_user_data_tn;
+- m_global_user_data_getters[OIIO::ustring("Bn")] = &RendererServices::get_user_data_bn;
+- m_global_user_data_getters[OIIO::ustring("dNdu")] = &RendererServices::get_user_data_dndu;
+- m_global_user_data_getters[OIIO::ustring("dNdv")] = &RendererServices::get_user_data_dndv;
+- m_global_user_data_getters[OIIO::ustring("vertex_color")] = &RendererServices::get_user_data_vertex_color;
++ m_global_user_data_getters[OIIO::ustringhash("Tn")] = &RendererServices::get_user_data_tn;
++ m_global_user_data_getters[OIIO::ustringhash("Bn")] = &RendererServices::get_user_data_bn;
++ m_global_user_data_getters[OIIO::ustringhash("dNdu")] = &RendererServices::get_user_data_dndu;
++ m_global_user_data_getters[OIIO::ustringhash("dNdv")] = &RendererServices::get_user_data_dndv;
++ m_global_user_data_getters[OIIO::ustringhash("vertex_color")] = &RendererServices::get_user_data_vertex_color;
+ }
+
+ void RendererServices::initialize(TextureStore& texture_store)
+@@ -240,7 +240,7 @@ bool RendererServices::get_inverse_matrix(
+ bool RendererServices::get_matrix(
+ OSL::ShaderGlobals* sg,
+ OSL::Matrix44& result,
+- OIIO::ustring from,
++ OIIO::ustringhash from,
+ float time)
+ {
+ if (from == g_camera_ustr)
+@@ -258,7 +258,7 @@ bool RendererServices::get_matrix(
+ bool RendererServices::get_inverse_matrix(
+ OSL::ShaderGlobals* sg,
+ OSL::Matrix44& result,
+- OSL::ustring to,
++ OSL::ustringhash to,
+ float time)
+ {
+ if (to == g_camera_ustr)
+@@ -280,7 +280,7 @@ bool RendererServices::get_inverse_matrix(
+ bool RendererServices::get_matrix(
+ OSL::ShaderGlobals* sg,
+ OSL::Matrix44& result,
+- OIIO::ustring from)
++ OIIO::ustringhash from)
+ {
+ if (from == g_camera_ustr)
+ {
+@@ -299,7 +299,7 @@ bool RendererServices::get_matrix(
+ bool RendererServices::get_inverse_matrix(
+ OSL::ShaderGlobals* sg,
+ OSL::Matrix44& result,
+- OSL::ustring to)
++ OSL::ustringhash to)
+ {
+ if (to == g_camera_ustr)
+ {
+@@ -340,8 +340,8 @@ namespace
+
+ bool RendererServices::transform_points(
+ OSL::ShaderGlobals* sg,
+- OSL::ustring from,
+- OSL::ustring to,
++ OSL::ustringhash from,
++ OSL::ustringhash to,
+ float time,
+ const OSL::Vec3* Pin,
+ OSL::Vec3* Pout,
+@@ -515,8 +515,8 @@ bool RendererServices::trace(
+
+ bool RendererServices::getmessage(
+ OSL::ShaderGlobals* sg,
+- OIIO::ustring source,
+- OIIO::ustring name,
++ OIIO::ustringhash source,
++ OIIO::ustringhash name,
+ OIIO::TypeDesc type,
+ void* val,
+ bool derivatives)
+@@ -559,9 +559,9 @@ bool RendererServices::getmessage(
+ bool RendererServices::get_attribute(
+ OSL::ShaderGlobals* sg,
+ bool derivatives,
+- OIIO::ustring object,
++ OIIO::ustringhash object,
+ OIIO::TypeDesc type,
+- OIIO::ustring name,
++ OIIO::ustringhash name,
+ void* val)
+ {
+ // We don't support getting attributes from named objects, yet.
+@@ -586,9 +586,9 @@ bool RendererServices::get_attribute(
+ bool RendererServices::get_array_attribute(
+ OSL::ShaderGlobals* sg,
+ bool derivatives,
+- OIIO::ustring object,
++ OIIO::ustringhash object,
+ OIIO::TypeDesc type,
+- OIIO::ustring name,
++ OIIO::ustringhash name,
+ int index,
+ void* val)
+ {
+@@ -597,7 +597,7 @@ bool RendererServices::get_array_attribute(
+
+ bool RendererServices::get_userdata(
+ bool derivatives,
+- OIIO::ustring name,
++ OIIO::ustringhash name,
+ OIIO::TypeDesc type,
+ OSL::ShaderGlobals* sg,
+ void* val)
+@@ -616,9 +616,9 @@ bool RendererServices::get_userdata(
+ bool RendererServices::get_attr_##name( \
+ OSL::ShaderGlobals* sg, \
+ bool derivs, \
+- OIIO::ustring object, \
++ OIIO::ustringhash object, \
+ OIIO::TypeDesc type, \
+- OIIO::ustring name, \
++ OIIO::ustringhash name, \
+ void* val) const
+
+ IMPLEMENT_ATTR_GETTER(object_instance_id)
+@@ -1108,7 +1108,7 @@ IMPLEMENT_ATTR_GETTER(appleseed_version)
+ #define IMPLEMENT_USER_DATA_GETTER(name) \
+ bool RendererServices::get_user_data_##name( \
+ bool derivatives, \
+- OIIO::ustring name, \
++ OIIO::ustringhash name, \
+ OIIO::TypeDesc type, \
+ OSL::ShaderGlobals* sg, \
+ void* val) const
+diff --git a/src/appleseed/renderer/kernel/rendering/rendererservices.h b/src/appleseed/renderer/kernel/rendering/rendererservices.h
+index 2bde0746a..4710a7e0e 100644
+--- a/src/appleseed/renderer/kernel/rendering/rendererservices.h
++++ b/src/appleseed/renderer/kernel/rendering/rendererservices.h
+@@ -123,7 +123,7 @@ class RendererServices
+ bool get_matrix(
+ OSL::ShaderGlobals* sg,
+ OSL::Matrix44& result,
+- OIIO::ustring from,
++ OIIO::ustringhash from,
+ float time) override;
+
+ // Get the 4x4 matrix that transforms points from "common" space to
+@@ -134,7 +134,7 @@ class RendererServices
+ bool get_inverse_matrix(
+ OSL::ShaderGlobals* sg,
+ OSL::Matrix44& result,
+- OSL::ustring to,
++ OSL::ustringhash to,
+ float time) override;
+
+ // Get the 4x4 matrix that transforms 'from' to "common" space.
+@@ -144,7 +144,7 @@ class RendererServices
+ bool get_matrix(
+ OSL::ShaderGlobals* sg,
+ OSL::Matrix44& result,
+- OIIO::ustring from) override;
++ OIIO::ustringhash from) override;
+
+ // Get the 4x4 matrix that transforms points from "common" space to
+ // the named 'to' coordinate system. Since there is no time value
+@@ -156,7 +156,7 @@ class RendererServices
+ bool get_inverse_matrix(
+ OSL::ShaderGlobals* sg,
+ OSL::Matrix44& result,
+- OSL::ustring to) override;
++ OSL::ustringhash to) override;
+
+ // Transform points Pin[0..npoints-1] in named coordinate system
+ // 'from' into 'to' coordinates, storing the result in Pout[] using
+@@ -183,8 +183,8 @@ class RendererServices
+ // two spaces.
+ bool transform_points(
+ OSL::ShaderGlobals* sg,
+- OSL::ustring from,
+- OSL::ustring to,
++ OSL::ustringhash from,
++ OSL::ustringhash to,
+ float time,
+ const OSL::Vec3* Pin,
+ OSL::Vec3* Pout,
+@@ -208,8 +208,8 @@ class RendererServices
+ // called for "sourced" messages, not ordinary intra-group messages.
+ bool getmessage(
+ OSL::ShaderGlobals* sg,
+- OIIO::ustring source,
+- OIIO::ustring name,
++ OIIO::ustringhash source,
++ OIIO::ustringhash name,
+ OIIO::TypeDesc type,
+ void* val,
+ bool derivatives) override;
+@@ -229,9 +229,9 @@ class RendererServices
+ bool get_attribute(
+ OSL::ShaderGlobals* sg,
+ bool derivatives,
+- OIIO::ustring object,
++ OIIO::ustringhash object,
+ OIIO::TypeDesc type,
+- OIIO::ustring name,
++ OIIO::ustringhash name,
+ void* val) override;
+
+ // Similar to get_attribute(); this method will return the 'index'
+@@ -239,9 +239,9 @@ class RendererServices
+ bool get_array_attribute(
+ OSL::ShaderGlobals* sg,
+ bool derivatives,
+- OIIO::ustring object,
++ OIIO::ustringhash object,
+ OIIO::TypeDesc type,
+- OIIO::ustring name,
++ OIIO::ustringhash name,
+ int index,
+ void* val) override;
+
+@@ -250,7 +250,7 @@ class RendererServices
+ // as well. Return false if no user-data with the given name and type was found.
+ bool get_userdata(
+ bool derivatives,
+- OIIO::ustring name,
++ OIIO::ustringhash name,
+ OIIO::TypeDesc type,
+ OSL::ShaderGlobals* sg,
+ void* val) override;
+@@ -260,21 +260,21 @@ class RendererServices
+ typedef bool (RendererServices::*AttrGetterFun)(
+ OSL::ShaderGlobals* sg,
+ bool derivs,
+- OIIO::ustring object,
++ OIIO::ustringhash object,
+ OIIO::TypeDesc type,
+- OIIO::ustring name,
++ OIIO::ustringhash name,
+ void* val) const;
+
+- typedef std::unordered_map<OIIO::ustring, AttrGetterFun, OIIO::ustringHash> AttrGetterMapType;
++ typedef std::unordered_map<OIIO::ustringhash, AttrGetterFun> AttrGetterMapType;
+
+ typedef bool (RendererServices::*UserDataGetterFun)(
+ bool derivatives,
+- OIIO::ustring name,
++ OIIO::ustringhash name,
+ OIIO::TypeDesc type,
+ OSL::ShaderGlobals* sg,
+ void* val) const;
+
+- typedef std::unordered_map<OIIO::ustring, UserDataGetterFun, OIIO::ustringHash> UserDataGetterMapType;
++ typedef std::unordered_map<OIIO::ustringhash, UserDataGetterFun> UserDataGetterMapType;
+
+ OIIO::TextureSystem& m_texture_sys;
+ AttrGetterMapType m_global_attr_getters;
+@@ -291,9 +291,9 @@ class RendererServices
+ bool get_attr_##name( \
+ OSL::ShaderGlobals* sg, \
+ bool derivs, \
+- OIIO::ustring object, \
++ OIIO::ustringhash object, \
+ OIIO::TypeDesc type, \
+- OIIO::ustring name, \
++ OIIO::ustringhash name, \
+ void* val) const
+
+ // Object attributes.
+@@ -340,7 +340,7 @@ class RendererServices
+ #define DECLARE_USER_DATA_GETTER(name) \
+ bool get_user_data_##name( \
+ bool derivatives,\
+- OIIO::ustring name, \
++ OIIO::ustringhash name, \
+ OIIO::TypeDesc type, \
+ OSL::ShaderGlobals* sg, \
+ void* val) const
+--
+2.44.0
+
diff --git a/PKGBUILD b/PKGBUILD
index 104865adeb90..3475fdf8cce3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,8 +4,8 @@
#_fragment="#branch=2.0.5-beta-maintenance"
pkgname=appleseed-git
-pkgver=2.1.0.beta.r275.g390d5cda9
-pkgrel=1
+pkgver=2.1.0.beta.r284.g1e60a023d
+pkgrel=7
epoch=1
pkgdesc="Physically-based global illumination rendering engine primarily designed for animation and visual effects (development vesion)."
arch=(i686 x86_64)
@@ -13,34 +13,57 @@ url="https://appleseedhq.net"
license=('MIT')
provides=('appleseed')
conflicts=('appleseed')
-depends=(python2 python embree qt5-base boost{,-python2}-libs openexr opencolorio openimageio openshadinglanguage xerces-c zlib)
+depends=(python2 python embree qt5-base boost{,-python2}-libs openexr opencolorio1 openimageio openshadinglanguage xerces-c zlib)
makedepends=(boost{,-python2} cmake git ninja)
options=()
source=("${pkgname}::git+https://github.com/appleseedhq/appleseed.git${_fragment}"
"boost_107400.patch"
"cmake.extra.install.dirs.remove.patch"
osl_1.11.8.patch::"https://github.com/appleseedhq/appleseed/pull/2900.patch"
+ "oiio_cxx_std_14.patch"
+ "openexr3.patch"
+ "opencolorio1.patch"
+ "openimageio.patch"
+ "OSL-01.13.7.patch"
+ "appleseed.studio_wrap"
+ "appleseed.cli_wrap"
)
sha256sums=('SKIP'
'8e7d453ced2a58b162b6e8e2ace09916755b70821837b2c7502a3417f03a25a3'
'87b987f006e45d11cc4dfec2bd37fd2b760fd2bdbf06f48e7d467cbca9b2b301'
- '0171eaa9ec499ecf74ac8878dbacfb28f81094e9a7bed46819314613e6ae7133')
+ '0171eaa9ec499ecf74ac8878dbacfb28f81094e9a7bed46819314613e6ae7133'
+ '194902d8c32f23155dddd4205ce3744852e0b86fc22e74739ce5ab7bf97924a7'
+ 'b6ed6ca0034a2ec81ecf8f44e11dba7b3469130a3106fcca58318174003e2642'
+ '881b53983e24ade13480d2be2cfe10990890286cd9910c14e83284da427a1713'
+ 'e0c1730745e756a85d633ab1dd50c39b1f744b173b50ca38595d4ee9325b5670'
+ '2eebb1faff7c6b9d24cea79ba489d194d832b18e446ff88866180904467bdf1e'
+ '8f6f7dfc816b10079692f27e717a80c05c7fe94ad6149a3d78859fefe808996f'
+ '6f80a201373610facce02b0bd6764af2c1730d6f39932117767e3dcfa7b72804')
b2sums=('SKIP'
'8461888dc541113700f377379b0e688bdbc6a5b79bfda4c1b061c2e3811a03c43583272862d6b084f092c6bb372c15b31d2a25849b9e2d89d1e3ed657f680846'
'85d278ea12672e44657fbfe8695744508db88cea54dbc93410632b05175c94a5e29e28dfb739ba88ec10a2449ff499484854ba177db03f5e41b24d2b8e6b9328'
- 'cc21c08931d4e5060bbf9b8d2732e68eb28edc923e952db09665e2f63a0918e24f6d35f39a2ea2048a6b5ad67833df08bc9a5e1fea065e1df975ca5e40d414f0')
+ 'cc21c08931d4e5060bbf9b8d2732e68eb28edc923e952db09665e2f63a0918e24f6d35f39a2ea2048a6b5ad67833df08bc9a5e1fea065e1df975ca5e40d414f0'
+ 'e999b4aaf4efcb3671de7f197d9ab92fd90cee34aaf879d30f959c88cea55416b0715ce85ce0452203484e4b336aed453ecff9166e12b9da9170101a3118138c'
+ '9499c09e99fba96958861f1da7833728850c5581cf371a8f6994012288445d8fd24ec3cfe4f9e22a5860c930d91e710ffed9b33ba3cf2d8385ffa1cda4909528'
+ '6a92e81297d3bdc8c8b77034d9dac1864dd59b106503b6c711fbdd04122ef8374b908054844ec2999ba6a845363afebf566b2769cf306843c8bc017453e54de1'
+ '316300d0540c16c3bcaf1ea37ee470957c35ff995129dafc28249db4526f07a22b67058fd4abbc685691604716048fef039661ba06f5515fff858f7c16d2906e'
+ 'd2acec93ceb18fbe6b98a4901def16691e9d5c55daf84e1d3e427d4799b4cd4a22aaa1869b41dba19a8de0c0da3c68e4b71fc060e7b3c249e93d97553bda4d87'
+ 'b87bd4812393340507c642470084764d770a593cb868538cb8580710dc4d1ae7708db6749a7034afcbd2b78af8498264299e1352df695b47b31277711ca66c87'
+ '47a3ff0cee076be409111f860b93ac638999da5ed7e6cda1ca7dfdb3efa34d92b7720612855471939c742be69c5a6c413d1de022b6f6c764780c47b064aef93f')
+
+_pyver=$(python -c "from sys import version_info; print(\"%d.%d\" % (version_info[0],version_info[1]))")
+_pyver_short=$(python -c "from sys import version_info; print(\"%d%d\" % (version_info[0],version_info[1]))")
pkgver() {
git -C "${srcdir}/${pkgname}" describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
- git -C "${srcdir}/${pkgname}" apply -v "${srcdir}"/{boost_107400,cmake.extra.install.dirs.remove,osl_1.11.8}.patch
- sed '/python37/s/37/39/' -i "${srcdir}/${pkgname}"/src/appleseed.python/CMakeLists.txt
+ git -C "${srcdir}/${pkgname}" apply -v "${srcdir}"/{boost_107400,cmake.extra.install.dirs.remove,osl_1.11.8,oiio_cxx_std_14,open{exr3,colorio1,imageio},OSL-01.13.7}.patch
+ sed '/python37/s/37/${_pyver_short}/' -i "${srcdir}/${pkgname}"/src/appleseed.python/CMakeLists.txt
}
build() {
- _pyver=$(python -c "from sys import version_info; print(\"%d.%d\" % (version_info[0],version_info[1]))")
CMAKE_FLAGS=( -DWITH_EMBREE=ON
-DCMAKE_BUILD_TYPE=Ship
-DCMAKE_INSTALL_PREFIX=/opt/appleseed
@@ -53,13 +76,15 @@ CMAKE_FLAGS=( -DWITH_EMBREE=ON
-DUSE_STATIC_OSL=OFF
-DWARNINGS_AS_ERRORS=OFF
-DWITH_BENCH=OFF
+ -DINSTALL_TESTS=OFF
+ -DINSTALL_API_EXAMPLES=OFF
-DPYTHON3_INCLUDE_DIR="/usr/include/python${_pyver}"
-Wno-dev
)
- grep -q avx /proc/cpuinfo && CMAKE_FLAGS+=(-DUSE_AVX=ON)
- grep -q avx2 /proc/cpuinfo && CMAKE_FLAGS+=(-DUSE_AVX2=ON)
- grep -q f16c /proc/cpuinfo && CMAKE_FLAGS+=(-DUSE_F16C=ON)
- grep -q sse4_2 /proc/cpuinfo && CMAKE_FLAGS+=(-DUSE_SSE42=ON)
+ grep -qw avx /proc/cpuinfo && CMAKE_FLAGS+=(-DUSE_AVX=ON)
+ grep -qw avx2 /proc/cpuinfo && CMAKE_FLAGS+=(-DUSE_AVX2=ON)
+ grep -qw f16c /proc/cpuinfo && CMAKE_FLAGS+=(-DUSE_F16C=ON)
+ grep -qw sse4_2 /proc/cpuinfo && CMAKE_FLAGS+=(-DUSE_SSE42=ON)
cmake "${CMAKE_FLAGS[@]}" -S "${srcdir}/${pkgname}" -B build -G Ninja
# shellcheck disable=SC2086 # allow MAKEFLAGS to carry multiple flags
@@ -67,8 +92,13 @@ CMAKE_FLAGS=( -DWITH_EMBREE=ON
}
package() {
+ # Application
DESTDIR="${pkgdir}" ninja -C build install
install -D -m644 "${srcdir}/${pkgname}/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ # Wrapper scripts
+ install -D -m755 appleseed.studio_wrap -T "${pkgdir}/usr/bin/appleseed.studio"
+ install -D -m755 appleseed.cli_wrap -T "${pkgdir}/usr/bin/appleseed.cli"
}
# vim:set ts=2 sw=2 et:
diff --git a/appleseed.cli_wrap b/appleseed.cli_wrap
new file mode 100644
index 000000000000..1b6a8d2cdcb9
--- /dev/null
+++ b/appleseed.cli_wrap
@@ -0,0 +1,4 @@
+#!/bin/sh
+export PYTHONHOME=/usr/lib/python2.7
+export PYTHONPATH=/usr/lib/python2.7
+exec /opt/appleseed/bin/appleseed.cli "$@"
diff --git a/appleseed.studio_wrap b/appleseed.studio_wrap
new file mode 100644
index 000000000000..83024cb4780c
--- /dev/null
+++ b/appleseed.studio_wrap
@@ -0,0 +1,4 @@
+#!/bin/sh
+export PYTHONHOME=/usr/lib/python2.7
+export PYTHONPATH=/usr/lib/python2.7
+exec /opt/appleseed/bin/appleseed.studio "$@"
diff --git a/oiio_cxx_std_14.patch b/oiio_cxx_std_14.patch
new file mode 100644
index 000000000000..c0c9e7875aea
--- /dev/null
+++ b/oiio_cxx_std_14.patch
@@ -0,0 +1,36 @@
+diff --git a/src/appleseed.qtcommon/CMakeLists.txt b/src/appleseed.qtcommon/CMakeLists.txt
+index 5bed9b025..2be2ceebb 100644
+--- a/src/appleseed.qtcommon/CMakeLists.txt
++++ b/src/appleseed.qtcommon/CMakeLists.txt
+@@ -192,6 +192,7 @@ add_library (appleseed.qtcommon STATIC
+ )
+
+ set_target_properties (appleseed.qtcommon PROPERTIES FOLDER "Core")
++set_target_properties (appleseed.qtcommon PROPERTIES CXX_STANDARD 14)
+
+
+ #--------------------------------------------------------------------------------------------------
+diff --git a/src/appleseed.studio/CMakeLists.txt b/src/appleseed.studio/CMakeLists.txt
+index 0c191c815..9587c060c 100644
+--- a/src/appleseed.studio/CMakeLists.txt
++++ b/src/appleseed.studio/CMakeLists.txt
+@@ -438,6 +438,7 @@ add_executable (appleseed.studio
+ )
+
+ set_target_properties (appleseed.studio PROPERTIES FOLDER "Applications")
++set_target_properties (appleseed.studio PROPERTIES CXX_STANDARD 14)
+
+ if (WIN32)
+ set_target_properties (appleseed.studio PROPERTIES
+diff --git a/src/appleseed/CMakeLists.txt b/src/appleseed/CMakeLists.txt
+index d56d5ed18..20a18ff04 100644
+--- a/src/appleseed/CMakeLists.txt
++++ b/src/appleseed/CMakeLists.txt
+@@ -2340,6 +2340,7 @@ add_library (appleseed SHARED
+ )
+
+ set_target_properties (appleseed PROPERTIES FOLDER "Core")
++set_target_properties (appleseed PROPERTIES CXX_STANDARD 14)
+
+ if (USE_VISIBILITY_MAP)
+ set_target_properties (appleseed PROPERTIES
diff --git a/opencolorio1.patch b/opencolorio1.patch
new file mode 100644
index 000000000000..96146f6f33de
--- /dev/null
+++ b/opencolorio1.patch
@@ -0,0 +1,82 @@
+diff --git a/cmake/modules/FindOpenColorIO.cmake b/cmake/modules/FindOpenColorIO.cmake
+index b83972220..e40bf65aa 100644
+--- a/cmake/modules/FindOpenColorIO.cmake
++++ b/cmake/modules/FindOpenColorIO.cmake
+@@ -35,10 +35,10 @@
+ # OPENCOLORIO_FOUND - True if OpenColorIO found.
+
+ # Look for the header file.
+-find_path (OPENCOLORIO_INCLUDE_DIR NAMES OpenColorIO/OpenColorIO.h)
++find_path (OPENCOLORIO_INCLUDE_DIR NAMES OpenColorIO1/OpenColorIO.h)
+
+ # Look for the library.
+-find_library (OPENCOLORIO_LIBRARY NAMES OpenColorIO)
++find_library (OPENCOLORIO_LIBRARY NAMES OpenColorIO1)
+
+ # handle the QUIETLY and REQUIRED arguments and set OPENCOLORIO_FOUND to TRUE if all listed variables are TRUE
+ include (FindPackageHandleStandardArgs)
+diff --git a/src/appleseed.bench/mainwindow/mainwindow.h b/src/appleseed.bench/mainwindow/mainwindow.h
+index b7827d927..453b86f24 100644
+--- a/src/appleseed.bench/mainwindow/mainwindow.h
++++ b/src/appleseed.bench/mainwindow/mainwindow.h
+@@ -57,7 +57,7 @@
+ #include <QtGlobal>
+
+ // OpenColorIO headers.
+-#include <OpenColorIO/OpenColorIO.h>
++#include <OpenColorIO1/OpenColorIO.h>
+ namespace OCIO = OCIO_NAMESPACE;
+
+ // Boost headers.
+diff --git a/src/appleseed.qtcommon/widgets/renderwidget.h b/src/appleseed.qtcommon/widgets/renderwidget.h
+index e4020b438..745df88d3 100644
+--- a/src/appleseed.qtcommon/widgets/renderwidget.h
++++ b/src/appleseed.qtcommon/widgets/renderwidget.h
+@@ -38,7 +38,7 @@
+ #include "foundation/math/vector.h"
+
+ // OpenColorIO headers.
+-#include <OpenColorIO/OpenColorIO.h>
++#include <OpenColorIO1/OpenColorIO.h>
+ namespace OCIO = OCIO_NAMESPACE;
+
+ // Qt headers.
+diff --git a/src/appleseed.studio/mainwindow/mainwindow.h b/src/appleseed.studio/mainwindow/mainwindow.h
+index ba6b8c20c..ec2bbbd78 100644
+--- a/src/appleseed.studio/mainwindow/mainwindow.h
++++ b/src/appleseed.studio/mainwindow/mainwindow.h
+@@ -51,7 +51,7 @@
+ #include <QObject>
+
+ // OpenColorIO headers.
+-#include <OpenColorIO/OpenColorIO.h>
++#include <OpenColorIO1/OpenColorIO.h>
+ namespace OCIO = OCIO_NAMESPACE;
+
+ // Standard headers.
+diff --git a/src/appleseed.studio/mainwindow/rendering/rendertab.cpp b/src/appleseed.studio/mainwindow/rendering/rendertab.cpp
+index 3cbb684bf..1a786aaff 100644
+--- a/src/appleseed.studio/mainwindow/rendering/rendertab.cpp
++++ b/src/appleseed.studio/mainwindow/rendering/rendertab.cpp
+@@ -46,7 +46,7 @@
+ #include "foundation/image/image.h"
+
+ // OpenColorIO headers.
+-#include <OpenColorIO/OpenColorIO.h>
++#include <OpenColorIO1/OpenColorIO.h>
+
+ // Qt headers.
+ #include <QComboBox>
+diff --git a/src/appleseed.studio/mainwindow/rendering/rendertab.h b/src/appleseed.studio/mainwindow/rendering/rendertab.h
+index eeb76edaa..2de9e6a6a 100644
+--- a/src/appleseed.studio/mainwindow/rendering/rendertab.h
++++ b/src/appleseed.studio/mainwindow/rendering/rendertab.h
+@@ -44,7 +44,7 @@
+ #include "widgets/widgetzoomhandler.h"
+
+ // OpenColorIO headers.
+-#include <OpenColorIO/OpenColorIO.h>
++#include <OpenColorIO1/OpenColorIO.h>
+ namespace OCIO = OCIO_NAMESPACE;
+
+ // Qt headers.
diff --git a/openexr3.patch b/openexr3.patch
new file mode 100644
index 000000000000..3cd09316c872
--- /dev/null
+++ b/openexr3.patch
@@ -0,0 +1,398 @@
+diff --git a/cmake/modules/FindOpenEXR.cmake b/cmake/modules/FindOpenEXR.cmake
+index 287342e9d..a2f7b4c62 100644
+--- a/cmake/modules/FindOpenEXR.cmake
++++ b/cmake/modules/FindOpenEXR.cmake
+@@ -1,93 +1,138 @@
+-
+-#
+-# This source file is part of appleseed.
+-# Visit https://appleseedhq.net/ for additional information and resources.
+-#
+-# This software is released under the MIT license.
+-#
+-# Copyright (c) 2013-2018 Esteban Tovagliari, The appleseedhq Organization
++# - 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.
+ #
+-# Permission is hereby granted, free of charge, to any person obtaining a copy
+-# of this software and associated documentation files (the "Software"), to deal
+-# in the Software without restriction, including without limitation the rights
+-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+-# copies of the Software, and to permit persons to whom the Software is
+-# furnished to do so, subject to the following conditions:
++# 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
+ #
+-# The above copyright notice and this permission notice shall be included in
+-# all copies or substantial portions of the Software.
+-#
+-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+-# THE SOFTWARE.
+-#
+-
++# also defined, but not for general use are
++# OPENEXR_LIBRARY, where to find the OpenEXR library.
+
++#=============================================================================
++# Copyright 2011 Blender Foundation.
+ #
+-# Find OpenEXR headers and libraries.
+-#
+-# This module can take the following variables to define
+-# custom search locations:
+-#
+-# OPENEXR_ROOT
+-# OPENEXR_LOCATION
++# Distributed under the OSI-approved BSD 3-Clause License,
++# see accompanying file BSD-3-Clause-license.txt for details.
++#=============================================================================
+
+-# This module defines the following variables:
+-#
+-# OPENEXR_FOUND True if OpenEXR was found
+-# OPENEXR_INCLUDE_DIRS Where to find OpenEXR header files
+-# OPENEXR_LIBRARIES List of OpenEXR libraries to link against
+-#
++# 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()
+
+-include (FindPackageHandleStandardArgs)
++# 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")
+
+-find_path (OPENEXR_INCLUDE_DIR NAMES ImfHeader.h
+- PATH_SUFFIXES OpenEXR
+- HINTS ${OPENEXR_ROOT}/include
+- ${OPENEXR_LOCATION}/include
+- /usr/local/include
+- /usr/include
++SET(_openexr_FIND_COMPONENTS
++ Iex
++ Imath
++ OpenEXR
++ IlmThread
+ )
+
+-find_library (OPENEXR_IMF_LIBRARY NAMES IlmImf-2_3 IlmImf-2_2 IlmImf
+- PATH_SUFFIXES lib64 lib
+- HINTS ${OPENEXR_ROOT}
+- ${OPENEXR_LOCATION}
+- /usr/local
+- /usr
++SET(_openexr_SEARCH_DIRS
++ ${OPENEXR_ROOT_DIR}
++ /opt/lib/openexr
+ )
+
+-find_library (OPENEXR_THREADS_LIBRARY
+- NAMES IlmThread-2_3 IlmThread-2_2 IlmThread
+- PATH_SUFFIXES lib64 lib
+- HINTS ${OPENEXR_ROOT}
+- ${OPENEXR_LOCATION}
+- /usr/local
+- /usr
++FIND_PATH(OPENEXR_INCLUDE_DIR
++ NAMES
++ OpenEXR/ImfXdr.h
++ HINTS
++ ${_openexr_SEARCH_DIRS}
++ PATH_SUFFIXES
++ include
+ )
+
+-# Handle the QUIETLY and REQUIRED arguments and set OPENEXR_FOUND.
+-find_package_handle_standard_args (OPENEXR DEFAULT_MSG
+- OPENEXR_INCLUDE_DIR
+- OPENEXR_IMF_LIBRARY
+- OPENEXR_THREADS_LIBRARY
+-)
++# 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
++ )
+
+-# Set the output variables.
+-if (OPENEXR_FOUND)
+- set (OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR})
+- set (OPENEXR_LIBRARIES ${OPENEXR_IMF_LIBRARY} ${OPENEXR_THREADS_LIBRARY})
+-else ()
+- set (OPENEXR_INCLUDE_DIRS)
+- set (OPENEXR_LIBRARIES)
+-endif ()
+-
+-mark_as_advanced (
+- OPENEXR_INCLUDE_DIR
+- OPENEXR_IMF_LIBRARY
+- OPENEXR_THREADS_LIBRARY
++ 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_DIR)
++
++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/src/appleseed/foundation/core/thirdparties.cpp b/src/appleseed/foundation/core/thirdparties.cpp
+index 7196557bc..845cd205e 100644
+--- a/src/appleseed/foundation/core/thirdparties.cpp
++++ b/src/appleseed/foundation/core/thirdparties.cpp
+@@ -42,7 +42,6 @@
+
+ // IlmBase headers.
+ #include "foundation/platform/_beginexrheaders.h"
+-#include <OpenEXR/IlmBaseConfig.h>
+ #include "foundation/platform/_endexrheaders.h"
+
+ // LZ4 headers.
+@@ -121,7 +120,6 @@ LibraryVersionArray ThirdParties::get_versions()
+ versions.push_back(APIStringPair("OpenColorIO", OCIO_VERSION));
+ #endif
+
+- versions.push_back(APIStringPair("IlmBase", ILMBASE_VERSION_STRING));
+ versions.push_back(APIStringPair("libjpeg-turbo", LibJpegTurboVersion));
+ versions.push_back(APIStringPair("LibTIFF", LibTIFFVersion));
+ versions.push_back(APIStringPair("LZ4", format("{0}.{1}.{2}", LZ4_VERSION_MAJOR, LZ4_VERSION_MINOR, LZ4_VERSION_RELEASE)));
+diff --git a/src/appleseed/foundation/image/color.h b/src/appleseed/foundation/image/color.h
+index 6b97efcd8..3f288b032 100644
+--- a/src/appleseed/foundation/image/color.h
++++ b/src/appleseed/foundation/image/color.h
+@@ -40,7 +40,7 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathColor.h"
++#include "Imath/ImathColor.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/appleseed/foundation/math/aabb.h b/src/appleseed/foundation/math/aabb.h
+index 7d0de2e47..b3dcf65d8 100644
+--- a/src/appleseed/foundation/math/aabb.h
++++ b/src/appleseed/foundation/math/aabb.h
+@@ -37,7 +37,7 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathBox.h"
++#include "Imath/ImathBox.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/appleseed/foundation/math/matrix.h b/src/appleseed/foundation/math/matrix.h
+index f8b9f8f23..80441e320 100644
+--- a/src/appleseed/foundation/math/matrix.h
++++ b/src/appleseed/foundation/math/matrix.h
+@@ -44,7 +44,7 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathMatrix.h"
++#include "Imath/ImathMatrix.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/appleseed/foundation/math/quaternion.h b/src/appleseed/foundation/math/quaternion.h
+index a73f99327..8e9899c46 100644
+--- a/src/appleseed/foundation/math/quaternion.h
++++ b/src/appleseed/foundation/math/quaternion.h
+@@ -37,7 +37,7 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathQuat.h"
++#include "Imath/ImathQuat.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/appleseed/foundation/math/vector.h b/src/appleseed/foundation/math/vector.h
+index 8eca71fcf..f67de5e49 100644
+--- a/src/appleseed/foundation/math/vector.h
++++ b/src/appleseed/foundation/math/vector.h
+@@ -36,7 +36,7 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathVec.h"
++#include "Imath/ImathVec.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/appleseed/foundation/meta/tests/test_aabb.cpp b/src/appleseed/foundation/meta/tests/test_aabb.cpp
+index 54547752e..3ece33e18 100644
+--- a/src/appleseed/foundation/meta/tests/test_aabb.cpp
++++ b/src/appleseed/foundation/meta/tests/test_aabb.cpp
+@@ -36,7 +36,7 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathBox.h"
++#include "Imath/ImathBox.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/appleseed/foundation/meta/tests/test_color.cpp b/src/appleseed/foundation/meta/tests/test_color.cpp
+index d47fdfcdf..23ff5bff6 100644
+--- a/src/appleseed/foundation/meta/tests/test_color.cpp
++++ b/src/appleseed/foundation/meta/tests/test_color.cpp
+@@ -36,7 +36,7 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathColor.h"
++#include "Imath/ImathColor.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/appleseed/foundation/meta/tests/test_half.cpp b/src/appleseed/foundation/meta/tests/test_half.cpp
+index 523dfd97b..418819cf9 100644
+--- a/src/appleseed/foundation/meta/tests/test_half.cpp
++++ b/src/appleseed/foundation/meta/tests/test_half.cpp
+@@ -33,7 +33,7 @@
+
+ // OpenEXR headers.
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/half.h"
++#include "Imath/half.h"
+ #include "foundation/platform/_endexrheaders.h"
+
+ // Standard headers.
+diff --git a/src/appleseed/foundation/meta/tests/test_matrix.cpp b/src/appleseed/foundation/meta/tests/test_matrix.cpp
+index 72afb2a54..46f429712 100644
+--- a/src/appleseed/foundation/meta/tests/test_matrix.cpp
++++ b/src/appleseed/foundation/meta/tests/test_matrix.cpp
+@@ -38,7 +38,7 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathMatrix.h"
++#include "Imath/ImathMatrix.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/appleseed/foundation/meta/tests/test_quaternion.cpp b/src/appleseed/foundation/meta/tests/test_quaternion.cpp
+index 7ea991f8f..cf42002bf 100644
+--- a/src/appleseed/foundation/meta/tests/test_quaternion.cpp
++++ b/src/appleseed/foundation/meta/tests/test_quaternion.cpp
+@@ -38,8 +38,8 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathQuat.h"
+-#include "OpenEXR/ImathVec.h"
++#include "Imath/ImathQuat.h"
++#include "Imath/ImathVec.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/appleseed/foundation/meta/tests/test_vector.cpp b/src/appleseed/foundation/meta/tests/test_vector.cpp
+index 3904f37fd..6bf0b25d1 100644
+--- a/src/appleseed/foundation/meta/tests/test_vector.cpp
++++ b/src/appleseed/foundation/meta/tests/test_vector.cpp
+@@ -35,7 +35,7 @@
+ // Imath headers.
+ #ifdef APPLESEED_ENABLE_IMATH_INTEROP
+ #include "foundation/platform/_beginexrheaders.h"
+-#include "OpenEXR/ImathVec.h"
++#include "Imath/ImathVec.h"
+ #include "foundation/platform/_endexrheaders.h"
+ #endif
+
+diff --git a/src/thirdparty/bcd/bcd/ImageIO.cpp b/src/thirdparty/bcd/bcd/ImageIO.cpp
+index afb350ca6..62721f39b 100644
+--- a/src/thirdparty/bcd/bcd/ImageIO.cpp
++++ b/src/thirdparty/bcd/bcd/ImageIO.cpp
+@@ -13,6 +13,7 @@
+ // BCD headers.
+ #include "DeepImage.h"
+ #include "ImageIO.h"
++#include "ImfHeader.h"
+
+ // OpenEXR headers.
+ #if defined _MSC_VER
diff --git a/openimageio.patch b/openimageio.patch
new file mode 100644
index 000000000000..db61057d932f
--- /dev/null
+++ b/openimageio.patch
@@ -0,0 +1,46 @@
+From f90de3f01f7872c754f815287b6eaebd8e4c7fa1 Mon Sep 17 00:00:00 2001
+From: howetuft <howetuft@gmail.com>
+Date: Sun, 13 Mar 2022 19:52:17 +0100
+Subject: [PATCH] OpenImageIO v2.3
+
+---
+ cmake/modules/FindOpenImageIO.cmake | 3 ++-
+ .../kernel/rendering/final/texturecontrolledpixelrenderer.cpp | 1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/cmake/modules/FindOpenImageIO.cmake b/cmake/modules/FindOpenImageIO.cmake
+index 64f6dc48d..0538b89b2 100644
+--- a/cmake/modules/FindOpenImageIO.cmake
++++ b/cmake/modules/FindOpenImageIO.cmake
+@@ -42,6 +42,7 @@ include (FindPackageHandleStandardArgs)
+ find_path (OPENIMAGEIO_INCLUDE_DIR NAMES OpenImageIO/imageio.h)
+
+ find_library (OPENIMAGEIO_LIBRARY NAMES OpenImageIO)
++find_library (OPENIMAGEIO_UTIL_LIBRARY NAMES OpenImageIO_Util)
+
+ find_program (OPENIMAGEIO_OIIOTOOL NAMES oiiotool)
+ find_program (OPENIMAGEIO_IDIFF NAMES idiff)
+@@ -57,7 +58,7 @@ find_package_handle_standard_args (OPENIMAGEIO DEFAULT_MSG
+ # Set the output variables.
+ if (OPENIMAGEIO_FOUND)
+ set (OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR})
+- set (OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARY})
++ set (OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARY} ${OPENIMAGEIO_UTIL_LIBRARY})
+ else ()
+ set (OPENIMAGEIO_INCLUDE_DIRS)
+ set (OPENIMAGEIO_LIBRARIES)
+diff --git a/src/appleseed/renderer/kernel/rendering/final/texturecontrolledpixelrenderer.cpp b/src/appleseed/renderer/kernel/rendering/final/texturecontrolledpixelrenderer.cpp
+index f30fcc911..389b3d909 100644
+--- a/src/appleseed/renderer/kernel/rendering/final/texturecontrolledpixelrenderer.cpp
++++ b/src/appleseed/renderer/kernel/rendering/final/texturecontrolledpixelrenderer.cpp
+@@ -61,6 +61,7 @@
+ #include "foundation/platform/_beginoiioheaders.h"
+ #include "OpenImageIO/imagebufalgo.h"
+ #include "OpenImageIO/typedesc.h"
++#include "OpenImageIO/imagecache.h"
+ #include "foundation/platform/_endoiioheaders.h"
+
+ // Standard headers.
+--
+2.35.1
+