Merge pull request #77359 from veprbl/pr/blender_darwin_fix
blender: fix on darwin
This commit is contained in:
commit
4cb3041e49
@ -39,6 +39,5 @@ stdenv.mkDerivation rec {
|
|||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
maintainers = [ maintainers.goibhniu ];
|
maintainers = [ maintainers.goibhniu ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
badPlatforms = [ "x86_64-darwin" ];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
105
pkgs/applications/misc/blender/darwin.patch
Normal file
105
pkgs/applications/misc/blender/darwin.patch
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
diff a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
|
||||||
|
--- a/build_files/cmake/platform/platform_apple.cmake
|
||||||
|
+++ b/build_files/cmake/platform/platform_apple.cmake
|
||||||
|
@@ -35,7 +35,6 @@ else()
|
||||||
|
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
|
||||||
|
endif()
|
||||||
|
if(NOT EXISTS "${LIBDIR}/")
|
||||||
|
- message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WITH_OPENAL)
|
||||||
|
@@ -79,7 +78,7 @@ endif()
|
||||||
|
if(WITH_CODEC_SNDFILE)
|
||||||
|
set(LIBSNDFILE ${LIBDIR}/sndfile)
|
||||||
|
set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
|
||||||
|
- set(LIBSNDFILE_LIBRARIES sndfile FLAC ogg vorbis vorbisenc)
|
||||||
|
+ set(LIBSNDFILE_LIBRARIES sndfile)
|
||||||
|
set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib ${LIBDIR}/ffmpeg/lib) # TODO, deprecate
|
||||||
|
endif()
|
||||||
|
|
||||||
|
@@ -90,7 +89,7 @@ if(WITH_PYTHON)
|
||||||
|
# normally cached but not since we include them with blender
|
||||||
|
set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
|
||||||
|
set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
|
||||||
|
- set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a)
|
||||||
|
+ set(PYTHON_LIBRARY "${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.dylib")
|
||||||
|
set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
|
||||||
|
# set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
|
||||||
|
else()
|
||||||
|
@@ -155,10 +154,7 @@ if(WITH_CODEC_FFMPEG)
|
||||||
|
set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
|
||||||
|
set(FFMPEG_LIBRARIES
|
||||||
|
avcodec avdevice avformat avutil
|
||||||
|
- mp3lame swscale x264 xvidcore
|
||||||
|
- theora theoradec theoraenc
|
||||||
|
- vorbis vorbisenc vorbisfile ogg opus
|
||||||
|
- vpx swresample)
|
||||||
|
+ swscale swresample)
|
||||||
|
set(FFMPEG_LIBPATH ${FFMPEG}/lib)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
@@ -199,14 +195,14 @@ if(WITH_OPENCOLLADA)
|
||||||
|
set(OPENCOLLADA ${LIBDIR}/opencollada)
|
||||||
|
|
||||||
|
set(OPENCOLLADA_INCLUDE_DIRS
|
||||||
|
- ${LIBDIR}/opencollada/include/COLLADAStreamWriter
|
||||||
|
- ${LIBDIR}/opencollada/include/COLLADABaseUtils
|
||||||
|
- ${LIBDIR}/opencollada/include/COLLADAFramework
|
||||||
|
- ${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader
|
||||||
|
- ${LIBDIR}/opencollada/include/GeneratedSaxParser
|
||||||
|
+ ${LIBDIR}/opencollada/include/opencollada/COLLADAStreamWriter
|
||||||
|
+ ${LIBDIR}/opencollada/include/opencollada/COLLADABaseUtils
|
||||||
|
+ ${LIBDIR}/opencollada/include/opencollada/COLLADAFramework
|
||||||
|
+ ${LIBDIR}/opencollada/include/opencollada/COLLADASaxFrameworkLoader
|
||||||
|
+ ${LIBDIR}/opencollada/include/opencollada/GeneratedSaxParser
|
||||||
|
)
|
||||||
|
|
||||||
|
- set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
|
||||||
|
+ set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib/opencollada)
|
||||||
|
set(OPENCOLLADA_LIBRARIES
|
||||||
|
OpenCOLLADASaxFrameworkLoader
|
||||||
|
-lOpenCOLLADAFramework
|
||||||
|
@@ -215,7 +211,7 @@ if(WITH_OPENCOLLADA)
|
||||||
|
-lMathMLSolver
|
||||||
|
-lGeneratedSaxParser
|
||||||
|
-lbuffer -lftoa -lUTF
|
||||||
|
- ${OPENCOLLADA_LIBPATH}/libxml2.a
|
||||||
|
+ xml2
|
||||||
|
)
|
||||||
|
# PCRE is bundled with openCollada
|
||||||
|
# set(PCRE ${LIBDIR}/pcre)
|
||||||
|
@@ -276,14 +272,13 @@ if(WITH_BOOST)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
|
||||||
|
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WITH_OPENIMAGEIO)
|
||||||
|
set(OPENIMAGEIO ${LIBDIR}/openimageio)
|
||||||
|
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
|
||||||
|
set(OPENIMAGEIO_LIBRARIES
|
||||||
|
- ${OPENIMAGEIO}/lib/libOpenImageIO.a
|
||||||
|
+ ${OPENIMAGEIO}/lib/libOpenImageIO.dylib
|
||||||
|
${PNG_LIBRARIES}
|
||||||
|
${JPEG_LIBRARIES}
|
||||||
|
${TIFF_LIBRARY}
|
||||||
|
@@ -306,7 +301,7 @@ endif()
|
||||||
|
if(WITH_OPENCOLORIO)
|
||||||
|
set(OPENCOLORIO ${LIBDIR}/opencolorio)
|
||||||
|
set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
|
||||||
|
- set(OPENCOLORIO_LIBRARIES OpenColorIO tinyxml yaml-cpp)
|
||||||
|
+ set(OPENCOLORIO_LIBRARIES OpenColorIO)
|
||||||
|
set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
@@ -443,7 +438,7 @@ else()
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
|
||||||
|
+if(FALSE)
|
||||||
|
# Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
|
||||||
|
endif()
|
@ -1,13 +1,14 @@
|
|||||||
{ config, stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
|
{ config, stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
|
||||||
, ilmbase, libXi, libX11, libXext, libXrender
|
, ilmbase, libXi, libX11, libXext, libXrender
|
||||||
, libjpeg, libpng, libsamplerate, libsndfile
|
, libjpeg, libpng, libsamplerate, libsndfile
|
||||||
, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimageio, openjpeg_1, python3Packages
|
, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimageio2, openjpeg, python3Packages
|
||||||
, openvdb, libXxf86vm, tbb
|
, openvdb, libXxf86vm, tbb
|
||||||
, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
|
, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
|
||||||
, jackaudioSupport ? false, libjack2
|
, jackaudioSupport ? false, libjack2
|
||||||
, cudaSupport ? config.cudaSupport or false, cudatoolkit
|
, cudaSupport ? config.cudaSupport or false, cudatoolkit
|
||||||
, colladaSupport ? true, opencollada
|
, colladaSupport ? true, opencollada
|
||||||
, enableNumpy ? false, makeWrapper
|
, enableNumpy ? false, makeWrapper
|
||||||
|
, pugixml, SDL, Cocoa, CoreGraphics, ForceFeedback, OpenAL, OpenGL
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
@ -23,22 +24,53 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1zl0ar95qkxsrbqw9miz2hrjijlqjl06vg3clfk9rm7krr2l3b2j";
|
sha256 = "1zl0ar95qkxsrbqw9miz2hrjijlqjl06vg3clfk9rm7krr2l3b2j";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = lib.optional stdenv.isDarwin ./darwin.patch;
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
|
nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ boost ffmpeg gettext glew ilmbase
|
[ boost ffmpeg gettext glew ilmbase
|
||||||
libXi libX11 libXext libXrender
|
freetype libjpeg libpng libsamplerate libsndfile libtiff
|
||||||
freetype libjpeg libpng libsamplerate libsndfile libtiff libGLU libGL openal
|
opencolorio openexr openimageio2 openjpeg python zlib fftw jemalloc
|
||||||
opencolorio openexr openimageio openjpeg_1 python zlib fftw jemalloc
|
|
||||||
(opensubdiv.override { inherit cudaSupport; })
|
(opensubdiv.override { inherit cudaSupport; })
|
||||||
openvdb libXxf86vm tbb
|
tbb
|
||||||
makeWrapper
|
makeWrapper
|
||||||
]
|
]
|
||||||
|
++ (if (!stdenv.isDarwin) then [
|
||||||
|
libXi libX11 libXext libXrender
|
||||||
|
libGLU libGL openal
|
||||||
|
libXxf86vm
|
||||||
|
# OpenVDB currently doesn't build on darwin
|
||||||
|
openvdb
|
||||||
|
]
|
||||||
|
else [
|
||||||
|
pugixml SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
|
||||||
|
])
|
||||||
++ optional jackaudioSupport libjack2
|
++ optional jackaudioSupport libjack2
|
||||||
++ optional cudaSupport cudatoolkit
|
++ optional cudaSupport cudatoolkit
|
||||||
++ optional colladaSupport opencollada;
|
++ optional colladaSupport opencollada;
|
||||||
|
|
||||||
postPatch =
|
postPatch =
|
||||||
''
|
if stdenv.isDarwin then ''
|
||||||
|
: > build_files/cmake/platform/platform_apple_xcode.cmake
|
||||||
|
substituteInPlace source/creator/CMakeLists.txt \
|
||||||
|
--replace '${"$"}{LIBDIR}/python' \
|
||||||
|
'${python}'
|
||||||
|
substituteInPlace build_files/cmake/platform/platform_apple.cmake \
|
||||||
|
--replace '${"$"}{LIBDIR}/python' \
|
||||||
|
'${python}' \
|
||||||
|
--replace '${"$"}{LIBDIR}/opencollada' \
|
||||||
|
'${opencollada}' \
|
||||||
|
--replace '${"$"}{PYTHON_LIBPATH}/site-packages/numpy' \
|
||||||
|
'${python3Packages.numpy}/${python.sitePackages}/numpy' \
|
||||||
|
--replace 'set(OPENJPEG_INCLUDE_DIRS ' \
|
||||||
|
'set(OPENJPEG_INCLUDE_DIRS "'$(echo ${openjpeg.dev}/include/openjpeg-*)'") #' \
|
||||||
|
--replace 'set(OPENJPEG_LIBRARIES ' \
|
||||||
|
'set(OPENJPEG_LIBRARIES "${openjpeg}/lib/libopenjp2.dylib") #' \
|
||||||
|
--replace 'set(OPENIMAGEIO ' \
|
||||||
|
'set(OPENIMAGEIO "${openimageio2.out}") #' \
|
||||||
|
--replace 'set(OPENEXR_INCLUDE_DIRS ' \
|
||||||
|
'set(OPENEXR_INCLUDE_DIRS "${openexr.dev}/include/OpenEXR") #'
|
||||||
|
'' else ''
|
||||||
substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
|
substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -48,7 +80,7 @@ stdenv.mkDerivation rec {
|
|||||||
"-DWITH_CODEC_SNDFILE=ON"
|
"-DWITH_CODEC_SNDFILE=ON"
|
||||||
"-DWITH_INSTALL_PORTABLE=OFF"
|
"-DWITH_INSTALL_PORTABLE=OFF"
|
||||||
"-DWITH_FFTW3=ON"
|
"-DWITH_FFTW3=ON"
|
||||||
#"-DWITH_SDL=ON"
|
"-DWITH_SDL=OFF"
|
||||||
"-DWITH_OPENCOLORIO=ON"
|
"-DWITH_OPENCOLORIO=ON"
|
||||||
"-DWITH_OPENSUBDIV=ON"
|
"-DWITH_OPENSUBDIV=ON"
|
||||||
"-DPYTHON_LIBRARY=${python.libPrefix}m"
|
"-DPYTHON_LIBRARY=${python.libPrefix}m"
|
||||||
@ -61,10 +93,18 @@ stdenv.mkDerivation rec {
|
|||||||
"-DWITH_OPENVDB=ON"
|
"-DWITH_OPENVDB=ON"
|
||||||
"-DWITH_TBB=ON"
|
"-DWITH_TBB=ON"
|
||||||
"-DWITH_IMAGE_OPENJPEG=ON"
|
"-DWITH_IMAGE_OPENJPEG=ON"
|
||||||
|
"-DWITH_OPENCOLLADA=${if colladaSupport then "ON" else "OFF"}"
|
||||||
]
|
]
|
||||||
|
++ optionals stdenv.isDarwin [
|
||||||
|
"-DWITH_CYCLES_OSL=OFF" # requires LLVM
|
||||||
|
"-DWITH_OPENVDB=OFF" # OpenVDB currently doesn't build on darwin
|
||||||
|
|
||||||
|
"-DLIBDIR=/does-not-exist"
|
||||||
|
]
|
||||||
|
# Clang doesn't support "-export-dynamic"
|
||||||
|
++ optional stdenv.cc.isClang "-DPYTHON_LINKFLAGS="
|
||||||
++ optional jackaudioSupport "-DWITH_JACK=ON"
|
++ optional jackaudioSupport "-DWITH_JACK=ON"
|
||||||
++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON"
|
++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON";
|
||||||
++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";
|
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
|
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
|
||||||
|
|
||||||
@ -95,7 +135,7 @@ stdenv.mkDerivation rec {
|
|||||||
# They comment two licenses: GPLv2 and Blender License, but they
|
# They comment two licenses: GPLv2 and Blender License, but they
|
||||||
# say: "We've decided to cancel the BL offering for an indefinite period."
|
# say: "We've decided to cancel the BL offering for an indefinite period."
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
||||||
maintainers = [ maintainers.goibhniu ];
|
maintainers = [ maintainers.goibhniu ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -18211,7 +18211,9 @@ in
|
|||||||
|
|
||||||
bleachbit = callPackage ../applications/misc/bleachbit { };
|
bleachbit = callPackage ../applications/misc/bleachbit { };
|
||||||
|
|
||||||
blender = callPackage ../applications/misc/blender { };
|
blender = callPackage ../applications/misc/blender {
|
||||||
|
inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL;
|
||||||
|
};
|
||||||
|
|
||||||
bluefish = callPackage ../applications/editors/bluefish {
|
bluefish = callPackage ../applications/editors/bluefish {
|
||||||
gtk = gtk3;
|
gtk = gtk3;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user