Skip to content

Instantly share code, notes, and snippets.

@italic-r
Last active June 9, 2018 18:44
Show Gist options
  • Save italic-r/76359c625ec2399060fae417f5aa5300 to your computer and use it in GitHub Desktop.
Save italic-r/76359c625ec2399060fae417f5aa5300 to your computer and use it in GitHub Desktop.
Blender build scripts for Centos7
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
PATH=$HOME/src/phab/arcanist/bin:$PATH
if [ -f $HOME/src/phab/arcanist/resources/shell/bash-completion ]; then
source $HOME/src/phab/arcanist/resources/shell/bash-completion
fi
if [ -f $HOME/.config/exercism/exercism_completion.bash ]; then
source $HOME/.config/exercism/exercism_completion.bash
fi
# Blender variables
export B3D_PY_PATH=/opt/lib/python-3.6
CUDA_PATH=/usr/local/cuda
PATH=$CUDA_PATH/bin:$PATH
LD_LIBRARY_PATH=$CUDA_PATH/lib64:$B3D_PY_PATH/lib:$LD_LIBRARY_PATH
export PATH
export LD_LIBRARY_PATH
#!/bin/bash
BLENDER_GIT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
activate_dt6() {
# Enable RHEL developer toolset 6 for GCC 6
echo ""
echo "Activating devtoolset-6 software collection..."
echo ""
source scl_source enable devtoolset-6
echo "Using GCC at:"
which gcc | cat
gcc --version
export CC=/opt/rh/devtoolset-6/root/usr/bin/gcc
export CXX=/opt/rh/devtoolset-6/root/usr/bin/g++
}
activate_env() {
export PATH=$HOME/src/cmake/bin:$PATH
}
# Sig: branch
pull_changes() {
echo "Pulling changes..."
echo ""
cd ${BLENDER_GIT}/blender/
git checkout ${1}
git fetch --progress --prune origin
git pull --rebase
git merge --ff --ff-only refs/remotes/origin/${1}
git submodule update --remote
git submodule foreach "(git checkout ${1}; git merge --ff --ff-only refs/remotes/origin/${1})&"
}
# Sig: branch: master, blender2.8, patch, bpy
build() {
echo ""
echo "Building..."
echo ""
BRANCH="${1}"
LOG="log/build-${BRANCH}.log"
cd ${BLENDER_GIT}/
if ./make-${BRANCH}.sh $@ > ${LOG} 2>&1; then
notify-send -u normal -t 1000 -a "Blender" "Blender ${BRANCH} Build" "Success"
else
notify-send -u critical -t 1000 -a "Blender" "Blender ${BRANCH} Build" "Failed"
exit 1
fi
}
# Sig: branch, version
prep_ocio() {
echo ""
echo "Removing OCIO..."
echo ""
rm -rf ${BLENDER_GIT}/build/${1}/bin/${2}/datafiles/colormanagement
}
# Sig: branch, version
replace_ocio() {
echo ""
echo "Replacing OCIO..."
echo ""
rm -rf ${BLENDER_GIT}/build/${1}/bin/${2}/datafiles/colormanagement
ln -s \
${HOME}/src/3d/addons/blender/filmic-blender \
${BLENDER_GIT}/build/${1}/bin/${2}/datafiles/colormanagement
}
#!/bin/bash
BLENDER_GIT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source ${BLENDER_GIT}/_BUILD.sh
BRANCH="blender2.8"
VERSION="2.80"
pull_changes ${BRANCH}
activate_dt6
activate_env
prep_ocio ${BRANCH} ${VERSION}
build ${BRANCH} $@
replace_ocio ${BRANCH} ${VERSION}
#!/bin/bash
# Inherits CC and CXX from BUILD-28.sh
OPT=/opt/lib
BLENDER_GIT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
BLEND=${BLENDER_GIT}/blender/
BUILD_DIR=${BLENDER_GIT}/build/blender2.8
VER=2.80
cd ${BLEND}
rm -r ${BUILD_DIR}/bin/${VER}/scripts
make -j6 BUILD_DIR=${BUILD_DIR} \
\
BUILD_CMAKE_ARGS=" \
-U *SNDFILE* \
-U *PYTHON* \
-U *BOOST* \
-U *Boost* \
-U *OPENCOLORIO* \
-U *OPENEXR* \
-U *OPENIMAGEIO* \
-U *LLVM* \
-U *CYCLES* \
-U *OPENSUBDIV* \
-U *OPENVDB* \
-U *COLLADA* \
-U *FFMPEG* \
-U *ALEMBIC* \
\
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_EXPORT_COMPILE_COMMANDS=ON \
\
-D WITH_STATIC_LIBS=ON \
-D WITH_OPENMP=ON \
\
-D WITH_C11=ON \
-D CMAKE_C_COMPILER=${CC} \
-D CMAKE_C_FLAGS=-std=c11 \
-D WITH_CXX11=ON \
-D CMAKE_CXX_COMPILER=${CXX} \
-D CMAKE_CXX_FLAGS=-std=c++11 \
-D CMAKE_EXE_LINKER_FLAGS=-lpthread \
\
-D PYTHON_VERSION=3.6 \
-D PYTHON_ROOT_DIR=${OPT}/python-3.6 \
-D WITH_PYTHON_INSTALL=OFF \
\
-D WITH_BOOST=ON \
-D BOOST_ROOT=${OPT}/boost \
-D Boost_NO_SYSTEM_PATHS=ON \
\
-D WITH_CYCLES=ON \
-D WITH_CYCLES_DEVICE_CUDA=ON \
-D WITH_CYCLES_DEVICE_OPENCL=ON \
-D WITH_CYCLES_NETWORK=OFF \
-D WITH_CYCLES_CUDA_BINARIES=ON \
-D CYCLES_CUDA_BINARIES_ARCH='sm_52' \
-D WITH_CYCLES_OSL=ON \
-D CYCLES_OSL=${OPT}/osl \
\
-D WITH_CYCLES_STANDALONE=OFF \
-D WITH_CYCLES_STANDALONE_GUI=OFF \
\
-D WITH_CODEC_AVI=ON \
-D WITH_CODEC_SNDFILE=ON \
\
-D WITH_CODEC_FFMPEG=ON \
-D FFMPEG_LIBRARIES='avformat;avcodec;avutil;avdevice;swscale;swresample;lzma;rt;theora;theoradec;theoraenc;vorbis;vorbisenc;vorbisfile;ogg;x264;x26410b;openjpeg' \
-D FFMPEG=${OPT}/ffmpeg \
\
-D WITH_FFTW3=ON \
-D WITH_FREESTYLE=ON \
-D WITH_GAMEENGINE=OFF \
\
-D WITH_IMAGE_CINEON=ON \
-D WITH_IMAGE_DDS=ON \
-D WITH_IMAGE_FRAMESERVER=OFF \
-D WITH_IMAGE_HDR=ON \
-D WITH_IMAGE_OPENJPEG=ON \
-D WITH_IMAGE_TIFF=ON \
\
-D WITH_IMAGE_OPENEXR=ON \
-D OPENEXR_ROOT_DIR=${OPT}/openexr \
\
-D WITH_INPUT_NDOF=OFF \
-D WITH_INTERNATIONAL=OFF \
-D WITH_LIBMV=ON \
-D WITH_LIBMV_SCHUR_SPECIALIZATIONS=ON \
\
-D WITH_LLVM=OFF \
-D LLVM_VERSION=3.4 \
-D LLVM_ROOT_DIR=${OPT}/llvm \
-D LLVM_STATIC=ON \
\
-D WITH_MOD_BOOLEAN=ON \
-D WITH_MOD_FLUID=ON \
-D WITH_MOD_OCEANSIM=ON \
-D WITH_MOD_REMESH=ON \
-D WITH_MOD_SMOKE=ON \
\
-D WITH_OPENCOLLADA=OFF \
\
-D WITH_OPENCOLORIO=ON \
-D OPENCOLORIO_ROOT_DIR=${OPT}/ocio \
\
-D WITH_OPENIMAGEIO=ON \
-D OPENIMAGEIO_ROOT_DIR=${OPT}/oiio \
\
-D WITH_OPENSUBDIV=ON \
-D OPENSUBDIV_ROOT_DIR=${OPT}/osd \
-D WITH_CYCLES_OPENSUBDIV=ON \
\
-D WITH_OPENVDB=ON \
-D WITH_OPENVDB_BLOSC=ON \
\
-D WITH_OPENAL=ON \
-D WITH_SDL=ON \
-D WITH_ALEMBIC=ON \
-D WITH_BULLET=ON \
\
-D WITH_SYSTEM_GLES=OFF \
-D WITH_SYSTEM_GLEW=OFF \
\
-D WITH_DEPSGRAPH_COPY_ON_WRITE=ON \
\
-D WITH_GL_EGL=OFF \
-D WITH_GL_PROFILE_ES20=OFF \
$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment