forked from bartvdbraak/blender
A bunch of fixes to install_deps.sh (most notably, a bug in oiio's embeded version of tbb, buggy oiio archive handling, moved ilmbase files into openexr dir (as expected by Blender), ...).
Tested with debian testing/i386 this time.
This commit is contained in:
parent
16d35ec94f
commit
66c86d8702
@ -23,7 +23,7 @@
|
|||||||
ARGS=$( \
|
ARGS=$( \
|
||||||
getopt \
|
getopt \
|
||||||
-o s:i:t:h \
|
-o s:i:t:h \
|
||||||
--long source:,install:,threads:,help,with-all,with-osl,with-opencollada,all-static,force-all,\
|
--long source:,install:,tmp:,threads:,help,with-all,with-osl,with-opencollada,all-static,force-all,\
|
||||||
force-python,force-numpy,force-boost,force-ocio,force-oiio,force-llvm,force-osl,force-opencollada,\
|
force-python,force-numpy,force-boost,force-ocio,force-oiio,force-llvm,force-osl,force-opencollada,\
|
||||||
force-ffmpeg,skip-python,skip-numpy,skip-boost,skip-ocio,skip-oiio,skip-llvm,skip-osl,skip-ffmpeg,\
|
force-ffmpeg,skip-python,skip-numpy,skip-boost,skip-ocio,skip-oiio,skip-llvm,skip-osl,skip-ffmpeg,\
|
||||||
skip-opencollada \
|
skip-opencollada \
|
||||||
@ -34,6 +34,7 @@ DISTRO=""
|
|||||||
RPM=""
|
RPM=""
|
||||||
SRC="$HOME/src/blender-deps"
|
SRC="$HOME/src/blender-deps"
|
||||||
INST="/opt/lib"
|
INST="/opt/lib"
|
||||||
|
TMP="/tmp"
|
||||||
CWD=$PWD
|
CWD=$PWD
|
||||||
|
|
||||||
# Do not install some optional, potentially conflicting libs by default...
|
# Do not install some optional, potentially conflicting libs by default...
|
||||||
@ -79,6 +80,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
|||||||
-i <path>, --install=<path>
|
-i <path>, --install=<path>
|
||||||
Use a specific path where to install built libraries (defaults to '\$INST').
|
Use a specific path where to install built libraries (defaults to '\$INST').
|
||||||
|
|
||||||
|
--tmp=<path>
|
||||||
|
Use a specific temp path (defaults to '\$TMP').
|
||||||
|
|
||||||
-t n, --threads=n
|
-t n, --threads=n
|
||||||
Use a specific number of threads when building the libraries (auto-detected as '\$THREADS').
|
Use a specific number of threads when building the libraries (auto-detected as '\$THREADS').
|
||||||
|
|
||||||
@ -203,7 +207,7 @@ OPENEXR_SKIP=false
|
|||||||
_with_built_openexr=false
|
_with_built_openexr=false
|
||||||
|
|
||||||
OIIO_VERSION="1.1.10"
|
OIIO_VERSION="1.1.10"
|
||||||
OIIO_SOURCE="https://github.com/OpenImageIO/oiio/tarball/Release-$OIIO_VERSION.tar.gz"
|
OIIO_SOURCE="https://github.com/OpenImageIO/oiio/archive/Release-$OIIO_VERSION.tar.gz"
|
||||||
OIIO_VERSION_MIN="1.1"
|
OIIO_VERSION_MIN="1.1"
|
||||||
OIIO_FORCE_REBUILD=false
|
OIIO_FORCE_REBUILD=false
|
||||||
OIIO_SKIP=false
|
OIIO_SKIP=false
|
||||||
@ -285,6 +289,9 @@ while true; do
|
|||||||
-i|--install)
|
-i|--install)
|
||||||
INST="$2"; shift; shift; continue
|
INST="$2"; shift; shift; continue
|
||||||
;;
|
;;
|
||||||
|
--tmp)
|
||||||
|
TMP="$2"; shift; shift; continue
|
||||||
|
;;
|
||||||
-t|--threads)
|
-t|--threads)
|
||||||
THREADS="$2"; shift; shift; continue
|
THREADS="$2"; shift; shift; continue
|
||||||
;;
|
;;
|
||||||
@ -779,22 +786,26 @@ compile_OCIO() {
|
|||||||
|
|
||||||
compile_ILMBASE() {
|
compile_ILMBASE() {
|
||||||
# To be changed each time we make edits that would modify the compiled result!
|
# To be changed each time we make edits that would modify the compiled result!
|
||||||
ilmbase_magic=4
|
ilmbase_magic=5
|
||||||
|
|
||||||
_src=$SRC/ILMBase-$ILMBASE_VERSION
|
_src=$SRC/ILMBase-$ILMBASE_VERSION
|
||||||
_inst=$INST/ilmbase-$ILMBASE_VERSION
|
_inst=$TMP/ilmbase-$ILMBASE_VERSION
|
||||||
|
|
||||||
# Clean install if needed!
|
# Clean install if needed!
|
||||||
magic_compile_check ilmbase-$ILMBASE_VERSION $ilmbase_magic
|
magic_compile_check ilmbase-$ILMBASE_VERSION $ilmbase_magic
|
||||||
|
|
||||||
if [ $? -eq 1 -o $OPENEXR_FORCE_REBUILD == true ]; then
|
if [ $? -eq 1 -o $OPENEXR_FORCE_REBUILD == true ]; then
|
||||||
rm -rf $_src
|
rm -rf $_src
|
||||||
|
rm -rf $_openexr_inst
|
||||||
rm -rf $_inst
|
rm -rf $_inst
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d $_inst ]; then
|
if [ ! -d $_openexr_inst ]; then
|
||||||
INFO "Building ILMBase-$ILMBASE_VERSION"
|
INFO "Building ILMBase-$ILMBASE_VERSION"
|
||||||
|
|
||||||
|
# Rebuild dependecies as well!
|
||||||
|
OPENEXR_FORCE_REBUILD=true
|
||||||
|
|
||||||
prepare_opt
|
prepare_opt
|
||||||
|
|
||||||
if [ ! -d $_src ]; then
|
if [ ! -d $_src ]; then
|
||||||
@ -851,8 +862,8 @@ EOF
|
|||||||
make clean
|
make clean
|
||||||
|
|
||||||
if [ -d $_inst ]; then
|
if [ -d $_inst ]; then
|
||||||
rm -f $INST/ilmbase
|
rm -f $TMP/ilmbase
|
||||||
ln -s ilmbase-$ILMBASE_VERSION $INST/ilmbase
|
ln -s ilmbase-$ILMBASE_VERSION $TMP/ilmbase
|
||||||
else
|
else
|
||||||
ERROR "ILMBase-$ILMBASE_VERSION failed to compile, exiting"
|
ERROR "ILMBase-$ILMBASE_VERSION failed to compile, exiting"
|
||||||
exit 1
|
exit 1
|
||||||
@ -869,13 +880,14 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
compile_OPENEXR() {
|
compile_OPENEXR() {
|
||||||
|
_openexr_inst=$INST/openexr-$OPENEXR_VERSION
|
||||||
compile_ILMBASE
|
compile_ILMBASE
|
||||||
|
|
||||||
# To be changed each time we make edits that would modify the compiled result!
|
# To be changed each time we make edits that would modify the compiled result!
|
||||||
openexr_magic=10
|
openexr_magic=10
|
||||||
|
|
||||||
_src=$SRC/OpenEXR-$OPENEXR_VERSION
|
_src=$SRC/OpenEXR-$OPENEXR_VERSION
|
||||||
_inst=$INST/openexr-$OPENEXR_VERSION
|
_inst=$_openexr_inst
|
||||||
|
|
||||||
# Clean install if needed!
|
# Clean install if needed!
|
||||||
magic_compile_check openexr-$OPENEXR_VERSION $openexr_magic
|
magic_compile_check openexr-$OPENEXR_VERSION $openexr_magic
|
||||||
@ -1027,7 +1039,7 @@ EOF
|
|||||||
cmake_d="-D CMAKE_BUILD_TYPE=Release"
|
cmake_d="-D CMAKE_BUILD_TYPE=Release"
|
||||||
cmake_d="$cmake_d -D CMAKE_PREFIX_PATH=$_inst"
|
cmake_d="$cmake_d -D CMAKE_PREFIX_PATH=$_inst"
|
||||||
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
|
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
|
||||||
cmake_d="$cmake_d -D ILMBASE_PACKAGE_PREFIX=$INST/ilmbase-$ILMBASE_VERSION"
|
cmake_d="$cmake_d -D ILMBASE_PACKAGE_PREFIX=$TMP/ilmbase"
|
||||||
|
|
||||||
if file /bin/cp | grep -q '32-bit'; then
|
if file /bin/cp | grep -q '32-bit'; then
|
||||||
cflags="-fPIC -m32 -march=i686"
|
cflags="-fPIC -m32 -march=i686"
|
||||||
@ -1047,6 +1059,8 @@ EOF
|
|||||||
if [ -d $_inst ]; then
|
if [ -d $_inst ]; then
|
||||||
rm -f $INST/openexr
|
rm -f $INST/openexr
|
||||||
ln -s openexr-$OPENEXR_VERSION $INST/openexr
|
ln -s openexr-$OPENEXR_VERSION $INST/openexr
|
||||||
|
# Copy ilmbase files here (blender expects same dir for ilmbase and openexr :/).
|
||||||
|
cp -Lrn $TMP/ilmbase/* $INST/openexr
|
||||||
else
|
else
|
||||||
ERROR "OpenEXR-$OPENEXR_VERSION failed to compile, exiting"
|
ERROR "OpenEXR-$OPENEXR_VERSION failed to compile, exiting"
|
||||||
exit 1
|
exit 1
|
||||||
@ -1066,7 +1080,7 @@ EOF
|
|||||||
|
|
||||||
compile_OIIO() {
|
compile_OIIO() {
|
||||||
# To be changed each time we make edits that would modify the compiled result!
|
# To be changed each time we make edits that would modify the compiled result!
|
||||||
oiio_magic=10
|
oiio_magic=11
|
||||||
|
|
||||||
_src=$SRC/OpenImageIO-$OIIO_VERSION
|
_src=$SRC/OpenImageIO-$OIIO_VERSION
|
||||||
_inst=$INST/oiio-$OIIO_VERSION
|
_inst=$INST/oiio-$OIIO_VERSION
|
||||||
@ -1091,7 +1105,7 @@ compile_OIIO() {
|
|||||||
wget -c $OIIO_SOURCE -O "$_src.tar.gz"
|
wget -c $OIIO_SOURCE -O "$_src.tar.gz"
|
||||||
|
|
||||||
INFO "Unpacking OpenImageIO-$OIIO_VERSION"
|
INFO "Unpacking OpenImageIO-$OIIO_VERSION"
|
||||||
tar -C $SRC --transform "s,(.*/?)OpenImageIO-oiio[^/]*(.*),\1OpenImageIO-$OIIO_VERSION\2,x" \
|
tar -C $SRC --transform "s,(.*/?)oiio-Release-[^/]*(.*),\1OpenImageIO-$OIIO_VERSION\2,x" \
|
||||||
-xf $_src.tar.gz
|
-xf $_src.tar.gz
|
||||||
|
|
||||||
cd $_src
|
cd $_src
|
||||||
@ -1224,6 +1238,18 @@ compile_OIIO() {
|
|||||||
/usr/local/lib
|
/usr/local/lib
|
||||||
/sw/lib
|
/sw/lib
|
||||||
/opt/local/lib)
|
/opt/local/lib)
|
||||||
|
--- a/src/libutil/tbb_misc.cpp
|
||||||
|
+++ b/src/libutil/tbb_misc.cpp
|
||||||
|
@@ -44,7 +44,8 @@
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
-#include "tbb/tbb_machine.h"
|
||||||
|
+//#include "tbb/tbb_machine.h"
|
||||||
|
+#include "tbb/tbb_assert_impl.h"
|
||||||
|
|
||||||
|
namespace tbb {
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cd $CWD
|
cd $CWD
|
||||||
@ -1244,7 +1270,7 @@ EOF
|
|||||||
cmake_d="$cmake_d -D BUILDSTATIC=OFF"
|
cmake_d="$cmake_d -D BUILDSTATIC=OFF"
|
||||||
|
|
||||||
if [ $_with_built_openexr == true ]; then
|
if [ $_with_built_openexr == true ]; then
|
||||||
cmake_d="$cmake_d -D ILMBASE_HOME=$INST/ilmbase"
|
cmake_d="$cmake_d -D ILMBASE_HOME=$INST/openexr"
|
||||||
cmake_d="$cmake_d -D ILMBASE_VERSION=$ILMBASE_VERSION"
|
cmake_d="$cmake_d -D ILMBASE_VERSION=$ILMBASE_VERSION"
|
||||||
cmake_d="$cmake_d -D OPENEXR_HOME=$INST/openexr"
|
cmake_d="$cmake_d -D OPENEXR_HOME=$INST/openexr"
|
||||||
fi
|
fi
|
||||||
@ -1450,8 +1476,8 @@ compile_OSL() {
|
|||||||
cmake_d="$cmake_d -D STOP_ON_WARNING=OFF"
|
cmake_d="$cmake_d -D STOP_ON_WARNING=OFF"
|
||||||
|
|
||||||
if [ $_with_built_openexr == true ]; then
|
if [ $_with_built_openexr == true ]; then
|
||||||
cmake_d="$cmake_d -D OPENEXR_HOME=$INST/openexr-$OPENEXR_VERSION"
|
#cmake_d="$cmake_d -D OPENEXR_HOME=$INST/openexr"
|
||||||
cmake_d="$cmake_d -D ILMBASE_HOME=$INST/ilmbase-$ILMBASE_VERSION"
|
cmake_d="$cmake_d -D ILMBASE_HOME=$INST/openexr"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d $INST/boost ]; then
|
if [ -d $INST/boost ]; then
|
||||||
@ -2705,6 +2731,12 @@ print_info_ffmpeglink() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print_info() {
|
print_info() {
|
||||||
|
INFO ""
|
||||||
|
INFO ""
|
||||||
|
INFO "****WARNING****"
|
||||||
|
INFO "If you are experiencing issues building Blender, _*TRY A FRESH, CLEAN BUILD FIRST*_!"
|
||||||
|
INFO "Often, changes in the libs built by this script, or in your distro package, cannot simply be handled simply, so..."
|
||||||
|
INFO ""
|
||||||
INFO ""
|
INFO ""
|
||||||
INFO "If you're using CMake add this to your configuration flags:"
|
INFO "If you're using CMake add this to your configuration flags:"
|
||||||
|
|
||||||
@ -2755,6 +2787,12 @@ print_info() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -d $INST/openexr ]; then
|
||||||
|
_1="-D OPENEXR_ROOT_DIR=$INST/openexr"
|
||||||
|
INFO " $_1"
|
||||||
|
_buildargs="$_buildargs $_1"
|
||||||
|
fi
|
||||||
|
|
||||||
if $WITH_OSL; then
|
if $WITH_OSL; then
|
||||||
_1="-D WITH_CYCLES_OSL=ON"
|
_1="-D WITH_CYCLES_OSL=ON"
|
||||||
_2="-D WITH_LLVM=ON"
|
_2="-D WITH_LLVM=ON"
|
||||||
@ -2816,6 +2854,10 @@ print_info() {
|
|||||||
INFO "BF_OCIO = '$INST/ocio'"
|
INFO "BF_OCIO = '$INST/ocio'"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -d $INST/openexr ]; then
|
||||||
|
INFO "BF_OPENEXR = '$INST/openexr'"
|
||||||
|
fi
|
||||||
|
|
||||||
INFO "WITH_BF_OIIO = True"
|
INFO "WITH_BF_OIIO = True"
|
||||||
if [ -d $INST/oiio ]; then
|
if [ -d $INST/oiio ]; then
|
||||||
INFO "BF_OIIO = '$INST/oiio'"
|
INFO "BF_OIIO = '$INST/oiio'"
|
||||||
|
Loading…
Reference in New Issue
Block a user