Commit: 15abb48a043f93e53ce90288c6a57730a0f9fef1
Author: Bastien Montagne
Date:   Fri Jan 29 11:05:37 2016 +0100
Branches: master
https://developer.blender.org/rB15abb48a043f93e53ce90288c6a57730a0f9fef1

Install_deps.sh: attempt to add OpenVDB, not working for now.

OpenVDB is like a 30-years old lib when it comes to building it - not even a 
configure.sh script!
This makes it impossible to auto-build (install_deps is not a new CMake!).

So for now, just storing some template code for it, and expected version/deps 
data
in --show-deps option.

===================================================================

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 002d2a9..d12ce22 100755
--- a/build_files/build_environment/install_deps.sh
+++ b/build_files/build_environment/install_deps.sh
@@ -26,12 +26,15 @@ ARGS=$( \
 getopt \
 -o s:i:t:h \
 --long 
source:,install:,tmp:,info:,threads:,help,show-deps,no-sudo,no-confirm,with-all,with-opencollada,\
-ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,\
-force-all,force-python,force-numpy,force-boost,force-ocio,force-openexr,force-oiio,force-llvm,force-osl,force-osd,\
+ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,\
+force-all,force-python,force-numpy,force-boost,\
+force-ocio,force-openexr,force-oiio,force-llvm,force-osl,force-osd,force-openvdb,\
 force-ffmpeg,force-opencollada,\
-build-all,build-python,build-numpy,build-boost,build-ocio,build-openexr,build-oiio,build-llvm,build-osl,build-osd,\
+build-all,build-python,build-numpy,build-boost,\
+build-ocio,build-openexr,build-oiio,build-llvm,build-osl,build-osd,build-openvdb,\
 build-ffmpeg,build-opencollada,\
-skip-python,skip-numpy,skip-boost,skip-ocio,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-osd,\
+skip-python,skip-numpy,skip-boost,\
+skip-ocio,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-osd,skip-openvdb,\
 skip-ffmpeg,skip-opencollada \
 -- "$@" \
 )
@@ -121,6 +124,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
     --ver-osd=<ver>
         Force version of OSD library.
 
+    --ver-openvdb=<ver>
+        Force version of OpenVDB library.
+
     Note about the --ver-foo options:
         It may not always work as expected (some libs are actually checked out 
from a git rev...), yet it might help
         to fix some build issues (like LLVM mismatch with the version used by 
your graphic system).
@@ -155,6 +161,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
     --build-osd
         Force the build of OpenSubdiv.
 
+    --build-openvdb
+        Force the build of OpenVDB.
+
     --build-opencollada
         Force the build of OpenCOLLADA.
 
@@ -201,6 +210,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
     --force-osd
         Force the rebuild of OpenSubdiv.
 
+    --force-openvdb
+        Force the rebuild of OpenVDB.
+
     --force-opencollada
         Force the rebuild of OpenCOLLADA.
 
@@ -240,6 +252,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
     --skip-osd
         Unconditionally skip OpenSubdiv installation/building.
 
+    --skip-openvdb
+        Unconditionally skip OpenVDB installation/building.
+
     --skip-opencollada
         Unconditionally skip OpenCOLLADA installation/building.
 
@@ -315,6 +330,15 @@ OSD_FORCE_BUILD=false
 OSD_FORCE_REBUILD=false
 OSD_SKIP=false
 
+# OpenVDB needs to be compiled for now
+OPENVDB_BLOSC_VERSION="1.7.0"
+
+OPENVDB_VERSION="3.1.0"
+OPENVDB_VERSION_MIN=$OPENVDB_VERSION
+OPENVDB_FORCE_BUILD=false
+OPENVDB_FORCE_REBUILD=false
+OPENVDB_SKIP=false
+
 # Version??
 OPENCOLLADA_VERSION="1.3"
 OPENCOLLADA_FORCE_BUILD=true  # no package!
@@ -470,6 +494,11 @@ while true; do
       OSD_VERSION_MIN=$OSD_VERSION
       shift; shift; continue
     ;;
+    --ver-openvdb)
+      OPENVDB_VERSION="$2"
+      OPENVDB_VERSION_MIN=$OPENVDB_VERSION
+      shift; shift; continue
+    ;;
     --build-all)
       PYTHON_FORCE_BUILD=true
       NUMPY_FORCE_BUILD=true
@@ -480,6 +509,7 @@ while true; do
       LLVM_FORCE_BUILD=true
       OSL_FORCE_BUILD=true
       OSD_FORCE_BUILD=true
+      OPENVDB_FORCE_BUILD=true
       OPENCOLLADA_FORCE_BUILD=true
       FFMPEG_FORCE_BUILD=true
       shift; continue
@@ -515,6 +545,9 @@ while true; do
     --build-osd)
       OSD_FORCE_BUILD=true; shift; continue
     ;;
+    --build-openvdb)
+      OPENVDB_FORCE_BUILD=true; shift; continue
+    ;;
     --build-opencollada)
       OPENCOLLADA_FORCE_BUILD=true; shift; continue
     ;;
@@ -531,6 +564,7 @@ while true; do
       LLVM_FORCE_REBUILD=true
       OSL_FORCE_REBUILD=true
       OSD_FORCE_REBUILD=true
+      OPENVDB_FORCE_REBUILD=true
       OPENCOLLADA_FORCE_REBUILD=true
       FFMPEG_FORCE_REBUILD=true
       shift; continue
@@ -564,6 +598,9 @@ while true; do
     --force-osd)
       OSD_FORCE_REBUILD=true; shift; continue
     ;;
+    --force-openvdb)
+      OPENVDB_FORCE_REBUILD=true; shift; continue
+    ;;
     --force-opencollada)
       OPENCOLLADA_FORCE_REBUILD=true; shift; continue
     ;;
@@ -597,6 +634,9 @@ while true; do
     --skip-osd)
       OSD_SKIP=true; shift; continue
     ;;
+    --skip-openvdb)
+      OPENVDB_SKIP=true; shift; continue
+    ;;
     --skip-opencollada)
       OPENCOLLADA_SKIP=true; shift; continue
     ;;
@@ -667,6 +707,13 @@ OSD_SOURCE_REPO=( 
"https://github.com/PixarAnimationStudios/OpenSubdiv.git"; )
 OSD_SOURCE_REPO_UID="404659fffa659da075d1c9416e4fc939139a84ee"
 OSD_SOURCE_REPO_BRANCH="dev"
 
+OPENVDB_USE_REPO=false
+OPENVDB_BLOSC_SOURCE=( 
"https://github.com/Blosc/c-blosc/archive/v${OPENVDB_BLOSC_VERSION}.tar.gz"; )
+OPENVDB_SOURCE=( 
"https://github.com/dreamworksanimation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz";
 )
+#~ OPENVDB_SOURCE_REPO=( "https:///dreamworksanimation/openvdb.git"; )
+#~ OPENVDB_SOURCE_REPO_UID="404659fffa659da075d1c9416e4fc939139a84ee"
+#~ OPENVDB_SOURCE_REPO_BRANCH="dev"
+
 OPENCOLLADA_SOURCE=( "https://github.com/KhronosGroup/OpenCOLLADA.git"; )
 OPENCOLLADA_REPO_UID="3335ac164e68b2512a40914b14c74db260e6ff7d"
 OPENCOLLADA_REPO_BRANCH="master"
@@ -706,6 +753,7 @@ You may also want to build them yourself (optional ones are 
[between brackets]):
     * [LLVM $LLVM_VERSION_MIN (with clang)] (from $LLVM_SOURCE, and 
$LLVM_CLANG_SOURCE).
     * [OpenShadingLanguage $OSL_VERSION_MIN] (from $OSL_SOURCE_REPO, branch 
$OSL_SOURCE_REPO_BRANCH, commit $OSL_SOURCE_REPO_UID).
     * [OpenSubDiv $OSD_VERSION_MIN] (from $OSD_SOURCE_REPO, branch 
$OSD_SOURCE_REPO_BRANCH, commit $OSD_SOURCE_REPO_UID).
+    * [OpenVDB $OPENVDB_VERSION_MIN] (from $OPENVDB_SOURCE), [Blosc 
$OPENVDB_BLOSC_VERSION] (from $OPENVDB_BLOSC_SOURCE).
     * [OpenCollada] (from $OPENCOLLADA_SOURCE, branch 
$OPENCOLLADA_REPO_BRANCH, commit $OPENCOLLADA_REPO_UID).\""
 
 if [ "$DO_SHOW_DEPS" = true ]; then
@@ -1832,6 +1880,193 @@ compile_OSD() {
   run_ldconfig "osd"
 }
 
+#### Build Blosc ####
+_init_blosc() {
+  _src=$SRC/c-blosc-$OPENVDB_BLOSC_VERSION
+  _git=false
+  _inst=$INST/blosc-$OPENVDB_BLOSC_VERSION
+  _inst_shortcut=$INST/blosc
+}
+
+clean_BLOSC() {
+  _init_blosc
+  _clean
+}
+
+compile_BLOSC() {
+  # To be changed each time we make edits that would modify the compiled 
result!
+  blosc_magic=0
+  _init_blosc
+
+  # Clean install if needed!
+  magic_compile_check blosc-$OPENVDB_BLOSC_VERSION $blosc_magic
+  if [ $? -eq 1 -o "$OPENVDB_FORCE_REBUILD" = true ]; then
+    clean_BLOSC
+    rm -rf $_inst
+  fi
+
+  if [ ! -d $_inst ]; then
+    INFO "Building Blosc-$OPENVDB_BLOSC_VERSION"
+
+    # Rebuild dependecies as well!
+    OPENVDB_FORCE_BUILD=true
+    OPENVDB_FORCE_REBUILD=true
+
+    prepare_opt
+
+    if [ ! -d $_src ]; then
+      INFO "Downloading Blosc-$OPENVDB_BLOSC_VERSION"
+      mkdir -p $SRC
+      download OPENVDB_BLOSC_SOURCE[@] $_src.tar.gz
+
+      INFO "Unpacking Blosc-$OPENVDB_BLOSC_VERSION"
+      tar -C $SRC -xf $_src.tar.gz
+    fi
+
+    cd $_src
+    # Always refresh the whole build!
+    if [ -d build ]; then
+      rm -rf build
+    fi
+    mkdir build
+    cd build
+
+    cmake_d="-D CMAKE_BUILD_TYPE=Release"
+    cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
+    cmake_d="$cmake_d -D BUILD_STATIC=OFF"
+    cmake_d="$cmake_d -D BUILD_TESTS=OFF"
+    cmake_d="$cmake_d -D BUILD_BENCHMARKS=OFF"
+    INFO "$cmake_d"
+
+    cmake $cmake_d ..
+
+    make -j$THREADS && make install
+
+    make clean
+
+    if [ -d $_inst ]; then
+      _create_inst_shortcut
+    else
+      ERROR "Blosc-$OPENVDB_BLOSC_VERSION failed to compile, exiting"
+      exit 1
+    fi
+    cd $CWD
+    INFO "Done compiling Blosc-$OPENVDB_BLOSC_VERSION!"
+  else
+    INFO "Own Blosc-$OPENVDB_BLOSC_VERSION is up to date, nothing to do!"
+    INFO "If you want to force rebuild of this lib (and openexr), use the 
--force-openvdb option."
+  fi
+
+  magic_compile_set blosc-$OPENVDB_BLOSC_VERSION $blosc_magic
+
+  run_ldconfig "blosc"
+}
+
+#### Build OpenVDB ####
+_init_openvdb() {
+  _src=$SRC/openvdb-$OPENVDB_VERSION
+  _git=false
+  _inst=$INST/openvdb-$OPENVDB_VERSION
+  _inst_shortcut=$INST/openvdb
+}
+
+clean_OPENVDB() {
+  _init_openvdb
+  _clean
+}
+
+compile_OPENVDB() {
+  compile_BLOSC
+  PRINT ""
+
+  # To be changed each time we make edits that would modify the compiled 
result!
+  openvdb_magic=0
+  _init_openvdb
+
+  # Clean install if needed!
+  magic_compile_check openvdb-$OPENVDB_VERSION $openvdb_magic
+  if [ $? -eq 1 -o "$OPENVDB_FORCE_REBUILD" = true ]; then
+    clean_OPENVDB
+  fi
+
+  if [ ! -d $_inst ]; then
+    INFO "Building OpenVDB-$OPENVDB_VERSION"
+
+    prepare_opt
+
+    if [ ! -d $_src -o true ]; then
+      mkdir -p $SRC
+      download OPENVDB_SOURCE[@] "$_src.tar.gz"
+
+      INFO "Unpacking OpenVDB-$OPENVDB_VERSION"
+      #~ tar -C $SRC --transform 
"s,(.*/?)OpenShadingLanguage-[^/]*(.*),\1OpenShadingLanguage-$OPENVDB_VERSION\2,x"
 \
+          #~ -xf $_src.tar.gz
+      tar -C $SRC -xf $_src.tar.gz
+    fi
+
+    cd $_src
+
+    #~ if [ "$OPENVDB_USE_REPO" = true ]; then
+      #~ git remote set-url origin ${OPENVDB_SOURCE_REPO[0]}
+      #~ # XXX For now, always update from latest repo...
+      #~ git pull --no-edit -X theirs origin $OPENVDB_SOURCE_REPO_BRANCH
+      #~ # Stick to same rev as windows' libs...
+      #~ git checkout $OPENVDB_SOURCE_REPO_UID
+      #~ git reset --hard
+    #~ fi
+
+    cd openvdb  # Grrrrrr...
+
+    # Always refresh the whole build!
+    if [ -d build ]; then
+      rm -rf build
+    fi
+    mkdir build
+    cd build
+
+    make_d="DESTDIR=$_inst"
+
+    if [ -d $INST/boost ]; then
+      make_d="$make_d -D BOOST_ROOT=$INST/boost -D Boost_NO_SYSTEM_PATHS=ON"
+    fi
+
+    #~ if [ "$_with_built_openexr" = true ]; then
+      #~ cmake_d="$cmake_d -D ILMBASE_HOME=$INST/openexr"
+      #~ cmake_d="$cmake_d -D OPENEXR_HOME=$INST/openexr"
+      #~ INFO "ILMBASE_HOME=$INST/openexr"
+    #~ fi
+
+    #~ cmake_d="-D CMAKE_BUILD_TYPE=Release"
+    #~ cmake_d="$cmake_d -D CMAKE_INST

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to