[Bf-blender-cvs] [b099e9924e3] master: install_deps: Add building of MaterialX.
Bastien Montagne
noreply at git.blender.org
Thu Jan 5 17:08:49 CET 2023
Commit: b099e9924e3232e5172bb7bbcf619b142e7a3f96
Author: Bastien Montagne
Date: Thu Jan 5 17:08:12 2023 +0100
Branches: master
https://developer.blender.org/rBb099e9924e3232e5172bb7bbcf619b142e7a3f96
install_deps: Add building of MaterialX.
Ref. T99618
===================================================================
M build_files/build_environment/install_deps.sh
===================================================================
diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh
index 8ed4b5b7c51..a0d0414fbb0 100755
--- a/build_files/build_environment/install_deps.sh
+++ b/build_files/build_environment/install_deps.sh
@@ -39,15 +39,15 @@ with-all,with-opencollada,with-jack,with-pulseaudio,with-embree,with-oidn,with-n
ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,ver-xr-openxr:,ver-level-zero:\
force-all,force-python,force-boost,force-tbb,\
force-ocio,force-imath,force-openexr,force-oiio,force-llvm,force-osl,force-osd,force-openvdb,\
-force-ffmpeg,force-opencollada,force-alembic,force-embree,force-oidn,force-usd,\
+force-ffmpeg,force-opencollada,force-alembic,force-embree,force-oidn,force-materialx,force-usd,\
force-xr-openxr,force-level-zero,force-openpgl,\
build-all,build-python,build-boost,build-tbb,\
build-ocio,build-imath,build-openexr,build-oiio,build-llvm,build-osl,build-osd,build-openvdb,\
-build-ffmpeg,build-opencollada,build-alembic,build-embree,build-oidn,build-usd,\
+build-ffmpeg,build-opencollada,build-alembic,build-embree,build-oidn,build-materialx,build-usd,\
build-xr-openxr,build-level-zero,build-openpgl,\
skip-python,skip-boost,skip-tbb,\
skip-ocio,skip-imath,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-osd,skip-openvdb,\
-skip-ffmpeg,skip-opencollada,skip-alembic,skip-embree,skip-oidn,skip-usd,\
+skip-ffmpeg,skip-opencollada,skip-alembic,skip-embree,skip-oidn,skip-materialx,skip-usd,\
skip-xr-openxr,skip-level-zero,skip-openpgl \
-- "$@" \
)
@@ -223,6 +223,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
--build-ffmpeg
Force the build of FFMpeg.
+ --build-materialx
+ Force the build of MaterialX.
+
--build-usd
Force the build of Universal Scene Description.
@@ -296,6 +299,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
--force-ffmpeg
Force the rebuild of FFMpeg.
+ --force-materialx
+ Force the rebuild of MaterialX.
+
--force-usd
Force the rebuild of Universal Scene Description.
@@ -362,6 +368,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
--skip-ffmpeg
Unconditionally skip FFMpeg installation/building.
+ --skip-materialx
+ Unconditionally skip MaterialX installation/building.
+
--skip-usd
Unconditionally skip Universal Scene Description installation/building.
@@ -563,6 +572,14 @@ ALEMBIC_FORCE_BUILD=false
ALEMBIC_FORCE_REBUILD=false
ALEMBIC_SKIP=false
+MATERIALX_VERSION="1.38.6"
+MATERIALX_VERSION_SHORT="1.38"
+MATERIALX_VERSION_MIN="1.38"
+MATERIALX_VERSION_MEX="1.40"
+MATERIALX_FORCE_BUILD=false
+MATERIALX_FORCE_REBUILD=false
+MATERIALX_SKIP=false
+
USD_VERSION="22.11"
USD_VERSION_SHORT="22.11"
USD_VERSION_MIN="20.05"
@@ -899,6 +916,9 @@ while true; do
--build-alembic)
ALEMBIC_FORCE_BUILD=true; shift; continue
;;
+ --build-materialx)
+ MATERIALX_FORCE_BUILD=true; shift; continue
+ ;;
--build-usd)
USD_FORCE_BUILD=true; shift; continue
;;
@@ -928,6 +948,7 @@ while true; do
OIDN_FORCE_REBUILD=true
FFMPEG_FORCE_REBUILD=true
ALEMBIC_FORCE_REBUILD=true
+ MATERIALX_FORCE_REBUILD=true
USD_FORCE_REBUILD=true
XR_OPENXR_FORCE_REBUILD=true
LEVEL_ZERO_FORCE_REBUILD=true
@@ -983,6 +1004,9 @@ while true; do
--force-alembic)
ALEMBIC_FORCE_REBUILD=true; shift; continue
;;
+ --force-materialx)
+ MATERIALX_FORCE_REBUILD=true; shift; continue
+ ;;
--force-usd)
USD_FORCE_REBUILD=true; shift; continue
;;
@@ -1046,6 +1070,9 @@ while true; do
--skip-usd)
USD_SKIP=true; shift; continue
;;
+ --skip-materialx)
+ MATERIALX_SKIP=true; shift; continue
+ ;;
--skip-xr-openxr)
XR_OPENXR_SKIP=true; shift; continue
;;
@@ -1170,6 +1197,8 @@ ALEMBIC_SOURCE=( "https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.
# ALEMBIC_SOURCE_REPO_UID="e6c90d4faa32c4550adeaaf3f556dad4b73a92bb"
# ALEMBIC_SOURCE_REPO_BRANCH="master"
+MATERIALX_SOURCE=( "https://github.com/AcademySoftwareFoundation/MaterialX/archive/refs/tags/v${MATERIALX_VERSION}.tar.gz" )
+
USD_SOURCE=( "https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz" )
OPENCOLLADA_USE_REPO=false
@@ -3184,6 +3213,103 @@ compile_ALEMBIC() {
run_ldconfig "alembic"
}
+#### Build materialX ####
+_init_materialx() {
+ _src=$SRC/MaterialX-$MATERIALX_VERSION
+ _git=false
+ _inst=$INST/materialx-$MATERIALX_VERSION_SHORT
+ _inst_shortcut=$INST/materialx
+}
+
+_update_deps_materialx() {
+ :
+}
+
+clean_MATERIALX() {
+ _init_materialx
+ if [ -d $_inst ]; then
+ # Force rebuilding the dependencies if needed.
+ _update_deps_materialx false true
+ fi
+ _clean
+}
+
+compile_MATERIALX() {
+ if [ "$NO_BUILD" = true ]; then
+ WARNING "--no-build enabled, MaterialX will not be compiled!"
+ return
+ fi
+
+ # To be changed each time we make edits that would modify the compiled result!
+ materialx_magic=1
+ _init_materialx
+
+ # Force having own builds for the dependencies.
+ _update_deps_materialx true false
+
+ # Clean install if needed!
+ magic_compile_check materialx-$MATERIALX_VERSION $materialx_magic
+ if [ $? -eq 1 -o "$MATERIALX_FORCE_REBUILD" = true ]; then
+ clean_MATERIALX
+ fi
+
+ if [ ! -d $_inst ]; then
+ INFO "Building MaterialX-$MATERIALX_VERSION"
+
+ # Force rebuilding the dependencies.
+ _update_deps_materialx true true
+
+ prepare_inst
+
+ if [ ! -d $_src ]; then
+ mkdir -p $SRC
+ download MATERIALX_SOURCE[@] "$_src.tar.gz"
+
+ INFO "Unpacking MaterialX-$MATERIALX_VERSION"
+ tar -C $SRC -xf $_src.tar.gz
+
+ patch -d $_src -p1 < $SCRIPT_DIR/patches/materialx.diff
+ fi
+
+ cd $_src
+
+ cmake_d="-D CMAKE_INSTALL_PREFIX=$_inst"
+
+ cmake_d="$cmake_d -DMATERIALX_BUILD_SHARED_LIBS=ON"
+ cmake_d="$cmake_d -DCMAKE_DEBUG_POSTFIX=_d"
+
+ cmake_d="$cmake_d -DMATERIALX_BUILD_RENDER=OFF"
+
+ cmake_d="$cmake_d -DMATERIALX_BUILD_PYTHON=ON"
+ cmake_d="$cmake_d -DMATERIALX_INSTALL_PYTHON=OFF"
+ if [ "$_with_built_python" = true ]; then
+ cmake_d="$cmake_d -D Python_EXECUTABLE=$_with_built_python_execpath"
+ fi
+
+ cmake $cmake_d ./
+ make -j$THREADS install
+ make clean
+
+ if [ ! -d $_inst ]; then
+ ERROR "MaterialX-$MATERIALX_VERSION failed to compile, exiting"
+ exit 1
+ fi
+
+ magic_compile_set materialx-$MATERIALX_VERSION $materialx_magic
+
+ cd $CWD
+ INFO "Done compiling MaterialX-$MATERIALX_VERSION!"
+ else
+ INFO "Own MaterialX-$MATERIALX_VERSION is up to date, nothing to do!"
+ INFO "If you want to force rebuild of this lib, use the --force-materialx option."
+ fi
+
+ if [ -d $_inst ]; then
+ _create_inst_shortcut
+ fi
+ run_ldconfig "materialx"
+}
+
#### Build USD ####
_init_usd() {
_src=$SRC/USD-$USD_VERSION
@@ -4679,6 +4805,16 @@ install_DEB() {
compile_ALEMBIC
fi
+ PRINT ""
+ if [ "$MATERIALX_SKIP" = true ]; then
+ WARNING "Skipping MaterialX installation, as requested..."
+ elif [ "$MATERIALX_FORCE_BUILD" = true ]; then
+ INFO "Forced MaterialX building, as requested..."
+ compile_MATERIALX
+ else
+ compile_MATERIALX
+ fi
+
PRINT ""
if [ "$USD_SKIP" = true ]; then
WARNING "Skipping USD installation, as requested..."
@@ -5408,6 +5544,16 @@ install_RPM() {
compile_ALEMBIC
fi
+ PRINT ""
+ if [ "$MATERIALX_SKIP" = true ]; then
+ WARNING "Skipping MaterialX installation, as requested..."
+ elif [ "$MATERIALX_FORCE_BUILD" = true ]; then
+ INFO "Forced MaterialX building, as requested..."
+ compile_MATERIALX
+ else
+ compile_MATERIALX
+ fi
+
PRINT ""
if [ "$USD_SKIP" = true ]; then
WARNING "Skipping USD installation, as requested..."
@@ -6013,6 +6159,16 @@ install_ARCH() {
compile_ALEMBIC
fi
+ PRINT ""
+ if [ "$MATERIALX_SKIP" = true ]; then
+ WARNING "Skipping MaterialX installation, as requested..."
+ elif [ "$MATERIALX_FORCE_BUILD" = true ]; then
+ INFO "Forced MaterialX building, as requested..."
+ compile_MATERIALX
+ else
+ compile_MATERIALX
+ fi
+
PRINT ""
if [ "$USD_SKIP" = true ]; then
WARNING "Skipping USD installation, as requested..."
@@ -6304,6 +6460,27 @@ install_OTHER() {
fi
+ PRINT ""
+ if [ "$MATERIALX_SKIP" = true ]; then
+ WARNING "Skipping MaterialX installation, as requested..."
+ elif [ "$MATERIALX_FORCE_BUILD" = true ]; then
+ INFO "Forced MaterialX building, as requested..."
+ compile_MATERIALX
+ else
+ compile_MATERIALX
+ fi
+
+ PRINT ""
+ if [ "$USD_SKIP" = true ]; then
+ WARNING "Skipping USD installation, as requested..."
+ elif [ "$USD_FORCE_BUILD" = true ]; then
+ INFO "Forced USD building, as requested..."
+ compile_USD
+ else
+ compile_USD
+ fi
+
+
if [ "$WITH_OPENCOLLADA" = true ]; then
PRINT ""
if [ "$OPENCOLLADA_SKIP" = true ]; then
@@ -6381,7 +6558,8 @@ print_info() {
_buildargs="-U *SNDFILE* -U PYTHON* -U *BOOST* -U *Boost* -U *TBB*"
_buildargs="$_buildargs -U *OPENCOLORIO* -U *OPENEXR* -U *OPENIMAGEIO* -U *LLVM* -U *CLANG* -U *CYCLES*"
- _buildargs="$_buildargs -U *OPENSUBDIV* -U *OPENVDB* -U *BLOSC* -U *COLLADA* -U *FFMPEG* -U *ALEMBIC* -U *USD*"
+ _buildargs="$_buildargs -U *OPENSUBDIV* -U *OPENVDB* -U *BLOSC* -U *COLLADA* -U *FFMPEG* -U *ALEMBIC*"
+ _buildargs="$_buildargs -U *MATERIALX* -U *USD*"
_buildargs="$_buildargs -U *EMBREE* -U *OPENIMAGEDENOISE* -U *OPENXR* -U *OPENPGL*"
_1="-D WITH_CODEC_SNDFILE=ON"
@@ -6568,6 +6746,17 @@ print_info() {
fi
fi
+ if [ "$MATERIALX_SKIP" = false ]; then
+ _1="-D WITH_MATERIALX=ON"
+ PRINT " $_1"
+ _buildargs="$_buildargs $_1"
+ if [ -d $INST/materialx ]; then
+ _1="-D MaterialX_DIR=$INST/materialx/lib/cmake/MaterialX"
+ PRINT " $_1"
+ _buildargs="$_buildargs $_1"
+ fi
+ fi
+
if [ "$USD_SKIP" = false ]; then
_1="-D WITH_USD=ON"
PRINT " $_1"
More information about the Bf-blender-cvs
mailing list