diff options
author | Thomas Beck <software@plasmasolutions.de> | 2015-08-08 15:12:02 +0300 |
---|---|---|
committer | Thomas Beck <software@plasmasolutions.de> | 2015-08-08 15:12:02 +0300 |
commit | dbdc55ab6adab732123d3dc87ad44e937b7fc877 (patch) | |
tree | a284ad9f79fea7c362efe21cb2715daa41b588cb /build_files/build_environment/install_deps.sh | |
parent | fef31aadc4b95587ecfe9575a354c98ff1a05884 (diff) |
Support building OpenSubdiv libraries under Debian (Ubuntu) with our build_deps.sh script.
Use --skip-osd to skip building opensubdiv libs,
use --force-osd to force a rebuild of the libs.
I added all needed user information (where to find the include dir, which -D options to set) to the print_info method that is called at the end too, so it should be pretty intuitive to use.
Reviewers: sergey, mont29
Reviewed By: mont29
Subscribers: mont29
Differential Revision: https://developer.blender.org/D1452
Diffstat (limited to 'build_files/build_environment/install_deps.sh')
-rwxr-xr-x | build_files/build_environment/install_deps.sh | 157 |
1 files changed, 156 insertions, 1 deletions
diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index 0d44ef96154..f7b03490300 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -138,6 +138,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS: --force-osl Force the rebuild of OpenShadingLanguage. + --force-osd + Force the rebuild of OpenSubdiv. + --force-opencollada Force the rebuild of OpenCOLLADA. @@ -174,6 +177,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS: --skip-osl Unconditionally skip OpenShadingLanguage installation/building. + --skip-osd + Unconditionally skip OpenSubdiv installation/building. + --skip-opencollada Unconditionally skip OpenCOLLADA installation/building. @@ -233,6 +239,12 @@ OSL_VERSION_MIN=$OSL_VERSION OSL_FORCE_REBUILD=false OSL_SKIP=false +# OpenSubdiv needs to be compiled for now +OSD_VERSION="3.0.2" +OSD_VERSION_MIN=$OSD_VERSION +OSD_FORCE_REBUILD=false +OSD_SKIP=false + # Version?? OPENCOLLADA_VERSION="1.3" OPENCOLLADA_FORCE_REBUILD=false @@ -375,6 +387,11 @@ while true; do OSL_VERSION_MIN=$OSL_VERSION shift; shift; continue ;; + --ver-osd) + OSD_VERSION="$2" + OSD_VERSION_MIN=$OSD_VERSION + shift; shift; continue + ;; --force-all) PYTHON_FORCE_REBUILD=true NUMPY_FORCE_REBUILD=true @@ -384,6 +401,7 @@ while true; do OIIO_FORCE_REBUILD=true LLVM_FORCE_REBUILD=true OSL_FORCE_REBUILD=true + OSD_FORCE_REBUILD=true OPENCOLLADA_FORCE_REBUILD=true FFMPEG_FORCE_REBUILD=true shift; continue @@ -417,6 +435,9 @@ while true; do --force-osl) OSL_FORCE_REBUILD=true; shift; continue ;; + --force-osd) + OSD_FORCE_REBUILD=true; shift; continue + ;; --force-opencollada) OPENCOLLADA_FORCE_REBUILD=true; shift; continue ;; @@ -447,6 +468,9 @@ while true; do --skip-osl) OSL_SKIP=true; shift; continue ;; + --skip-osd) + OSD_SKIP=true; shift; continue + ;; --skip-opencollada) OPENCOLLADA_SKIP=true; shift; continue ;; @@ -509,6 +533,14 @@ OSL_SOURCE_REPO=( "https://github.com/Nazg-Gul/OpenShadingLanguage.git" ) OSL_SOURCE_REPO_UID="22ee5ea298fd215430dfbd160b5aefd507f06db0" OSL_SOURCE_REPO_BRANCH="blender-fixes" +OSD_USE_REPO=true +# Script foo to make the version string compliant with the archive name: +# ${Varname//SearchForThisChar/ReplaceWithThisChar} +OSD_SOURCE=( "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v${OSD_VERSION//./_}.tar.gz" ) +OSD_SOURCE_REPO=( "https://github.com/PixarAnimationStudios/OpenSubdiv.git" ) +OSD_SOURCE_REPO_UID="404659fffa659da075d1c9416e4fc939139a84ee" +OSD_SOURCE_REPO_BRANCH="dev" + OPENCOLLADA_SOURCE=( "https://github.com/KhronosGroup/OpenCOLLADA.git" ) OPENCOLLADA_REPO_UID="3335ac164e68b2512a40914b14c74db260e6ff7d" FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" ) @@ -1522,6 +1554,99 @@ compile_OSL() { run_ldconfig "osl" } +#### Build OSD #### +_init_osd() { + _src=$SRC/OpenSubdiv-$OSD_VERSION + _git=true + _inst=$INST/osd-$OSD_VERSION + _inst_shortcut=$INST/osd +} + +clean_OSD() { + _init_osd + _clean +} + +compile_OSD() { + # To be changed each time we make edits that would modify the compiled result! + osd_magic=0 + _init_osd + + # Clean install if needed! + magic_compile_check osd-$OSD_VERSION $osd_magic + if [ $? -eq 1 -o $OSD_FORCE_REBUILD == true ]; then + clean_OSD + fi + + if [ ! -d $_inst ]; then + INFO "Building OpenSubdiv-$OSD_VERSION" + + prepare_opt + + if [ ! -d $_src ]; then + mkdir -p $SRC + + if [ $OSD_USE_REPO == true ]; then + git clone ${OSD_SOURCE_REPO[0]} $_src + else + download OSD_SOURCE[@] "$_src.tar.gz" + INFO "Unpacking OpenSubdiv-$OSD_VERSION" + tar -C $SRC --transform "s,(.*/?)OpenSubdiv-[^/]*(.*),\1OpenSubdiv-$OSD_VERSION\2,x" \ + -xf $_src.tar.gz + fi + fi + + cd $_src + + if [ $OSD_USE_REPO == true ]; then + git remote set-url origin ${OSD_SOURCE_REPO[0]} + # XXX For now, always update from latest repo... + git pull --no-edit -X theirs origin $OSD_SOURCE_REPO_BRANCH + # Stick to same rev as windows' libs... + git checkout $OSD_SOURCE_REPO_UID + git reset --hard + fi + + # 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" + # ptex is only needed when nicholas bishop is ready + cmake_d="$cmake_d -D NO_PTEX=1" + cmake_d="$cmake_d -D NO_CLEW=1" + # maya plugin, docs, tutorials, regression tests and examples are not needed + cmake_d="$cmake_d -D NO_MAYA=1 -D NO_DOC=1 -D NO_TUTORIALS=1 -D NO_REGRESSION=1 -DNO_EXAMPLES=1" + + cmake $cmake_d .. + + make -j$THREADS && make install + make clean + + if [ -d $_inst ]; then + _create_inst_shortcut + else + ERROR "OpenSubdiv-$OSD_VERSION failed to compile, exiting" + exit 1 + fi + + magic_compile_set osd-$OSD_VERSION $osd_magic + + cd $CWD + INFO "Done compiling OpenSubdiv-$OSD_VERSION!" + else + INFO "Own OpenSubdiv-$OSD_VERSION is up to date, nothing to do!" + INFO "If you want to force rebuild of this lib, use the --force-osd option." + fi + + run_ldconfig "osd" +} + + #### Build OpenCOLLADA #### _init_opencollada() { _src=$SRC/OpenCOLLADA-$OPENCOLLADA_VERSION @@ -1816,7 +1941,8 @@ install_DEB() { libfreetype6-dev libx11-dev libxi-dev wget libsqlite3-dev libbz2-dev \ libncurses5-dev libssl-dev liblzma-dev libreadline-dev $OPENJPEG_DEV \ libopenal-dev libglew-dev libglewmx-dev yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV \ - libsdl1.2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev" + libsdl1.2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libxrandr-dev \ + libxinerama-dev" OPENJPEG_USE=true VORBIS_USE=true @@ -2089,6 +2215,20 @@ install_DEB() { fi fi + PRINT "" + if $OSD_SKIP; then + WARNING "Skipping OpenSubdiv installation, as requested..." + else + if $have_llvm; then + install_packages_DEB flex bison libtbb-dev + # No package currently! + PRINT "" + compile_OSD + else + WARNING "No LLVM available, cannot build OSD!" + fi + fi + if $WITH_OPENCOLLADA; then PRINT "" if $OPENCOLLADA_SKIP; then @@ -3011,6 +3151,14 @@ print_info() { _buildargs="$_buildargs $_1 $_2" fi + if [ -d $INST/osd ]; then + _1="-D WITH_OPENSUBDIV=ON" + _2="-D OPENSUBDIV_ROOT_DIR=$INST/osd" + PRINT " $_1" + PRINT " $_2" + _buildargs="$_buildargs $_1 $_2" + fi + if $WITH_OPENCOLLADA; then _1="-D WITH_OPENCOLLADA=ON" PRINT " $_1" @@ -3077,6 +3225,13 @@ print_info() { PRINT "BF_OSL = '$INST/osl'" fi + if [ "$OSD_SKIP" = false ]; then + PRINT "WITH_BF_OPENSUBDIV = True" + if [ -d $INST/osd ]; then + PRINT "BF_OPENSUBDIV = '$INST/osd'" + fi + fi + if [ "$BOOST_SKIP" = false ]; then PRINT "WITH_BF_BOOST = True" if [ -d $INST/boost ]; then |