mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-05 14:38:51 +02:00
316 lines
9.5 KiB
Bash
316 lines
9.5 KiB
Bash
SUMMARY="3D Creation/Animation/Publishing System"
|
||
DESCRIPTION="Blender is the free and open source 3D creation suite. It \
|
||
supports the entirety of the 3D pipeline—modeling, rigging, animation, \
|
||
simulation, rendering, compositing and motion tracking, even video editing \
|
||
and game creation.
|
||
Advanced users employ Blender’s API for Python scripting to customize the \
|
||
application and write specialized tools; often these are included in Blender’s \
|
||
future releases. Blender is well suited to individuals and small studios who \
|
||
benefit from its unified pipeline and responsive development process."
|
||
HOMEPAGE="http://www.blender.org/"
|
||
COPYRIGHT="2002-2017 Blender Foundation"
|
||
LICENSE="GNU GPL v2"
|
||
REVISION="1"
|
||
SOURCE_URI="http://download.blender.org/source/blender-$portVersion.tar.gz"
|
||
CHECKSUM_SHA256="4c944c304a49e68ac687ea06f5758204def049b66dc211e1cffa1857716393bc"
|
||
PATCHES="blender-$portVersion.patchset"
|
||
ADDITIONAL_FILES="blender.rdef.in"
|
||
|
||
ARCHITECTURES="!x86_gcc2 ?x86 x86_64"
|
||
SECONDARY_ARCHITECTURES="?x86"
|
||
|
||
PYTHON_VERSION="3.6"
|
||
|
||
PROVIDES="
|
||
blender$secondaryArchSuffix = $portVersion
|
||
cmd:blender
|
||
# cmd:blenderplayer
|
||
# cmd:blender_thumbnailer.py
|
||
"
|
||
REQUIRES="
|
||
haiku$secondaryArchSuffix
|
||
lib:libalembic$secondaryArchSuffix
|
||
# lib:libavcodec$secondaryArchSuffix
|
||
# lib:libavdevice$secondaryArchSuffix
|
||
lib:libboost_atomic$secondaryArchSuffix
|
||
lib:libboost_chrono$secondaryArchSuffix
|
||
lib:libboost_date_time$secondaryArchSuffix
|
||
lib:libboost_filesystem$secondaryArchSuffix
|
||
lib:libboost_locale$secondaryArchSuffix
|
||
lib:libboost_regex$secondaryArchSuffix
|
||
lib:libboost_system$secondaryArchSuffix
|
||
lib:libboost_thread$secondaryArchSuffix
|
||
lib:libexecinfo$secondaryArchSuffix
|
||
lib:libfftw3$secondaryArchSuffix
|
||
lib:libfreetype$secondaryArchSuffix
|
||
lib:libgcc_s$secondaryArchSuffix
|
||
# lib:libgflags$secondaryArchSuffix
|
||
lib:libgl$secondaryArchSuffix
|
||
lib:libglew$secondaryArchSuffix
|
||
# lib:libglog$secondaryArchSuffix
|
||
lib:libglu$secondaryArchSuffix
|
||
lib:libgomp$secondaryArchSuffix
|
||
# lib:libgtest$secondaryArchSuffix
|
||
lib:libhalf$secondaryArchSuffix
|
||
lib:libhdf5$secondaryArchSuffix
|
||
lib:libiconv$secondaryArchSuffix
|
||
lib:libiex_2_2$secondaryArchSuffix
|
||
lib:libilmimf_2_2$secondaryArchSuffix
|
||
lib:libilmthread_2_2$secondaryArchSuffix
|
||
lib:libimath_2_2$secondaryArchSuffix
|
||
lib:libjpeg$secondaryArchSuffix
|
||
lib:libLLVM_5.0$secondaryArchSuffix
|
||
lib:liblzma$secondaryArchSuffix
|
||
lib:liblzo2$secondaryArchSuffix
|
||
lib:libopenal$secondaryArchSuffix
|
||
lib:libopencolladabaseutils$secondaryArchSuffix
|
||
lib:libopencolorio$secondaryArchSuffix
|
||
lib:libopenimageio$secondaryArchSuffix
|
||
# lib:libopenjp2$secondaryArchSuffix
|
||
lib:libopenvdb$secondaryArchSuffix
|
||
lib:libosdCPU$secondaryArchSuffix
|
||
lib:libosdGPU$secondaryArchSuffix
|
||
lib:liboslcomp$secondaryArchSuffix
|
||
lib:libpcre$secondaryArchSuffix
|
||
lib:libpng16$secondaryArchSuffix
|
||
lib:libpugixml$secondaryArchSuffix
|
||
lib:libpython${PYTHON_VERSION}m
|
||
lib:libsdl2_2.0$secondaryArchSuffix
|
||
lib:libsndfile$secondaryArchSuffix
|
||
lib:libtbb$secondaryArchSuffix
|
||
lib:libtinyxml$secondaryArchSuffix
|
||
lib:libtiff$secondaryArchSuffix
|
||
lib:libxml2$secondaryArchSuffix
|
||
lib:libyaml_cpp$secondaryArchSuffix
|
||
lib:libz$secondaryArchSuffix
|
||
python3_numpy
|
||
"
|
||
|
||
BUILD_REQUIRES="
|
||
haiku${secondaryArchSuffix}_devel
|
||
llvm$secondaryArchSuffix
|
||
devel:eigen$secondaryArchSuffix
|
||
devel:libalembic$secondaryArchSuffix
|
||
# devel:libavcodec$secondaryArchSuffix
|
||
# devel:libavdevice$secondaryArchSuffix
|
||
devel:libboost_atomic$secondaryArchSuffix
|
||
devel:libboost_chrono$secondaryArchSuffix
|
||
devel:libboost_date_time$secondaryArchSuffix
|
||
devel:libboost_filesystem$secondaryArchSuffix
|
||
devel:libboost_locale$secondaryArchSuffix
|
||
devel:libboost_regex$secondaryArchSuffix
|
||
devel:libboost_system$secondaryArchSuffix
|
||
devel:libboost_thread$secondaryArchSuffix
|
||
devel:libexecinfo$secondaryArchSuffix
|
||
devel:libfftw3$secondaryArchSuffix
|
||
devel:libfreetype$secondaryArchSuffix
|
||
# devel:libgflags$secondaryArchSuffix
|
||
devel:libgl$secondaryArchSuffix
|
||
devel:libglew$secondaryArchSuffix
|
||
# devel:libglog$secondaryArchSuffix
|
||
devel:libglu$secondaryArchSuffix
|
||
devel:libgomp$secondaryArchSuffix
|
||
# devel:libgtest$secondaryArchSuffix
|
||
devel:libhalf$secondaryArchSuffix
|
||
devel:libhdf5$secondaryArchSuffix
|
||
devel:libiconv$secondaryArchSuffix
|
||
devel:libiex_2_2$secondaryArchSuffix
|
||
devel:libilmimf_2_2$secondaryArchSuffix
|
||
devel:libilmthread_2_2$secondaryArchSuffix
|
||
devel:libimath_2_2$secondaryArchSuffix
|
||
devel:libjpeg$secondaryArchSuffix
|
||
devel:liblzma$secondaryArchSuffix
|
||
devel:liblzo2$secondaryArchSuffix
|
||
devel:libopenal$secondaryArchSuffix
|
||
devel:libopencolladabaseutils$secondaryArchSuffix
|
||
devel:libopencolorio$secondaryArchSuffix
|
||
devel:libopenimageio$secondaryArchSuffix
|
||
# devel:libopenjp2$secondaryArchSuffix
|
||
devel:libopenvdb$secondaryArchSuffix
|
||
devel:libosdCPU$secondaryArchSuffix
|
||
devel:libosdGPU$secondaryArchSuffix
|
||
devel:liboslcomp$secondaryArchSuffix
|
||
devel:libpcre$secondaryArchSuffix
|
||
devel:libpng16$secondaryArchSuffix
|
||
devel:libpugixml$secondaryArchSuffix
|
||
devel:libpython${PYTHON_VERSION}m
|
||
devel:libsdl2_2.0$secondaryArchSuffix
|
||
devel:libsndfile$secondaryArchSuffix
|
||
devel:libtbb$secondaryArchSuffix
|
||
devel:libtinyxml$secondaryArchSuffix
|
||
devel:libtiff$secondaryArchSuffix
|
||
devel:libxml2$secondaryArchSuffix
|
||
devel:libyaml_cpp$secondaryArchSuffix
|
||
devel:libz$secondaryArchSuffix
|
||
"
|
||
BUILD_PREREQUIRES="
|
||
cmd:cmake
|
||
cmd:git
|
||
cmd:gcc$secondaryArchSuffix
|
||
cmd:find
|
||
cmd:ld$secondaryArchSuffix
|
||
cmd:make
|
||
cmd:python${PYTHON_VERSION}
|
||
cmd:sed
|
||
cmd:strip
|
||
llvm$secondaryArchSuffix
|
||
python3_numpy
|
||
#python3_requests #maybe later
|
||
"
|
||
|
||
|
||
defineDebugInfoPackage blender$secondaryArchSuffix \
|
||
$appsDir/Blender/Blender
|
||
# $binDir/cycles
|
||
|
||
BUILD()
|
||
{
|
||
PY_VENDOR_DIR=`finddir B_SYSTEM_LIB_DIRECTORY`/python${PYTHON_VERSION}/vendor-packages
|
||
NUMPY_FOLDER=`find $PY_VENDOR_DIR -maxdepth 1 -type d |grep numpy`
|
||
PORT_SUBFOLDER=`echo $portVersion | sed 's/.$//'`
|
||
|
||
# OpenCOLLADA workaround
|
||
COLLADA_HEADERS="`finddir B_SYSTEM_HEADERS_DIRECTORY`/opencollada"
|
||
COLLADA_INC_FLAGS="-I$COLLADA_HEADERS/COLLADABaseUtils \
|
||
-I$COLLADA_HEADERS/COLLADAFramework \
|
||
-I$COLLADA_HEADERS/COLLADASaxFrameworkLoader \
|
||
-I$COLLADA_HEADERS/COLLADAStreamWriter \
|
||
-I$COLLADA_HEADERS/GeneratedSaxParser"
|
||
|
||
# Haiku specific settings
|
||
BLENDER_PLATFORM_SPECIFIC="-DCMAKE_INSTALL_PREFIX:PATH=$appsDir/Blender \
|
||
-DPYTHON_VERSION=${PYTHON_VERSION} \
|
||
-DPYTHON_INCLUDE_DIR=`finddir B_SYSTEM_HEADERS_DIRECTORY`/python${PYTHON_VERSION}m/ \
|
||
-DPYTHON_LIBRARY=`finddir B_SYSTEM_LIB_DIRECTORY`/libpython${PYTHON_VERSION}m.so.1.0 \
|
||
-DPYTHON_EXECUTABLE=/bin/python${PYTHON_VERSION} \
|
||
-DPYTHON_NUMPY_PATH=$NUMPY_FOLDER \
|
||
-DWITH_PYTHON_INSTALL_NUMPY=OFF \
|
||
-DWITH_PYTHON_INSTALL_REQUESTS=OFF \
|
||
-DWITH_GHOST_SDL=ON \
|
||
-Wno-dev"
|
||
|
||
# Release settings breaks build on Haiku
|
||
BLENDER_BUGOUS="-DWITH_BOOST=ON \
|
||
-DWITH_CYCLES_NATIVE_ONLY=ON \
|
||
-DWITH_CYCLES_LOGGING=OFF \
|
||
-DWITH_CODEC_FFMPEG=OFF \
|
||
-DWITH_GAMEENGINE_DECKLINK=OFF \
|
||
-DWITH_GTESTS=OFF \
|
||
-DWITH_LLVM=ON \
|
||
-DWITH_OPENIMAGEIO=ON \
|
||
-DWITH_SYSTEM_EIGEN3=ON \
|
||
-DWITH_SYSTEM_GFLAGS=OFF \
|
||
-DWITH_SYSTEM_GLOG=OFF \
|
||
-DWITH_SYSTEM_OPENJPEG=OFF \
|
||
-DWITH_SYSTEM_LZO=ON"
|
||
|
||
# Missing deps on Haiku
|
||
BLENDER_MISSING="-DWITH_JACK=OFF \
|
||
-DWITH_MEM_JEMALLOC=OFF \
|
||
-DWITH_INPUT_NDOF=OFF"
|
||
|
||
# Release build settings
|
||
BLENDER_RELEASE="-DWITH_ALEMBIC=ON \
|
||
-DWITH_BUILDINFO=ON \
|
||
-DWITH_BULLET=ON \
|
||
-DWITH_CODEC_AVI=ON \
|
||
-DWITH_CODEC_SNDFILE=ON \
|
||
-DWITH_CYCLES=ON \
|
||
-DWITH_CYCLES_OPENSUBDIV=ON \
|
||
-DWITH_CYCLES_OSL=ON \
|
||
-DWITH_FFTW3=ON \
|
||
-DWITH_LIBMV=ON \
|
||
-DWITH_LIBMV_SCHUR_SPECIALIZATIONS=ON \
|
||
-DWITH_GAMEENGINE=ON \
|
||
-DWITH_COMPOSITOR=ON \
|
||
-DWITH_FREESTYLE=ON \
|
||
-DWITH_GHOST_XDND=ON \
|
||
-DWITH_IK_SOLVER=ON \
|
||
-DWITH_IK_ITASC=ON \
|
||
-DWITH_IMAGE_CINEON=ON \
|
||
-DWITH_IMAGE_DDS=ON \
|
||
-DWITH_IMAGE_FRAMESERVER=ON \
|
||
-DWITH_IMAGE_HDR=ON \
|
||
-DWITH_IMAGE_OPENEXR=ON \
|
||
-DWITH_IMAGE_TIFF=ON \
|
||
-DWITH_INTERNATIONAL=ON \
|
||
-DWITH_LZMA=ON \
|
||
-DWITH_LZO=ON \
|
||
-DWITH_MOD_BOOLEAN=ON \
|
||
-DWITH_MOD_FLUID=ON \
|
||
-DWITH_MOD_REMESH=ON \
|
||
-DWITH_MOD_SMOKE=ON \
|
||
-DWITH_MOD_OCEANSIM=ON \
|
||
-DWITH_AUDASPACE=ON \
|
||
-DWITH_OPENAL=ON \
|
||
-DWITH_OPENCOLLADA=ON \
|
||
-DWITH_OPENCOLORIO=ON \
|
||
-DWITH_OPENMP=ON \
|
||
-DWITH_OPENVDB=ON \
|
||
-DWITH_OPENVDB_BLOSC=ON \
|
||
-DWITH_PYTHON_INSTALL=ON \
|
||
-DWITH_RAYOPTIMIZATION=ON \
|
||
-DWITH_SDL=ON \
|
||
-DWITH_PLAYER=OFF \
|
||
-DWITH_OPENSUBDIV=ON"
|
||
|
||
# Extra CXX Flags
|
||
BLENDER_CXX="-DBOOST_NO_CXX11_CONSTEXPR \
|
||
-std=c++11 $COLLADA_INC_FLAGS"
|
||
|
||
mkdir -p build_haiku
|
||
cd build_haiku
|
||
|
||
cmake .. \
|
||
$BLENDER_PLATFORM_SPECIFIC \
|
||
$BLENDER_BUGOUS \
|
||
$BLENDER_MISSING \
|
||
$BLENDER_RELEASE \
|
||
-DCMAKE_CXX_FLAGS="$BLENDER_CXX"
|
||
|
||
make $jobArgs
|
||
}
|
||
|
||
INSTALL()
|
||
{
|
||
cd build_haiku
|
||
make install $jobArgs
|
||
|
||
mv $appsDir/Blender/blender $appsDir/Blender/Blender
|
||
strip $appsDir/Blender/Blender
|
||
|
||
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
|
||
local MIDDLE="`echo "$portVersion" | cut -d. -f2 | sed 's/[a-z]*//g'`"
|
||
local MINOR="`echo 0`"
|
||
sed \
|
||
-e "s|@MAJOR@|$MAJOR|" \
|
||
-e "s|@MIDDLE@|$MIDDLE|" \
|
||
-e "s|@MINOR@|$MINOR|" \
|
||
$portDir/additional-files/blender.rdef.in > blender.rdef
|
||
|
||
addResourcesToBinaries blender.rdef \
|
||
$appsDir/Blender/Blender
|
||
|
||
cd $appsDir/Blender
|
||
mkdir -p $docDir/blender
|
||
|
||
mv GPL-license.txt GPL3-license.txt \
|
||
LICENSE-bfont.ttf.txt jemalloc-license.txt \
|
||
Python-license.txt copyright.txt readme.html \
|
||
blender.svg ocio-license.txt LICENSE-bmonofont-i18n.ttf.txt \
|
||
LICENSE-droidsans.ttf.txt $docDir/blender
|
||
|
||
rm -rf blender.desktop
|
||
|
||
addAppDeskbarSymlink $appsDir/Blender/Blender Blender
|
||
}
|
||
|
||
TEST()
|
||
{
|
||
cd build_haiku
|
||
# The whole testcase is around 1GB and not included. Get it from here:
|
||
# svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests
|
||
# and put it in "work-2.xx/sources/lib"
|
||
make test
|
||
}
|