diff --git a/graphics/appleseed/Makefile b/graphics/appleseed/Makefile index a9b98309da64..062301f55c59 100644 --- a/graphics/appleseed/Makefile +++ b/graphics/appleseed/Makefile @@ -1,95 +1,117 @@ PORTNAME= appleseed DISTVERSION= 2.1.0-beta PORTREVISION= 22 CATEGORIES= graphics PATCH_SITES= http://vault.101011010.xyz/distfiles/ LOCAL/danfe PATCHFILES= OSL-01.13.7.patch:-p1 MAINTAINER= danfe@FreeBSD.org COMMENT= Modern, physically-based production renderer WWW= https://appleseedhq.net/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.txt -BROKEN= fails to build with Boost>=1.87 - LIB_DEPENDS= libboost_thread.so:devel/boost-libs \ liblz4.so:archivers/liblz4 \ libpng.so:graphics/png \ libIlmThread.so:graphics/openexr \ libImath.so:math/Imath \ libOpenColorIOv1.so:graphics/opencoloriov1 \ libOpenImageIO.so:graphics/openimageio \ libxerces-c.so:textproc/xerces-c3 \ liboslexec.so:graphics/openshadinglanguage USE_GITHUB= yes GH_ACCOUNT= ${PORTNAME}hq ONLY_FOR_ARCHS= i386 amd64 ONLY_FOR_ARCHS_REASON= not ported to it yet USES= cmake compiler:c++11-lang shebangfix SHEBANG_FILES= scripts/*.py CMAKE_ARGS= -DWITH_PYTHON2_BINDINGS:BOOL=OFF \ -DWITH_DOXYGEN:BOOL=OFF \ -DINSTALL_HEADERS:BOOL=OFF \ -DINSTALL_TESTS:BOOL=OFF \ -DINSTALL_API_EXAMPLES:BOOL=OFF \ -DWARNINGS_AS_ERRORS:BOOL=OFF .for lib in BOOST EMBREE EXR OCIO OIIO OSL CMAKE_ARGS+= -DUSE_STATIC_${lib}:BOOL=OFF .endfor # Not ready for hier(7)-conforming installation yet CMAKE_INSTALL_PREFIX= ${PREFIX}/${PKGBASE} PLIST_SUB= APPHOME=${CMAKE_INSTALL_PREFIX} SUB_FILES= pkg-message SUB_LIST:= ${PLIST_SUB} OPTIONS_DEFINE= EMBREE PYTHON STUDIO OPTIONS_DEFAULT= PYTHON STUDIO OPTIONS_SUB= yes EMBREE_DESC= Embree intersection backend support EMBREE_LIB_DEPENDS= libembree3.so:graphics/embree3 EMBREE_CMAKE_ON= -DWITH_EMBREE:BOOL=ON PYTHON_USES= gl python:build,run PYTHON_USE= GL=gl PYTHON_CMAKE_ON= -DWITH_PYTHON3_BINDINGS:BOOL=ON STUDIO_DESC= Build appleseed.studio (Qt-based) STUDIO_LIB_DEPENDS= ${PY_BOOST} STUDIO_USES= qt:5 STUDIO_USE= QT=buildtools:build,qmake:build,concurrent,core,gui,opengl,widgets STUDIO_CMAKE_OFF= -DWITH_STUDIO:BOOL=OFF STUDIO_IMPLIES= PYTHON post-patch: @${RMDIR} ${WRKSRC}/sandbox/docs/api @${RM} ${WRKSRC}/sandbox/share/cmake/Modules/FindOpenImageIO.cmake @${REINPLACE_CMD} -e 's,OpenEXR,Imath, ; /[ {]IMATH_HALF_LIBRARY/d' \ ${WRKSRC}/cmake/modules/FindImath.cmake @${REINPLACE_CMD} -e 's,OpenEXR/Imath,Imath/Imath,' \ ${WRKSRC}/src/appleseed/foundation/meta/tests/test_matrix.cpp \ ${WRKSRC}/src/appleseed/foundation/meta/tests/test_quaternion.cpp \ ${WRKSRC}/src/appleseed/foundation/meta/tests/test_vector.cpp \ ${WRKSRC}/src/appleseed/foundation/meta/tests/test_aabb.cpp \ ${WRKSRC}/src/appleseed/foundation/meta/tests/test_color.cpp \ ${WRKSRC}/src/appleseed/foundation/math/vector.h \ ${WRKSRC}/src/appleseed/foundation/math/aabb.h \ ${WRKSRC}/src/appleseed/foundation/math/matrix.h \ ${WRKSRC}/src/appleseed/foundation/math/quaternion.h \ ${WRKSRC}/src/appleseed/foundation/image/color.h @${REINPLACE_CMD} -e '/return Product/s,trt\.derived(),trt,' \ ${WRKSRC}/src/thirdparty/bcd/ext/eigen/Eigen/src/Core/Transpositions.h + @${REINPLACE_CMD} -e 's/impl->m_input->read_image(/&0, 0, 0, -1,/' \ + ${WRKSRC}/src/appleseed/foundation/image/genericprogressiveimagefilereader.cpp + @${REINPLACE_CMD} -e 's/clamp(/foundation::&/' \ + ${WRKSRC}/src/appleseed/renderer/kernel/lighting/lighttree.cpp \ + ${WRKSRC}/src/appleseed/renderer/kernel/shading/closures.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/bsdf/glassbsdf.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/environmentedf/hosekenvironmentedf.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/environmentedf/preethamenvironmentedf.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/input/texturesource.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/postprocessingstage/colormappostprocessingstage.cpp \ + ${WRKSRC}/src/appleseed/renderer/utility/transformsequence.cpp \ + ${WRKSRC}/src/appleseed.studio/utility/widgetzoomhandler.cpp + @${REINPLACE_CMD} -e 's/TypeDesc::Type/Type/' \ + ${WRKSRC}/src/appleseed/renderer/kernel/rendering/final/texturecontrolledpixelrenderer.cpp \ + ${WRKSRC}/src/appleseed/renderer/kernel/rendering/rendererservices.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/postprocessingstage/renderstamppostprocessingstage.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/shadergroup/shaderparam.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/shadergroup/shaderquery.cpp + @${REINPLACE_CMD} -e 's/using OSL::TypeDesc/&, OSL::TypeColor, OSL::TypeFloat, OSL::TypeInt, OSL::TypeString, OSL::TypeVector/' \ + ${WRKSRC}/src/appleseed/renderer/kernel/shading/closures.cpp + @${REINPLACE_CMD} -e '/OSL::ShadingSystem(/s,texturesystem,&->get(),' \ + ${WRKSRC}/src/appleseed/renderer/kernel/shading/oslshadingsystem.cpp + @${REINPLACE_CMD} -e 's/filesystem::path/bf::path/' \ + ${WRKSRC}/src/appleseed/renderer/modeling/project/projectfilewriter.cpp .include PATCH_ARGS+= -l diff --git a/graphics/appleseed/files/patch-oiio-cxx-std-14 b/graphics/appleseed/files/patch-oiio-cxx-std-14 index e1459aef5764..2c54de738e37 100644 --- a/graphics/appleseed/files/patch-oiio-cxx-std-14 +++ b/graphics/appleseed/files/patch-oiio-cxx-std-14 @@ -1,20 +1,20 @@ --- src/appleseed.studio/CMakeLists.txt.orig +++ 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) ++set_target_properties (appleseed.studio PROPERTIES CXX_STANDARD 17) if (WIN32) set_target_properties (appleseed.studio PROPERTIES --- src/appleseed/CMakeLists.txt.orig +++ 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) ++set_target_properties (appleseed PROPERTIES CXX_STANDARD 17) if (USE_VISIBILITY_MAP) set_target_properties (appleseed PROPERTIES diff --git a/graphics/appleseed/files/patch-oiiotexturesystem b/graphics/appleseed/files/patch-oiiotexturesystem new file mode 100644 index 000000000000..f333cac5a371 --- /dev/null +++ b/graphics/appleseed/files/patch-oiiotexturesystem @@ -0,0 +1,123 @@ +--- src/appleseed/renderer/device/cpu/cpurenderdevice.cpp.orig ++++ src/appleseed/renderer/device/cpu/cpurenderdevice.cpp +@@ -69,12 +69,12 @@ + + RENDERER_LOG_DEBUG("creating oiio texture system..."); + m_texture_system = OIIOTextureSystemFactory::create(false); +- m_texture_system->attribute("automip", 0); +- m_texture_system->attribute("accept_untiled", 1); +- m_texture_system->attribute("accept_unmipped", 1); +- m_texture_system->attribute("gray_to_rgb", 1); +- m_texture_system->attribute("latlong_up", "y"); +- m_texture_system->attribute("flip_t", 1); ++ (*m_texture_system)->attribute("automip", 0); ++ (*m_texture_system)->attribute("accept_untiled", 1); ++ (*m_texture_system)->attribute("accept_unmipped", 1); ++ (*m_texture_system)->attribute("gray_to_rgb", 1); ++ (*m_texture_system)->attribute("latlong_up", "y"); ++ (*m_texture_system)->attribute("flip_t", 1); + + m_renderer_services = + new RendererServices( +@@ -116,7 +116,7 @@ + m_shading_system->release(); + delete m_renderer_services; + +- const string stats = m_texture_system->getstats(); ++ const string stats = (*m_texture_system)->getstats(); + const string modified_stats = prefix_all_lines(trim_both(stats), "oiio: "); + RENDERER_LOG_DEBUG("%s", modified_stats.c_str()); + +@@ -147,20 +147,20 @@ + pretty_size(texture_cache_size_bytes).c_str()); + const float texture_cache_size_mb = + static_cast(texture_cache_size_bytes) / (1024 * 1024); +- m_texture_system->attribute("max_memory_MB", texture_cache_size_mb); ++ (*m_texture_system)->attribute("max_memory_MB", texture_cache_size_mb); + + // Set OIIO search paths. + string prev_oiio_search_path; +- m_texture_system->getattribute("searchpath", prev_oiio_search_path); ++ (*m_texture_system)->getattribute("searchpath", prev_oiio_search_path); + if (prev_oiio_search_path != project_search_paths) + { + RENDERER_LOG_INFO("setting oiio search paths to %s", project_search_paths.c_str()); +- m_texture_system->invalidate_all(true); +- m_texture_system->attribute("searchpath", project_search_paths); ++ (*m_texture_system)->invalidate_all(true); ++ (*m_texture_system)->attribute("searchpath", project_search_paths); + } + + // Also use the project search paths to look for OpenImageIO plugins. +- m_texture_system->attribute("plugin_searchpath", project_search_paths); ++ (*m_texture_system)->attribute("plugin_searchpath", project_search_paths); + + // Initialize OSL. + m_renderer_services->initialize(m_texture_store); +--- src/appleseed/renderer/kernel/texturing/oiiotexturesystem.cpp.orig ++++ src/appleseed/renderer/kernel/texturing/oiiotexturesystem.cpp +@@ -32,15 +32,18 @@ + namespace renderer + { + ++OIIOTextureSystem::OIIOTextureSystem(const bool shared) ++ : ts(OIIO::TextureSystem::create(shared)) {} ++ + void OIIOTextureSystem::release() + { +- OIIO::TextureSystem::destroy( +- reinterpret_cast(this)); ++ OIIO::TextureSystem::destroy(ts); ++ delete this; + } + + OIIOTextureSystem* OIIOTextureSystemFactory::create(const bool shared) + { +- return reinterpret_cast(OIIO::TextureSystem::create(shared)); ++ return new OIIOTextureSystem(shared); + } + + } // namespace renderer +--- src/appleseed/renderer/kernel/texturing/oiiotexturesystem.h.orig ++++ src/appleseed/renderer/kernel/texturing/oiiotexturesystem.h +@@ -37,14 +37,15 @@ + { + + class OIIOTextureSystem +- : public OIIO::TextureSystem + { + public: ++ OIIOTextureSystem(const bool shared); ++ auto operator->() const noexcept { return ts.get(); } ++ auto get() const noexcept { return ts.get(); } + void release(); + + private: +- // Needed by gcc 8. +- void operator delete(void*) {} ++ std::shared_ptr ts; + }; + + class OIIOTextureSystemFactory +--- src/appleseed/renderer/meta/tests/test_environmentedf.cpp.orig ++++ src/appleseed/renderer/meta/tests/test_environmentedf.cpp +@@ -195,7 +195,7 @@ TEST_SUITE(Renderer_Modeling_EnvironmentEDF) + , m_texture_system( + OIIOTextureSystemFactory::create(), + [](OIIOTextureSystem* object) { object->release(); }) +- , m_renderer_services(Base::m_project, *m_texture_system) ++ , m_renderer_services(Base::m_project, *m_texture_system->get()) + , m_shading_system( + OSLShadingSystemFactory::create(&m_renderer_services, m_texture_system.get()), + [](OSLShadingSystem* object) { object->release(); }) +--- src/appleseed/renderer/meta/tests/test_volume.cpp.orig ++++ src/appleseed/renderer/meta/tests/test_volume.cpp +@@ -96,7 +96,7 @@ TEST_SUITE(Renderer_Modeling_Volume) + , m_texture_system( + OIIOTextureSystemFactory::create(), + [](OIIOTextureSystem* object) { object->release(); }) +- , m_renderer_services(base.m_project, *m_texture_system) ++ , m_renderer_services(base.m_project, *m_texture_system->get()) + , m_shading_system( + OSLShadingSystemFactory::create(&m_renderer_services, m_texture_system.get()), + [](OSLShadingSystem* object) { object->release(); }) diff --git a/graphics/appleseed/files/patch-src_appleseed_renderer_kernel_rendering_final_texturecontrolledpixelrenderer.cpp b/graphics/appleseed/files/patch-src_appleseed_renderer_kernel_rendering_final_texturecontrolledpixelrenderer.cpp index 5f36bf4e1e28..16e40cfc654e 100644 --- a/graphics/appleseed/files/patch-src_appleseed_renderer_kernel_rendering_final_texturecontrolledpixelrenderer.cpp +++ b/graphics/appleseed/files/patch-src_appleseed_renderer_kernel_rendering_final_texturecontrolledpixelrenderer.cpp @@ -1,10 +1,19 @@ --- src/appleseed/renderer/kernel/rendering/final/texturecontrolledpixelrenderer.cpp.orig 2019-08-31 15:49:01 UTC +++ src/appleseed/renderer/kernel/rendering/final/texturecontrolledpixelrenderer.cpp @@ -61,6 +61,7 @@ // OpenImageIO headers. #include "foundation/platform/_beginoiioheaders.h" #include "OpenImageIO/imagebufalgo.h" +#include "OpenImageIO/imagecache.h" #include "OpenImageIO/typedesc.h" #include "foundation/platform/_endoiioheaders.h" +@@ -321,7 +322,7 @@ bool TextureControlledPixelRendererFactory::load_textu + { + // Create a new dedicated ImageCache instead of using the global ImageCache. + // This is to prevent errors during ImageBuf access if the file behind tex_path was overwritten on disk. +- ImageCache* image_cache = ImageCache::create(); ++ auto image_cache = ImageCache::create(); + std::unique_ptr texture(new ImageBuf(texture_path, 0, 0, image_cache)); + + // Force the read to immediately do the entire disk I/O for the file.