<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/df7b8d1e5f604292d9d09dafdcd2ea022fa3c351">https://github.com/macports/macports-ports/commit/df7b8d1e5f604292d9d09dafdcd2ea022fa3c351</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new df7b8d1e5f6 blender: add support for Universal Scene Description (USD)
</span>df7b8d1e5f6 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit df7b8d1e5f604292d9d09dafdcd2ea022fa3c351
</span>Author: Jason Liu <jasonliu--@users.noreply.github.com>
AuthorDate: Sat Dec 5 23:16:32 2020 -0500

<span style='display:block; white-space:pre;color:#404040;'>    blender: add support for Universal Scene Description (USD)
</span>---
 graphics/blender/Portfile | 69 ++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 62 insertions(+), 7 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/blender/Portfile b/graphics/blender/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e96b8f26404..fc71541a670 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/blender/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/blender/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,6 +3,7 @@
</span> PortSystem          1.0
 PortGroup           cmake 1.1
 PortGroup           xcodeversion 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           active_variants 1.1
</span> 
 name                blender
 version             2.83.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,6 +61,7 @@ set py_ver_nodot    [string map {. {}} ${py_ver}]
</span> depends_lib-append  port:python${py_ver_nodot} \
                     port:openal-soft \
                     port:alembic \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:usd \
</span>                     port:opensubdiv \
                     port:jack \
                     port:libsndfile \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -84,7 +86,6 @@ depends_lib-append  port:python${py_ver_nodot} \
</span>                     port:tbb \
                     port:libomp \
                     port:glew \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:eigen3 \
</span>                     port:lzo2 \
                     port:gflags
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -122,11 +123,16 @@ post-patch {
</span>     # add_definitions() in the file 'extern/ceres/CMakeLists.txt', it's
     # possible that Blender's own libmv library requires a Ceres Solver
     # that has been compiled using a very specific set of options.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    fs-traverse f ${worksrcpath}/extern/ceres {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[file isfile $f]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            reinplace -q -E {s|(#include )"(Eigen/.*)"|\1<\2>|} $f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The eigen3 port was recently updated to version 3.3.8, which is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# incompatible with the version of Ceres Solver that is included with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Blender 2.83. Temporarily disable using the eigen3 port until the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Blender port catches up to using a compatible combination of Ceres
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Solver and eigen3.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   fs-traverse f ${worksrcpath}/extern/ceres {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#       if {[file isfile $f]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#           reinplace -q -E {s|(#include )"(Eigen/.*)"|\1<\2>|} $f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   }
</span> 
     # Use dynamic linking instead of static linking
     foreach f [list \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -146,6 +152,51 @@ post-patch {
</span>     reinplace -E {s|(include )"(openjpeg.h)"|\1<openjpeg-2.3/\2>|} \
         ${worksrcpath}/source/blender/imbuf/intern/jp2.c
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Make it so that CMake is able to find the MacPorts USD library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![catch {set result [active_variants usd monolithic]}] && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        !$result} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # When Blender is configured to build USD as an internal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # dependency, Blender sets USD's compile options so that it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # builds as a single monolithic library. However, the default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # variant of the MacPorts USD port builds the USD libraries as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # modular individual libraries, so in that case we make it so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # that Blender is able to see the individual USD modules.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -E {s/(usd_m usd_ms)/usd \1/} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/build_files/cmake/Modules/FindUSD.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "/blender_add_lib/i\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+list(APPEND USD_LIBRARIES\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\\  gf plug sdf tf vt\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\\  usdGeom usdLux usdShade usdUtils\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+)\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/source/blender/io/usd/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach f [list \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${worksrcpath}/source/blender/io/usd/CMakeLists.txt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${worksrcpath}/tests/gtests/usd/CMakeLists.txt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace {/add_definitions.*DPXR_STATIC/s/^/#/g} $f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![catch {set result [active_variants embree static]}] && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        !$result} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Remove these items from the list of Embree components that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Blender's FindEmbree.cmake script will try to find. The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # default variant of the MacPorts Embree port does not generate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # individual libraries with these names, because Embree's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # default compile options build it as a dynamic library. The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # individual libraries only get generated when building Embree
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # as a static library.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach re [list \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            {/^[[:space:]]*embree_(avx|sse4)2?[[:space:]]*$/d} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            {/^[[:space:]]*lexers|math|simd|sys|tasking[[:space:]]*$/d} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace -E $re \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${worksrcpath}/build_files/cmake/Modules/FindEmbree.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # We already patch 'llvm-config' to be 'llvm-config-mp' using our
     # patchfiles. Here we are just adding a version number on the end.
     foreach re [list \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -241,9 +292,13 @@ configure.args-append   -DWITH_SDL_DYNLOAD=ON
</span> 
 # Tell Blender to use these "system" (in our case, MacPorts) libraries
 configure.args-append   -DWITH_SYSTEM_GLEW=ON \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_SYSTEM_EIGEN3=ON \
</span>                         -DWITH_SYSTEM_LZO=ON \
                         -DWITH_SYSTEM_GFLAGS=ON
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Temporarily disable using MacPorts eigen3 port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                       -DWITH_SYSTEM_EIGEN3=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Build Cycles with Embree support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   -DWITH_CYCLES_EMBREE=ON
</span> 
 post-destroot {
     # Make sure that an addons_contrib folder makes it into the final
</pre><pre style='margin:0'>

</pre>