From 43d501abc3ad692252bbf983513fec5877864bd5 Mon Sep 17 00:00:00 2001 From: miqlas <5569059+extrowerk@users.noreply.github.com> Date: Sun, 3 Dec 2017 18:16:48 +0100 Subject: [PATCH] Blender: use system provided PugiXML (#1833) * Blender: use system provided PugiXML * Blender : debuginfo * REV bump * Remove unneeded recipe/patch * Packaging fix * Disable debuginfo, fix install --- media-gfx/blender/blender-2.78c.recipe | 178 ----- media-gfx/blender/blender-2.79.recipe | 27 +- .../blender/patches/blender-2.78c.patchset | 720 ------------------ 3 files changed, 17 insertions(+), 908 deletions(-) delete mode 100644 media-gfx/blender/blender-2.78c.recipe delete mode 100644 media-gfx/blender/patches/blender-2.78c.patchset diff --git a/media-gfx/blender/blender-2.78c.recipe b/media-gfx/blender/blender-2.78c.recipe deleted file mode 100644 index 25176471d..000000000 --- a/media-gfx/blender/blender-2.78c.recipe +++ /dev/null @@ -1,178 +0,0 @@ -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="64a98ff30300f79385ddb9ad016aa790a92720ff2feb84ddb1d097e6531dd338" -PATCHES="blender-$portVersion.patchset" -ADDITIONAL_FILES="blender.rdef.in" - -ARCHITECTURES="!x86_gcc2 !x86 x86_64" - -PYTHON_VERSION="3.6" -PORT_SUBFOLDER=`echo $portVersion | sed 's/.$//'` -INSTALL_PATH="$appsDir/Blender" - -PROVIDES=" - blender = $portVersion - cmd:blender - cmd:blender_thumbnailer.py - " -REQUIRES=" - haiku - lib:libboost_atomic - lib:libboost_chrono - lib:libboost_date_time - lib:libboost_filesystem - lib:libboost_locale - lib:libboost_regex - lib:libboost_system - lib:libboost_thread - lib:libfftw3 - lib:libfreetype - lib:libgcc_s - lib:libgl - lib:libglew - lib:libglu - lib:libgomp - lib:libhalf -# lib:libhdf5 - lib:libiex_2_2 - lib:libilmimf_2_2 - lib:libilmthread_2_2 - lib:libimath_2_2 - lib:libjpeg - lib:liblzo2 - lib:libopencolorio - lib:libopenimageio - lib:libopenjp2 - lib:libpng16 - lib:libpython${PYTHON_VERSION}m - lib:libsdl2_2.0 -# lib:libsndfile - lib:libtiff - lib:libxml2 - lib:libz - " - -BUILD_REQUIRES=" - haiku_devel -# devel:eigen - devel:libboost_atomic - devel:libboost_chrono - devel:libboost_date_time - devel:libboost_filesystem - devel:libboost_locale - devel:libboost_regex - devel:libboost_system - devel:libboost_thread - devel:libfftw3 - devel:libfreetype - devel:libgl - devel:libglew - devel:libglu - devel:libgomp - devel:libhalf -# devel:libhdf5 - devel:libiex_2_2 - devel:libilmimf_2_2 - devel:libilmthread_2_2 - devel:libimath_2_2 - devel:libjpeg - devel:liblzo2 - devel:libopencolorio - devel:libopenimageio - devel:libopenjp2 - devel:libpng16 - devel:libpython${PYTHON_VERSION}m - devel:libsdl2_2.0 -# devel:libsndfile - devel:libtiff - devel:libxml2 - devel:libz - " -BUILD_PREREQUIRES=" - cmd:cmake - cmd:git - cmd:gcc - cmd:ld - cmd:make - cmd:python${PYTHON_VERSION} - cmd:sed - llvm - #python3_numpy #maybe later - #python3_requests #maybe later - " - -BUILD() -{ - mkdir -p build_haiku - cd build_haiku - - cmake .. \ - -DPYTHON_VERSION=${PYTHON_VERSION} \ - -DPYTHON_INCLUDE_DIR=/system/develop/headers/python${PYTHON_VERSION}m/ \ - -DPYTHON_LIBRARY=/system/lib/libpython${PYTHON_VERSION}m.so.1.0 \ - -DPYTHON_EXECUTABLE=/bin/python${PYTHON_VERSION} \ - -DWITH_PYTHON_INSTALL:BOOL=OFF \ - -DWITH_PYTHON_INSTALL_NUMPY:BOOL=OFF \ - -DWITH_PYTHON_INSTALL_REQUESTS:BOOL=OFF \ - -DWITH_BOOST:BOOL=ON \ - -DWITH_CYCLES:BOOL=ON \ - -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PATH \ - -DWITH_SDL:BOOL=ON \ - -DWITH_GHOST_SDL:BOOL=ON \ - -DWITH_GAMEENGINE_DECKLINK:BOOL=OFF \ - -DWITH_OPENIMAGEIO:BOOL=ON \ - -DWITH_FFTW3:BOOL=ON \ - -DWITH_SYSTEM_OPENJPEG:BOOL=ON \ - -DWITH_SYSTEM_EIGEN3:BOOL=OFF \ - -DWITH_IMAGE_OPENEXR:BOOL=ON \ - -DWITH_LLVM:BOOL=ON \ - -Wno-dev - - make $jobArgs -} - -INSTALL() -{ - cd build_haiku - make install $jobArgs - - mv $INSTALL_PATH/blender $INSTALL_PATH/Blender - strip $INSTALL_PATH/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 \ - $INSTALL_PATH/Blender - - cd $INSTALL_PATH - 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 $INSTALL_PATH/Blender Blender -} diff --git a/media-gfx/blender/blender-2.79.recipe b/media-gfx/blender/blender-2.79.recipe index 31689accb..3a747a597 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="4" +REVISION="5" SOURCE_URI="http://download.blender.org/source/blender-$portVersion.tar.gz" CHECKSUM_SHA256="a9de03e769a2a4a0bf92186556896c4f4d32fd9ac4480915ae92d7f95b25c899" PATCHES="blender-$portVersion.patchset" @@ -22,14 +22,13 @@ SECONDARY_ARCHITECTURES="?x86" PYTHON_VERSION="3.6" PROVIDES=" - blender = $portVersion + blender$secondaryArchSuffix = $portVersion cmd:blender cmd:blender_thumbnailer.py cmd:cycles " REQUIRES=" haiku$secondaryArchSuffix - llvm$secondaryArchSuffix lib:libavcodec$secondaryArchSuffix lib:libboost_atomic$secondaryArchSuffix lib:libboost_chrono$secondaryArchSuffix @@ -58,6 +57,7 @@ REQUIRES=" 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 @@ -65,6 +65,7 @@ REQUIRES=" lib:libopenimageio$secondaryArchSuffix lib:libopenjp2$secondaryArchSuffix lib:libpng16$secondaryArchSuffix + lib:libpugixml$secondaryArchSuffix lib:libpython${PYTHON_VERSION}m lib:libsdl2_2.0$secondaryArchSuffix lib:libsndfile$secondaryArchSuffix @@ -114,6 +115,7 @@ BUILD_REQUIRES=" devel:libopenimageio$secondaryArchSuffix devel:libopenjp2$secondaryArchSuffix devel:libpng16$secondaryArchSuffix + devel:libpugixml$secondaryArchSuffix devel:libpython${PYTHON_VERSION}m devel:libsdl2_2.0$secondaryArchSuffix devel:libsndfile$secondaryArchSuffix @@ -132,23 +134,28 @@ BUILD_PREREQUIRES=" cmd:make cmd:python${PYTHON_VERSION} cmd:sed + cmd:strip llvm$secondaryArchSuffix python3_numpy #python3_requests #maybe later " +# Debuginfo strips the Icon, so lets disable it for now. +#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/.$//'` - INSTALL_PATH="$appsDir/Blender" mkdir -p build_haiku cd build_haiku cmake .. \ - -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PATH \ + -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 \ @@ -194,8 +201,8 @@ INSTALL() mkdir -p $binDir cp bin/cycles $binDir - mv $INSTALL_PATH/blender $INSTALL_PATH/Blender - strip $INSTALL_PATH/Blender + 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'`" @@ -207,9 +214,9 @@ INSTALL() $portDir/additional-files/blender.rdef.in > blender.rdef addResourcesToBinaries blender.rdef \ - $INSTALL_PATH/Blender + $appsDir/Blender/Blender - cd $INSTALL_PATH + cd $appsDir/Blender mkdir -p $docDir/blender mv GPL-license.txt GPL3-license.txt \ @@ -220,7 +227,7 @@ INSTALL() rm -rf blender.desktop - addAppDeskbarSymlink $INSTALL_PATH/Blender Blender + addAppDeskbarSymlink $appsDir/Blender/Blender Blender } TEST() diff --git a/media-gfx/blender/patches/blender-2.78c.patchset b/media-gfx/blender/patches/blender-2.78c.patchset deleted file mode 100644 index 9ae4e22b0..000000000 --- a/media-gfx/blender/patches/blender-2.78c.patchset +++ /dev/null @@ -1,720 +0,0 @@ -From 2e4892faf4e721f3ad8ef2486037bdc8df03dd3a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= -Date: Wed, 1 Feb 2017 21:55:43 +0100 -Subject: Haiku supporting patch - - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8a48e6e..a993922 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -193,7 +193,7 @@ endif() - # Options - - # First platform spesific non-cached vars --if(UNIX AND NOT APPLE) -+if(UNIX AND NOT (APPLE OR HAIKU)) - set(WITH_X11 ON) - endif() - -@@ -859,7 +859,7 @@ set(CC_REMOVE_STRICT_FLAGS) - - # libraries to link the binary with passed to target_link_libraries() - # known as LLIBS to scons --set(PLATFORM_LINKLIBS "") -+set(PLATFORM_LINKLIBS "-lnetwork") - - # Added to linker flags in setup_liblinks - # - CMAKE_EXE_LINKER_FLAGS -diff --git a/build_files/cmake/Modules/FindFftw3.cmake b/build_files/cmake/Modules/FindFftw3.cmake -index 197d4aa..bb51040 100644 ---- a/build_files/cmake/Modules/FindFftw3.cmake -+++ b/build_files/cmake/Modules/FindFftw3.cmake -@@ -33,6 +33,8 @@ SET(_fftw3_SEARCH_DIRS - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(FFTW3_INCLUDE_DIR -diff --git a/build_files/cmake/Modules/FindGLEW.cmake b/build_files/cmake/Modules/FindGLEW.cmake -index 2f098d5..6910661 100644 ---- a/build_files/cmake/Modules/FindGLEW.cmake -+++ b/build_files/cmake/Modules/FindGLEW.cmake -@@ -30,6 +30,8 @@ ENDIF() - SET(_glew_SEARCH_DIRS - ${GLEW_ROOT_DIR} - /usr/local -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(GLEW_INCLUDE_DIR -diff --git a/build_files/cmake/Modules/FindIcuLinux.cmake b/build_files/cmake/Modules/FindIcuLinux.cmake -index e0e5873..cca1026 100644 ---- a/build_files/cmake/Modules/FindIcuLinux.cmake -+++ b/build_files/cmake/Modules/FindIcuLinux.cmake -@@ -36,6 +36,8 @@ SET(_icu_SEARCH_DIRS - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - # We don't need includes, only libs to link against... -diff --git a/build_files/cmake/Modules/FindLZO.cmake b/build_files/cmake/Modules/FindLZO.cmake -index a21aa0a..9086456 100644 ---- a/build_files/cmake/Modules/FindLZO.cmake -+++ b/build_files/cmake/Modules/FindLZO.cmake -@@ -33,6 +33,8 @@ SET(_lzo_SEARCH_DIRS - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(LZO_INCLUDE_DIR lzo/lzo1x.h -diff --git a/build_files/cmake/Modules/FindOpenColorIO.cmake b/build_files/cmake/Modules/FindOpenColorIO.cmake -index bd1ecac..e7495c7 100644 ---- a/build_files/cmake/Modules/FindOpenColorIO.cmake -+++ b/build_files/cmake/Modules/FindOpenColorIO.cmake -@@ -40,6 +40,8 @@ SET(_opencolorio_SEARCH_DIRS - /opt/local # DarwinPorts - /opt/csw # Blastwave - /opt/lib/ocio -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(OPENCOLORIO_INCLUDE_DIR -diff --git a/build_files/cmake/Modules/FindOpenEXR.cmake b/build_files/cmake/Modules/FindOpenEXR.cmake -index 41e60a7..021d9de 100644 ---- a/build_files/cmake/Modules/FindOpenEXR.cmake -+++ b/build_files/cmake/Modules/FindOpenEXR.cmake -@@ -52,6 +52,8 @@ SET(_openexr_SEARCH_DIRS - /opt/local # DarwinPorts - /opt/csw # Blastwave - /opt/lib/openexr -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(OPENEXR_INCLUDE_DIR -diff --git a/build_files/cmake/Modules/FindOpenImageIO.cmake b/build_files/cmake/Modules/FindOpenImageIO.cmake -index 789097d..86e362d 100644 ---- a/build_files/cmake/Modules/FindOpenImageIO.cmake -+++ b/build_files/cmake/Modules/FindOpenImageIO.cmake -@@ -36,6 +36,8 @@ SET(_openimageio_SEARCH_DIRS - /opt/local # DarwinPorts - /opt/csw # Blastwave - /opt/lib/oiio -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(OPENIMAGEIO_INCLUDE_DIR -diff --git a/build_files/cmake/Modules/FindOpenJPEG.cmake b/build_files/cmake/Modules/FindOpenJPEG.cmake -index d765103..48bd9e1 100644 ---- a/build_files/cmake/Modules/FindOpenJPEG.cmake -+++ b/build_files/cmake/Modules/FindOpenJPEG.cmake -@@ -33,6 +33,8 @@ SET(_openjpeg_SEARCH_DIRS - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(OPENJPEG_INCLUDE_DIR -diff --git a/build_files/cmake/Modules/FindPCRE.cmake b/build_files/cmake/Modules/FindPCRE.cmake -index ff4b726..999d404 100644 ---- a/build_files/cmake/Modules/FindPCRE.cmake -+++ b/build_files/cmake/Modules/FindPCRE.cmake -@@ -33,6 +33,8 @@ SET(_pcre_SEARCH_DIRS - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(PCRE_INCLUDE_DIR pcre.h -diff --git a/build_files/cmake/Modules/FindSDL2.cmake b/build_files/cmake/Modules/FindSDL2.cmake -index 2a835cf..75de7c6 100644 ---- a/build_files/cmake/Modules/FindSDL2.cmake -+++ b/build_files/cmake/Modules/FindSDL2.cmake -@@ -35,6 +35,9 @@ SET(_sdl2_SEARCH_DIRS - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -+ /system/lib # Haiku -+ /system/develop/headers # Haiku -+ - ) - - FIND_PATH(SDL2_INCLUDE_DIR -@@ -43,7 +46,7 @@ FIND_PATH(SDL2_INCLUDE_DIR - HINTS - ${_sdl2_SEARCH_DIRS} - PATH_SUFFIXES -- include/SDL2 include -+ include/SDL2 include SDL2 - ) - - FIND_LIBRARY(SDL2_LIBRARY -diff --git a/build_files/cmake/Modules/FindSndFile.cmake b/build_files/cmake/Modules/FindSndFile.cmake -index 1b685ea..a7c2022 100644 ---- a/build_files/cmake/Modules/FindSndFile.cmake -+++ b/build_files/cmake/Modules/FindSndFile.cmake -@@ -33,6 +33,8 @@ SET(_sndfile_SEARCH_DIRS - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(SNDFILE_INCLUDE_DIR sndfile.h -diff --git a/build_files/cmake/Modules/FindXML2.cmake b/build_files/cmake/Modules/FindXML2.cmake -index 40cc332..09237ee 100644 ---- a/build_files/cmake/Modules/FindXML2.cmake -+++ b/build_files/cmake/Modules/FindXML2.cmake -@@ -33,6 +33,8 @@ SET(_xml2_SEARCH_DIRS - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(XML2_INCLUDE_DIR libxml2/libxml/xpath.h -diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake -index ead4fd4..61971b4 100644 ---- a/build_files/cmake/macros.cmake -+++ b/build_files/cmake/macros.cmake -@@ -1525,6 +1525,7 @@ function(find_python_package - PATH_SUFFIXES - site-packages - dist-packages -+ vendor-packages - NO_DEFAULT_PATH - ) - -@@ -1535,6 +1536,8 @@ function(find_python_package - "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${package}', " - "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${package}', " - "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${package}', " -+ "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${package}', " -+ "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${package}', " - "\n" - "The 'WITH_PYTHON_INSTALL_${_upper_package}' option will be ignored when installing Python.\n" - "The build will be usable, only add-ons that depend on this package won't be functional." -diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake -index e33141f..ad0d20a 100644 ---- a/build_files/cmake/platform/platform_unix.cmake -+++ b/build_files/cmake/platform/platform_unix.cmake -@@ -358,7 +358,11 @@ if(WITH_OPENSUBDIV OR WITH_CYCLES_OPENSUBDIV) - endif() - - # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed --list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm) -+if(HAIKU) -+ list(APPEND PLATFORM_LINKLIBS -lm -lnetwork) -+else() -+ list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm) -+endif() - - find_package(Threads REQUIRED) - list(APPEND PLATFORM_LINKLIBS ${CMAKE_THREAD_LIBS_INIT}) -diff --git a/extern/glog/src/config.h b/extern/glog/src/config.h -index f5c9c0b..2703b7b 100644 ---- a/extern/glog/src/config.h -+++ b/extern/glog/src/config.h -@@ -14,4 +14,6 @@ - #include "windows/config.h" - #elif defined(__GNU__) - #include "config_hurd.h" -+#elif defined(__HAIKU__) -+ #include "config_haiku.h" - #endif -diff --git a/extern/glog/src/config_haiku.h b/extern/glog/src/config_haiku.h -new file mode 100644 -index 0000000..7d19272 ---- /dev/null -+++ b/extern/glog/src/config_haiku.h -@@ -0,0 +1,172 @@ -+/* src/config.h. Generated from config.h.in by configure. */ -+/* src/config.h.in. Generated from configure.ac by autoheader. */ -+ -+/* Namespace for Google classes */ -+#define GOOGLE_NAMESPACE google -+ -+/* Define if you have the `dladdr' function */ -+/* #undef HAVE_DLADDR */ -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_DLFCN_H 1 -+ -+/* Define to 1 if you have the header file. */ -+#undef HAVE_EXECINFO_H -+ -+/* Define if you have the `fcntl' function */ -+#define HAVE_FCNTL 1 -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_GLOB_H 1 -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_INTTYPES_H 1 -+ -+/* Define to 1 if you have the `pthread' library (-lpthread). */ -+/* #undef HAVE_LIBPTHREAD */ -+ -+/* Define to 1 if you have the header file. */ -+/* #undef HAVE_LIBUNWIND_H */ -+ -+/* define if you have google gflags library */ -+#define HAVE_LIB_GFLAGS 1 -+ -+/* define if you have google gmock library */ -+/* #undef HAVE_LIB_GMOCK */ -+ -+/* define if you have google gtest library */ -+/* #undef HAVE_LIB_GTEST */ -+ -+/* define if you have libunwind */ -+/* #undef HAVE_LIB_UNWIND */ -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_MEMORY_H 1 -+ -+/* define if the compiler implements namespaces */ -+#define HAVE_NAMESPACES 1 -+ -+/* Define if you have the 'pread' function */ -+#define HAVE_PREAD 1 -+ -+/* Define if you have POSIX threads libraries and header files. */ -+#define HAVE_PTHREAD 1 -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_PWD_H 1 -+ -+/* Define if you have the 'pwrite' function */ -+#define HAVE_PWRITE 1 -+ -+/* define if the compiler implements pthread_rwlock_* */ -+#define HAVE_RWLOCK 1 -+ -+/* Define if you have the `sigaltstack' function */ -+#define HAVE_SIGALTSTACK 1 -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_STDINT_H 1 -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_STDLIB_H 1 -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_STRINGS_H 1 -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_STRING_H 1 -+ -+/* Define to 1 if you have the header file. */ -+/* #undef HAVE_SYSCALL_H */ -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_SYSLOG_H 1 -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_SYS_STAT_H 1 -+ -+/* Define to 1 if you have the header file. */ -+/* #undef HAVE_SYS_SYSCALL_H */ -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_SYS_TIME_H 1 -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_SYS_TYPES_H 1 -+ -+/* Define to 1 if you have the header file. */ -+/* #undef HAVE_SYS_UCONTEXT_H */ -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_SYS_UTSNAME_H 1 -+ -+/* Define to 1 if you have the header file. */ -+/* #undef HAVE_UCONTEXT_H */ -+ -+/* Define to 1 if you have the header file. */ -+#define HAVE_UNISTD_H 1 -+ -+/* define if the compiler supports using expression for operator */ -+#define HAVE_USING_OPERATOR 1 -+ -+/* define if your compiler has __attribute__ */ -+#define HAVE___ATTRIBUTE__ 1 -+ -+/* define if your compiler has __builtin_expect */ -+#define HAVE___BUILTIN_EXPECT 1 -+ -+/* define if your compiler has __sync_val_compare_and_swap */ -+/* #undef HAVE___SYNC_VAL_COMPARE_AND_SWAP */ -+ -+/* Name of package */ -+#define PACKAGE "glog" -+ -+/* Define to the address where bug reports for this package should be sent. */ -+#define PACKAGE_BUGREPORT "opensource@google.com" -+ -+/* Define to the full name of this package. */ -+#define PACKAGE_NAME "glog" -+ -+/* Define to the full name and version of this package. */ -+#define PACKAGE_STRING "glog 0.3.2" -+ -+/* Define to the one symbol short name of this package. */ -+#define PACKAGE_TARNAME "glog" -+ -+/* Define to the version of this package. */ -+#define PACKAGE_VERSION "0.3.2" -+ -+/* How to access the PC from a struct ucontext */ -+/* #define PC_FROM_UCONTEXT uc_mcontext.gregs[REG_RIP] */ -+ -+/* Define to necessary symbol if this constant uses a non-standard name on -+ your system. */ -+/* #undef PTHREAD_CREATE_JOINABLE */ -+ -+/* The size of `void *', as computed by sizeof. */ -+#define SIZEOF_VOID_P 8 -+ -+/* Define to 1 if you have the ANSI C header files. */ -+/* #undef STDC_HEADERS */ -+ -+#define STDC_HEADERS 1 -+/* the namespace where STL code like vector<> is defined */ -+#define STL_NAMESPACE std -+ -+/* location of source code */ -+#define TEST_SRC_DIR "." -+ -+/* Version number of package */ -+#define VERSION "0.3.2" -+ -+/* Stops putting the code inside the Google namespace */ -+#define _END_GOOGLE_NAMESPACE_ } -+ -+/* Puts following code inside the Google namespace */ -+#define _START_GOOGLE_NAMESPACE_ namespace google { -+ -+/* isn't getting defined by configure script when clang compilers are used -+ and cuases compilation errors in stactrace/unwind modules */ -+#ifdef __clang__ -+# define NO_FRAME_POINTER -+#endif -diff --git a/intern/guardedalloc/intern/mallocn_intern.h b/intern/guardedalloc/intern/mallocn_intern.h -index 3f7e462..38abccb 100644 ---- a/intern/guardedalloc/intern/mallocn_intern.h -+++ b/intern/guardedalloc/intern/mallocn_intern.h -@@ -63,6 +63,9 @@ - #elif defined(WIN32) - # include - # define malloc_usable_size _msize -+#elif defined(__HAIKU__) -+# include -+size_t malloc_usable_size(void *ptr); - #else - # pragma message "We don't know how to use malloc_usable_size on your platform" - # undef USE_MALLOC_USABLE_SIZE -diff --git a/intern/libmv/libmv/numeric/numeric.h b/intern/libmv/libmv/numeric/numeric.h -index a42dab8..cd3c5e3 100644 ---- a/intern/libmv/libmv/numeric/numeric.h -+++ b/intern/libmv/libmv/numeric/numeric.h -@@ -35,7 +35,7 @@ - - #if !defined(__MINGW64__) - # if defined(_WIN32) || defined(__APPLE__) || \ -- defined(__FreeBSD__) || defined(__NetBSD__) -+ defined(__FreeBSD__) || defined(__NetBSD__) || defined(__HAIKU__) - static void sincos(double x, double *sinx, double *cosx) { - *sinx = sin(x); - *cosx = cos(x); -diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c -index 264d87b..93e3c88 100644 ---- a/source/blender/blenkernel/intern/bvhutils.c -+++ b/source/blender/blenkernel/intern/bvhutils.c -@@ -51,6 +51,16 @@ static ThreadRWMutex cache_rwlock = BLI_RWLOCK_INITIALIZER; - /* -------------------------------------------------------------------- */ - /** \name Local Callbacks - * \{ */ -+ -+#ifdef __HAIKU__ -+static pthread_once_t sInitOnce = PTHREAD_ONCE_INIT; -+ -+static void -+init_cache_rwlock() -+{ -+ pthread_rwlock_init(&cache_rwlock, NULL); -+} -+#endif - - /* Math stuff for ray casting on mesh faces and for nearest surface */ - -@@ -1299,6 +1309,9 @@ void bvhcache_insert(BVHCache **cache_p, BVHTree *tree, int type) - */ - void bvhcache_init(BVHCache **cache_p) - { -+#ifdef __HAIKU__ -+ pthread_once(&sInitOnce, &init_cache_rwlock); -+#endif - *cache_p = NULL; - } - -diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c -index 580842f..6c4cc40 100644 ---- a/source/blender/blenkernel/intern/font.c -+++ b/source/blender/blenkernel/intern/font.c -@@ -64,6 +64,16 @@ - - static ThreadRWMutex vfont_rwlock = BLI_RWLOCK_INITIALIZER; - -+#ifdef __HAIKU__ -+static pthread_once_t sInitOnce = PTHREAD_ONCE_INIT; -+ -+static void -+init_vfont_rwlock() -+{ -+ pthread_rwlock_init(&vfont_rwlock, NULL); -+} -+#endif -+ - /* The vfont code */ - void BKE_vfont_free_data(struct VFont *vfont) - { -@@ -655,6 +665,10 @@ bool BKE_vfont_to_curve_ex(Main *bmain, Object *ob, int mode, ListBase *r_nubase - - BLI_assert(ob->type == OB_FONT); - -+#ifdef __HAIKU__ -+ pthread_once(&sInitOnce, &init_vfont_rwlock); -+#endif -+ - /* Set font data */ - vfont = cu->vfont; - -diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c -index efaf1f9..59fab74 100644 ---- a/source/blender/blenkernel/intern/particle_system.c -+++ b/source/blender/blenkernel/intern/particle_system.c -@@ -105,6 +105,16 @@ - - static ThreadRWMutex psys_bvhtree_rwlock = BLI_RWLOCK_INITIALIZER; - -+#ifdef __HAIKU__ -+static pthread_once_t sInitOnce = PTHREAD_ONCE_INIT; -+ -+static void -+init_psys_bvhtree_rwlock() -+{ -+ pthread_rwlock_init(&psys_bvhtree_rwlock, NULL); -+} -+#endif -+ - /************************************************/ - /* Reacting to system events */ - /************************************************/ -@@ -4156,6 +4166,10 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys, cons - ParticleSettings *part = psys->part; - float cfra; - -+#ifdef __HAIKU__ -+ pthread_once(&sInitOnce, &init_psys_bvhtree_rwlock); -+#endif -+ - /* drawdata is outdated after ANY change */ - if (psys->pdd) psys->pdd->flag &= ~PARTICLE_DRAW_DATA_UPDATED; - -diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c -index 88d3311..0e862b1 100644 ---- a/source/blender/blenkernel/intern/subsurf_ccg.c -+++ b/source/blender/blenkernel/intern/subsurf_ccg.c -@@ -91,6 +91,17 @@ - static ThreadRWMutex loops_cache_rwlock = BLI_RWLOCK_INITIALIZER; - static ThreadRWMutex origindex_cache_rwlock = BLI_RWLOCK_INITIALIZER; - -+#ifdef __HAIKU__ -+static pthread_once_t sInitOnce = PTHREAD_ONCE_INIT; -+ -+static void -+init_cache_rwlock() -+{ -+ pthread_rwlock_init(&loops_cache_rwlock, NULL); -+ pthread_rwlock_init(&origindex_cache_rwlock, NULL); -+} -+#endif -+ - static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, - int drawInteriorEdges, - int useSubsurfUv, -@@ -4675,6 +4686,10 @@ static void set_ccgdm_all_geometry(CCGDerivedMesh *ccgdm, - MPoly *mpoly = NULL; - bool has_edge_cd; - -+#ifdef __HAIKU__ -+ pthread_once(&sInitOnce, &init_cache_rwlock); -+#endif -+ - edgeSize = ccgSubSurf_getEdgeSize(ss); - gridSize = ccgSubSurf_getGridSize(ss); - gridFaces = gridSize - 1; -diff --git a/source/blender/blenlib/BLI_sys_types.h b/source/blender/blenlib/BLI_sys_types.h -index 7929e1d..562bfc2 100644 ---- a/source/blender/blenlib/BLI_sys_types.h -+++ b/source/blender/blenlib/BLI_sys_types.h -@@ -47,7 +47,7 @@ - extern "C" { - #endif - --#if defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__) || defined(__GNU__) -+#if defined(__linux__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__) || defined(__GNU__) || defined(__HAIKU__) - - /* Linux-i386, Linux-Alpha, Linux-ppc */ - #include -diff --git a/source/blender/blenlib/BLI_threads.h b/source/blender/blenlib/BLI_threads.h -index 0b1b4d8..a302506 100644 ---- a/source/blender/blenlib/BLI_threads.h -+++ b/source/blender/blenlib/BLI_threads.h -@@ -127,7 +127,11 @@ void BLI_spin_end(SpinLock *spin); - #define THREAD_LOCK_READ 1 - #define THREAD_LOCK_WRITE 2 - -+#ifdef __HAIKU__ -+#define BLI_RWLOCK_INITIALIZER {} -+#else - #define BLI_RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER -+#endif - - typedef pthread_rwlock_t ThreadRWMutex; - -diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c -index db4b3bc..196a8ff 100644 ---- a/source/blender/blenlib/intern/fileops.c -+++ b/source/blender/blenlib/intern/fileops.c -@@ -617,6 +617,11 @@ static int recursive_operation(const char *startfrom, const char *startto, - for (i = 0; i < n; i++) { - const struct dirent * const dirent = dirlist[i]; - -+#ifdef __HAIKU__ -+ struct stat st; -+ char filename[512]; -+#endif -+ - if (FILENAME_IS_CURRPAR(dirent->d_name)) - continue; - -@@ -624,7 +629,14 @@ static int recursive_operation(const char *startfrom, const char *startto, - if (to) - join_dirfile_alloc(&to_path, &to_alloc_len, to, dirent->d_name); - -+#ifdef __HAIKU__ -+ snprintf(filename, sizeof(filename), "%s/%s", startfrom, dirent->d_name); -+ lstat(filename, &st); -+ if (S_ISDIR(st.st_mode)) { -+#else -+ - if (dirent->d_type == DT_DIR) { -+#endif - /* recursively dig into a subfolder */ - ret = recursive_operation(from_path, to_path, callback_dir_pre, callback_file, callback_dir_post); - } -diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c -index 3edc00a..30e9ab1 100644 ---- a/source/blender/blenlib/intern/storage.c -+++ b/source/blender/blenlib/intern/storage.c -@@ -37,7 +37,7 @@ - - #include - --#if defined(__NetBSD__) || defined(__DragonFly__) || defined(__sun__) || defined(__sun) -+#if defined(__NetBSD__) || defined(__DragonFly__) || defined(__sun__) || defined(__sun) || defined(__HAIKU__) - /* Other modern unix os's should probably use this also */ - # include - # define USE_STATFS_STATVFS --- -2.12.2 - - -From 6b0e182a54b090b5c4cf0b80724c5bbec1069560 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= -Date: Wed, 21 Jun 2017 15:56:25 +0200 -Subject: Build fix - - -diff --git a/source/blender/blenlib/BLI_math_base.h b/source/blender/blenlib/BLI_math_base.h -index e97a250..bc45b8a 100644 ---- a/source/blender/blenlib/BLI_math_base.h -+++ b/source/blender/blenlib/BLI_math_base.h -@@ -86,7 +86,7 @@ static const int NAN_INT = 0x7FC00000; - #endif - - /* do not redefine functions from C99, POSIX.1-2001 or MSVC12 (partial C99) */ --#if !(defined(_ISOC99_SOURCE) || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L) || defined(_MSC_VER)) -+#if !(defined(_ISOC99_SOURCE) || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L) || defined(_MSC_VER) || defined(__HAIKU__)) - - #ifndef sqrtf - #define sqrtf(a) ((float)sqrt(a)) --- -2.12.2 - - -From c26b8564a028372d74eadd44be5c82be1bdf6811 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= -Date: Wed, 21 Jun 2017 17:26:46 +0200 -Subject: Searchpaths for cmake - - -diff --git a/build_files/cmake/Modules/FindEigen3.cmake b/build_files/cmake/Modules/FindEigen3.cmake -index 400e8eb..fdd7936 100644 ---- a/build_files/cmake/Modules/FindEigen3.cmake -+++ b/build_files/cmake/Modules/FindEigen3.cmake -@@ -29,6 +29,8 @@ SET(_eigen3_SEARCH_DIRS - /sw # Fink - /opt/local # DarwinPorts - /opt/csw # Blastwave -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_PATH(EIGEN3_INCLUDE_DIR -@@ -38,7 +40,7 @@ FIND_PATH(EIGEN3_INCLUDE_DIR - HINTS - ${_eigen3_SEARCH_DIRS} - PATH_SUFFIXES -- include/eigen3 -+ include/eigen3 Eigen - ) - - # handle the QUIETLY and REQUIRED arguments and set EIGEN3_FOUND to TRUE if -diff --git a/build_files/cmake/Modules/FindHDF5.cmake b/build_files/cmake/Modules/FindHDF5.cmake -index 56ceda8..990a594 100644 ---- a/build_files/cmake/Modules/FindHDF5.cmake -+++ b/build_files/cmake/Modules/FindHDF5.cmake -@@ -31,6 +31,8 @@ SET(_hdf5_SEARCH_DIRS - /opt/local # DarwinPorts - /opt/csw # Blastwave - /opt/lib/hdf5 -+ /system/lib # Haiku -+ /system/develop/headers # Haiku - ) - - FIND_LIBRARY(HDF5_LIBRARY --- -2.12.2 -