11{ config , stdenv , lib , fetchurl , boost , cmake , ffmpeg , gettext , glew
22, ilmbase , libXi , libX11 , libXext , libXrender
33, libjpeg , libpng , libsamplerate , libsndfile
4- , libtiff , libGLU , libGL , openal , opencolorio , openexr , openimageio , openjpeg_1 , python3Packages
4+ , libtiff , libGLU , libGL , openal , opencolorio , openexr , openimageio2 , openjpeg , python3Packages
55, openvdb , libXxf86vm , tbb
66, zlib , fftw , opensubdiv , freetype , jemalloc , ocl-icd , addOpenGLRunpath
77, jackaudioSupport ? false , libjack2
88, cudaSupport ? config . cudaSupport or false , cudatoolkit
99, colladaSupport ? true , opencollada
1010, enableNumpy ? false , makeWrapper
11+ , pugixml , SDL , Cocoa , CoreGraphics , ForceFeedback , OpenAL , OpenGL
1112} :
1213
1314with lib ;
@@ -23,22 +24,53 @@ stdenv.mkDerivation rec {
2324 sha256 = "1zl0ar95qkxsrbqw9miz2hrjijlqjl06vg3clfk9rm7krr2l3b2j" ;
2425 } ;
2526
27+ patches = lib . optional stdenv . isDarwin ./darwin.patch ;
28+
2629 nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath ;
2730 buildInputs =
2831 [ boost ffmpeg gettext glew ilmbase
29- libXi libX11 libXext libXrender
30- freetype libjpeg libpng libsamplerate libsndfile libtiff libGLU libGL openal
31- opencolorio openexr openimageio openjpeg_1 python zlib fftw jemalloc
32+ freetype libjpeg libpng libsamplerate libsndfile libtiff
33+ opencolorio openexr openimageio2 openjpeg python zlib fftw jemalloc
3234 ( opensubdiv . override { inherit cudaSupport ; } )
33- openvdb libXxf86vm tbb
35+ tbb
3436 makeWrapper
3537 ]
38+ ++ ( if ( ! stdenv . isDarwin ) then [
39+ libXi libX11 libXext libXrender
40+ libGLU libGL openal
41+ libXxf86vm
42+ # OpenVDB currently doesn't build on darwin
43+ openvdb
44+ ]
45+ else [
46+ pugixml SDL Cocoa CoreGraphics ForceFeedback OpenAL OpenGL
47+ ] )
3648 ++ optional jackaudioSupport libjack2
3749 ++ optional cudaSupport cudatoolkit
3850 ++ optional colladaSupport opencollada ;
3951
4052 postPatch =
41- ''
53+ if stdenv . isDarwin then ''
54+ : > build_files/cmake/platform/platform_apple_xcode.cmake
55+ substituteInPlace source/creator/CMakeLists.txt \
56+ --replace '${ "$" } {LIBDIR}/python' \
57+ '${ python } '
58+ substituteInPlace build_files/cmake/platform/platform_apple.cmake \
59+ --replace '${ "$" } {LIBDIR}/python' \
60+ '${ python } ' \
61+ --replace '${ "$" } {LIBDIR}/opencollada' \
62+ '${ opencollada } ' \
63+ --replace '${ "$" } {PYTHON_LIBPATH}/site-packages/numpy' \
64+ '${ python3Packages . numpy } /${ python . sitePackages } /numpy' \
65+ --replace 'set(OPENJPEG_INCLUDE_DIRS ' \
66+ 'set(OPENJPEG_INCLUDE_DIRS "'$(echo ${ openjpeg . dev } /include/openjpeg-*)'") #' \
67+ --replace 'set(OPENJPEG_LIBRARIES ' \
68+ 'set(OPENJPEG_LIBRARIES "${ openjpeg } /lib/libopenjp2.dylib") #' \
69+ --replace 'set(OPENIMAGEIO ' \
70+ 'set(OPENIMAGEIO "${ openimageio2 . out } ") #' \
71+ --replace 'set(OPENEXR_INCLUDE_DIRS ' \
72+ 'set(OPENEXR_INCLUDE_DIRS "${ openexr . dev } /include/OpenEXR") #'
73+ '' else ''
4274 substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ ocl-icd } /lib/libOpenCL.so"'
4375 '' ;
4476
@@ -48,7 +80,7 @@ stdenv.mkDerivation rec {
4880 "-DWITH_CODEC_SNDFILE=ON"
4981 "-DWITH_INSTALL_PORTABLE=OFF"
5082 "-DWITH_FFTW3=ON"
51- # "-DWITH_SDL=ON "
83+ "-DWITH_SDL=OFF "
5284 "-DWITH_OPENCOLORIO=ON"
5385 "-DWITH_OPENSUBDIV=ON"
5486 "-DPYTHON_LIBRARY=${ python . libPrefix } m"
@@ -61,10 +93,18 @@ stdenv.mkDerivation rec {
6193 "-DWITH_OPENVDB=ON"
6294 "-DWITH_TBB=ON"
6395 "-DWITH_IMAGE_OPENJPEG=ON"
96+ "-DWITH_OPENCOLLADA=${ if colladaSupport then "ON" else "OFF" } "
97+ ]
98+ ++ optionals stdenv . isDarwin [
99+ "-DWITH_CYCLES_OSL=OFF" # requires LLVM
100+ "-DWITH_OPENVDB=OFF" # OpenVDB currently doesn't build on darwin
101+
102+ "-DLIBDIR=/does-not-exist"
64103 ]
104+ # Clang doesn't support "-export-dynamic"
105+ ++ optional stdenv . cc . isClang "-DPYTHON_LINKFLAGS="
65106 ++ optional jackaudioSupport "-DWITH_JACK=ON"
66- ++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON"
67- ++ optional colladaSupport "-DWITH_OPENCOLLADA=ON" ;
107+ ++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON" ;
68108
69109 NIX_CFLAGS_COMPILE = "-I${ ilmbase . dev } /include/OpenEXR -I${ python } /include/${ python . libPrefix } " ;
70110
@@ -95,7 +135,7 @@ stdenv.mkDerivation rec {
95135 # They comment two licenses: GPLv2 and Blender License, but they
96136 # say: "We've decided to cancel the BL offering for an indefinite period."
97137 license = licenses . gpl2Plus ;
98- platforms = [ "x86_64-linux" ] ;
138+ platforms = [ "x86_64-linux" "x86_64-darwin" ] ;
99139 maintainers = [ maintainers . goibhniu ] ;
100140 } ;
101141}
0 commit comments