Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2012-11-16 16:42:01 +0400
committerBastien Montagne <montagne29@wanadoo.fr>2012-11-16 16:42:01 +0400
commit366b60c6cb62722173c09f440af34c05052c53d7 (patch)
treefc42f6f14c019e36e01125d720f6b165f8e611e3 /build_files
parent276c842096e1e1b1407b226965c9fd8c472a8ca4 (diff)
First atempt to add OSL.
DEB only for now: installs needed deps (LLVM & co), downloads OSL source and compiles the lib. However, blender linking fails currently... :/
Diffstat (limited to 'build_files')
-rwxr-xr-xbuild_files/build_environment/install_deps.sh122
1 files changed, 94 insertions, 28 deletions
diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh
index 72211a52e72..7c2dcbfa068 100755
--- a/build_files/build_environment/install_deps.sh
+++ b/build_files/build_environment/install_deps.sh
@@ -29,7 +29,7 @@ LLVM_VERSION_MIN="3.0"
# OSL needs to be compiled for now!
OSL_VERSION="1.2.0"
-OSL_SOURCE="https://github.com/DingTo/OpenShadingLanguage/archive/blender-fixes.zip"
+OSL_SOURCE="https://github.com/DingTo/OpenShadingLanguage/archive/blender-fixes.tar.gz"
FFMPEG_VERSION="1.0"
FFMPEG_SOURCE="http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2"
@@ -264,11 +264,11 @@ compile_OCIO() {
fi
cmake -D CMAKE_BUILD_TYPE=Release \
- -D CMAKE_PREFIX_PATH=$INST/ocio-$OCIO_VERSION \
- -D CMAKE_INSTALL_PREFIX=$INST/ocio-$OCIO_VERSION \
- -D CMAKE_CXX_FLAGS="$cflags" \
- -D CMAKE_EXE_LINKER_FLAGS="-lgcc_s -lgcc" \
- ..
+ -D CMAKE_PREFIX_PATH=$INST/ocio-$OCIO_VERSION \
+ -D CMAKE_INSTALL_PREFIX=$INST/ocio-$OCIO_VERSION \
+ -D CMAKE_CXX_FLAGS="$cflags" \
+ -D CMAKE_EXE_LINKER_FLAGS="-lgcc_s -lgcc" \
+ ..
make -j$THREADS
make install
@@ -295,7 +295,7 @@ compile_OCIO() {
compile_OIIO() {
# To be changed each time we make edits that would modify the compiled result!
- oiio_magic=1
+ oiio_magic=5
# Clean install if needed!
magic_compile_check oiio-$OIIO_VERSION $oiio_magic
@@ -324,26 +324,27 @@ compile_OIIO() {
mkdir build
cd build
+ cmake_d="-D CMAKE_BUILD_TYPE=Release \
+ -D CMAKE_PREFIX_PATH=$INST/oiio-$OIIO_VERSION \
+ -D CMAKE_INSTALL_PREFIX=$INST/oiio-$OIIO_VERSION \
+ -D BUILDSTATIC=ON"
+
if [ -d $INST/boost ]; then
- boost_root="$INST/boost"
- else
- boost_root="/usr"
+ cmake_d="$cmake_d -D BOOST_ROOT=$INST/boost"
fi
+ # Looks like we do not need ocio in oiio for now...
+# if [ -d $INST/ocio ]; then
+# cmake_d="$cmake_d -D OCIO_PATH=$INST/ocio"
+# fi
+
if file /bin/cp | grep -q '32-bit'; then
cflags="-fPIC -m32 -march=i686"
else
cflags="-fPIC"
fi
- cmake -D CMAKE_BUILD_TYPE=Release \
- -D CMAKE_PREFIX_PATH=$INST/oiio-$OIIO_VERSION \
- -D CMAKE_INSTALL_PREFIX=$INST/oiio-$OIIO_VERSION \
- -D BUILDSTATIC=ON \
- -D CMAKE_CXX_FLAGS="$cflags" \
- -D CMAKE_EXE_LINKER_FLAGS="-lgcc_s -lgcc" \
- -D BOOST_ROOT="$boost_root" \
- ../src
+ cmake $cmake_d -D CMAKE_CXX_FLAGS="$cflags" -D CMAKE_EXE_LINKER_FLAGS="-lgcc_s -lgcc" ../src
make -j$THREADS
make install
@@ -360,6 +361,67 @@ compile_OIIO() {
fi
}
+compile_OSL() {
+ # To be changed each time we make edits that would modify the compiled result!
+ osl_magic=0
+
+ # Clean install if needed!
+ magic_compile_check osl-$OSL_VERSION $osl_magic
+ if [ $? -eq 1 ]; then
+ rm -rf $INST/osl-$OSL_VERSION
+ fi
+
+ if [ ! -d $INST/osl-$OSL_VERSION ]; then
+ INFO "Building OpenShadingLanguage-$OSL_VERSION"
+
+ prepare_opt
+
+ if [ ! -d $SRC/OpenShadingLanguage-$OSL_VERSION ]; then
+ wget -c $OSL_SOURCE -O "$SRC/OpenShadingLanguage-$OSL_VERSION.tar.gz"
+
+ INFO "Unpacking OpenShadingLanguage-$OSL_VERSION"
+ tar -C $SRC --transform "s,(.*/?)OpenShadingLanguage-[^/]*(.*),\1OpenShadingLanguage-$OSL_VERSION\2,x" \
+ -xf $SRC/OpenShadingLanguage-$OSL_VERSION.tar.gz
+ fi
+
+ cd $SRC/OpenShadingLanguage-$OSL_VERSION
+ # Always refresh the whole build!
+# if [ -d build ]; then
+# rm -rf build
+# fi
+# mkdir build
+ cd build
+
+ cmake_d="-D CMAKE_BUILD_TYPE=Release \
+ -D CMAKE_INSTALL_PREFIX=$INST/osl-$OSL_VERSION
+ -D BUILDSTATIC=ON \
+ -D BUILD_TESTING=OFF"
+
+ if [ -d $INST/boost ]; then
+ cmake_d="$cmake_d -D BOOST_ROOT=$INST/boost"
+ fi
+
+ if [ -d $INST/oiio ]; then
+ cmake_d="$cmake_d -D OPENIMAGEIOHOME=$INST/oiio"
+ fi
+
+ cmake $cmake_d -D CMAKE_CXX_FLAGS="-Wall" ../src
+
+ make -j$THREADS
+ make install
+ make clean
+
+ rm -f $INST/osl
+ ln -s osl-$OSL_VERSION $INST/osl
+
+ magic_compile_set osl-$OSL_VERSION $osl_magic
+
+ cd $CWD
+ else
+ INFO "Own OpenShadingLanguage-$OSL_VERSION is up to date, nothing to do!"
+ fi
+}
+
compile_FFmpeg() {
# To be changed each time we make edits that would modify the compiled result!
ffmpeg_magic=0
@@ -500,7 +562,7 @@ install_DEB() {
libfreetype6-dev libx11-dev libxi-dev wget libsqlite3-dev libbz2-dev libncurses5-dev \
libssl-dev liblzma-dev libreadline-dev $OPENJPEG_DEV libopenexr-dev libopenal-dev \
libglew-dev yasm $SCHRO_DEV $THEORA_DEV $VORBIS_DEV libsdl1.2-dev \
- libfftw3-dev libjack-dev python-dev patch flex bison
+ libfftw3-dev libjack-dev python-dev patch flex bison llvm-dev clang libtbb-dev
OPENJPEG_USE=true
SCHRO_USE=true
@@ -564,7 +626,8 @@ install_DEB() {
check_package_DEB libboost-locale$boost_version-dev
if [ $? -eq 0 ]; then
sudo apt-get install -y libboost-locale$boost_version-dev libboost-filesystem$boost_version-dev \
- libboost-regex$boost_version-dev libboost-system$boost_version-dev libboost-thread$boost_version-dev
+ libboost-regex$boost_version-dev libboost-system$boost_version-dev \
+ libboost-thread$boost_version-dev
else
compile_Boost
fi
@@ -586,6 +649,9 @@ install_DEB() {
compile_OIIO
fi
+ # No package currently!
+ compile_OSL
+
# XXX Debian features libav packages as ffmpeg, those are not really compatible with blender code currently :/
# So for now, always build our own ffmpeg.
# check_package_DEB ffmpeg
@@ -617,23 +683,23 @@ check_package_RPM() {
check_package_version_match_RPM() {
v=`yum info $1 | grep Version | tail -n 1 | sed -r 's/.*:\s+(([0-9]+\.?)+).*/\1/'`
- if [ -z "$v" ]; then
+ if [ $v -ge 1 ]; then
+ version_match $v $2
+ return $?
+ else
return 1
fi
-
- version_match $v $2
- return $?
}
check_package_version_ge_RPM() {
v=`yum info $1 | grep Version | tail -n 1 | sed -r 's/.*:\s+(([0-9]+\.?)+).*/\1/'`
- if [ -z "$v" ]; then
+ if [ $v -ge 1 ]; then
+ version_ge $v $2
+ return $?
+ else
return 1
fi
-
- version_ge $v $2
- return $?
}
install_RPM() {