<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>