From 99b3c76c3e8178c62044b9f0e0594db0b1ff518c Mon Sep 17 00:00:00 2001 From: miqlas <5569059+extrowerk@users.noreply.github.com> Date: Fri, 5 Jan 2018 10:16:38 +0100 Subject: [PATCH] Blender : enable some features, cleanup (#2018) * WIP * WIP2 * Blender: add TBB, Alembic, OpenCollada * WIP * On my way to get Blender match to the official release feuture-set --- media-gfx/blender/blender-2.79.recipe | 139 +++++++++++++----- .../blender/patches/blender-2.79.patchset | 42 +++++- 2 files changed, 142 insertions(+), 39 deletions(-) diff --git a/media-gfx/blender/blender-2.79.recipe b/media-gfx/blender/blender-2.79.recipe index 3a747a597..b9ba78543 100644 --- a/media-gfx/blender/blender-2.79.recipe +++ b/media-gfx/blender/blender-2.79.recipe @@ -10,7 +10,7 @@ benefit from its unified pipeline and responsive development process." HOMEPAGE="http://www.blender.org/" COPYRIGHT="2002-2017 Blender Foundation" LICENSE="GNU GPL v2" -REVISION="5" +REVISION="6" SOURCE_URI="http://download.blender.org/source/blender-$portVersion.tar.gz" CHECKSUM_SHA256="a9de03e769a2a4a0bf92186556896c4f4d32fd9ac4480915ae92d7f95b25c899" PATCHES="blender-$portVersion.patchset" @@ -24,12 +24,14 @@ PYTHON_VERSION="3.6" PROVIDES=" blender$secondaryArchSuffix = $portVersion cmd:blender + cmd:blenderplayer cmd:blender_thumbnailer.py - cmd:cycles " 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 @@ -61,14 +63,21 @@ REQUIRES=" lib:liblzma$secondaryArchSuffix lib:liblzo2$secondaryArchSuffix lib:libopenal$secondaryArchSuffix + lib:libopencolladabaseutils$secondaryArchSuffix lib:libopencolorio$secondaryArchSuffix lib:libopenimageio$secondaryArchSuffix - lib:libopenjp2$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 @@ -81,7 +90,9 @@ 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 @@ -111,14 +122,21 @@ BUILD_REQUIRES=" devel:liblzma$secondaryArchSuffix devel:liblzo2$secondaryArchSuffix devel:libopenal$secondaryArchSuffix + devel:libopencolladabaseutils$secondaryArchSuffix devel:libopencolorio$secondaryArchSuffix devel:libopenimageio$secondaryArchSuffix - devel:libopenjp2$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 @@ -151,43 +169,104 @@ BUILD() NUMPY_FOLDER=`find $PY_VENDOR_DIR -maxdepth 1 -type d |grep numpy` PORT_SUBFOLDER=`echo $portVersion | sed 's/.$//'` - mkdir -p build_haiku - cd build_haiku + # 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" - cmake .. \ - -DCMAKE_INSTALL_PREFIX:PATH=$appsDir/Blender \ + # 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} \ - -DWITH_PYTHON_INSTALL:BOOL=ON \ -DPYTHON_NUMPY_PATH=$NUMPY_FOLDER \ -DWITH_PYTHON_INSTALL_NUMPY:BOOL=OFF \ -DWITH_PYTHON_INSTALL_REQUESTS:BOOL=OFF \ - -DWITH_BOOST:BOOL=ON \ - -DWITH_CYCLES:BOOL=ON \ - -DWITH_SDL:BOOL=ON \ -DWITH_GHOST_SDL:BOOL=ON \ + -Wno-dev" + + # Release settings breaks build on Haiku + BLENDER_BUGOUS="-DWITH_SYSTEM_OPENJPEG:BOOL=OFF \ + -DWITH_SYSTEM_GLOG:BOOL=OFF \ + -DWITH_SYSTEM_GFLAGS:BOOL=OFF \ + -DWITH_GTESTS:BOOL=OFF \ + -DWITH_CYCLES_OSL=OFF \ + -DWITH_OPENVDB=OFF \ + -DWITH_OPENVDB_BLOSC=OFF \ + -DWITH_BOOST:BOOL=ON \ -DWITH_GAMEENGINE_DECKLINK:BOOL=OFF \ -DWITH_OPENIMAGEIO:BOOL=ON \ - -DWITH_OPENCOLORIO:BOOL=ON \ - -DWITH_FFTW3:BOOL=ON \ - -DWITH_CODEC_SNDFILE:BOOL=ON \ - -DWITH_SYSTEM_OPENJPEG:BOOL=ON \ -DWITH_SYSTEM_EIGEN3:BOOL=ON \ -DWITH_SYSTEM_LZO:BOOL=ON \ - -DWITH_SYSTEM_GLOG:BOOL=OFF \ - -DWITH_GTESTS:BOOL=OFF \ - -DWITH_SYSTEM_GFLAGS:BOOL=OFF \ - -DWITH_IMAGE_OPENEXR:BOOL=ON \ -DWITH_LLVM:BOOL=ON \ - -DWITH_CODEC_FFMPEG:BOOL=ON \ -DWITH_CYCLES_NATIVE_ONLY:BOOL=ON \ - -DWITH_CYCLES_STANDALONE:BOOL=ON \ - -DWITH_CYCLES_STANDALONE_GUI:BOOL=ON \ - -DWITH_RAYOPTIMIZATION:BOOL=ON \ - -DCMAKE_CXX_FLAGS="-DBOOST_NO_CXX11_CONSTEXPR -std=c++11" \ - -Wno-dev + -DWITH_CYCLES_OPENSUBDIV:BOOL=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_FFMPEG=ON \ + -DWITH_CODEC_SNDFILE=ON \ + -DWITH_CYCLES=ON \ + -DWITH_CYCLES_OPENSUBDIV=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_PYTHON_INSTALL=ON \ + -DWITH_RAYOPTIMIZATION=ON \ + -DWITH_SDL=ON \ + -DWITH_PLAYER=ON \ + -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 } @@ -197,10 +276,6 @@ INSTALL() cd build_haiku make install $jobArgs - # Standalone Cycles doesn't installed automatically. - mkdir -p $binDir - cp bin/cycles $binDir - mv $appsDir/Blender/blender $appsDir/Blender/Blender strip $appsDir/Blender/Blender @@ -233,10 +308,8 @@ INSTALL() TEST() { cd build_haiku - # the whole testcase is around 1GB and not included. - # Get it from here: + # 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" - # without theese some test will fail. make test } diff --git a/media-gfx/blender/patches/blender-2.79.patchset b/media-gfx/blender/patches/blender-2.79.patchset index 0b3fafacd..30f08a012 100644 --- a/media-gfx/blender/patches/blender-2.79.patchset +++ b/media-gfx/blender/patches/blender-2.79.patchset @@ -1,4 +1,4 @@ -From 5639109c264a7f27107a3046911b2fdb24a02b0e Mon Sep 17 00:00:00 2001 +From adebe8a276834f24205c170b8b09466727519146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= Date: Tue, 19 Sep 2017 23:03:48 +0200 Subject: Haiku patchset @@ -151,10 +151,10 @@ index b819c51..9fb3fbf 100644 # include # define USE_STATFS_STATVFS -- -2.14.1 +2.15.0 -From c6ab784647b736fe25523c024ff6194465ad8490 Mon Sep 17 00:00:00 2001 +From a28c6353e71223779f8e287ff7e37f4180d0400d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= Date: Tue, 19 Sep 2017 23:15:20 +0200 Subject: Haiku SDL2 check fix @@ -174,10 +174,10 @@ index 2a835cf..61b7dee 100644 FIND_LIBRARY(SDL2_LIBRARY -- -2.14.1 +2.15.0 -From ff451389f3739d7917d3041a67174e8c9d138a81 Mon Sep 17 00:00:00 2001 +From dfa0aa38f941503c196fb4c37a852eb3e1a177f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= Date: Tue, 19 Sep 2017 23:52:27 +0200 Subject: In-tree glog supporting patches @@ -373,5 +373,35 @@ index 0000000..4e6703b +# define NO_FRAME_POINTER +#endif -- -2.14.1 +2.15.0 + + +From 93800955fcf29cb52b37d78c3bf28cfdcbd63af8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= +Date: Sat, 16 Dec 2017 17:04:56 +0100 +Subject: OpenCollada support + + +diff --git a/build_files/cmake/Modules/FindOpenCOLLADA.cmake b/build_files/cmake/Modules/FindOpenCOLLADA.cmake +index 63bc520..28cf0b9 100644 +--- a/build_files/cmake/Modules/FindOpenCOLLADA.cmake ++++ b/build_files/cmake/Modules/FindOpenCOLLADA.cmake +@@ -67,6 +67,7 @@ SET(_opencollada_SEARCH_DIRS + /opt/local # DarwinPorts + /opt/csw # Blastwave + /opt/lib/opencollada ++ /system/develop + ) + + SET(_opencollada_INCLUDES) +@@ -84,6 +85,7 @@ FOREACH(COMPONENT ${_opencollada_FIND_INCLUDES}) + include/opencollada/${COMPONENT} + include/${COMPONENT}/include + include/${COMPONENT} ++ headers/opencollada + HINTS + ${_opencollada_SEARCH_DIRS} + ) +-- +2.15.0