summary refs log tree commit diff
path: root/pkgs/applications/misc/blender/default.nix
blob: aa50f67719c338f6a445d2e69c1bd1d644ea4dbd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
args: with args;
stdenv.mkDerivation {
  name = "blender-2.45";

  src = fetchurl {
    url = http://download.blender.org/source/blender-2.45.tar.gz;
    sha256 = "1bi7j1fcvrpb96sjpcbm4sldf359sgskfhv7a8pgcxj0bnhp47wj";
  };

  phases="unpackPhase buildPhase";

  inherit scons SDL freetype openal python openexr mesa;

  buildInputs = [python scons
         gettext libjpeg libpng zlib freetype /* fmod smpeg */ freealut openal x11 mesa inputproto libtiff libXi ];

  # patch SConstruct so that we can pass on additional include.  Either blender
  # or openEXR is broken. I think OpenEXR should use include "" isntead of <> to
  # include files beeing in the same directory
  buildPhase = "
    sed -i -e \"s=##### END SETUP ##########=env['CPPFLAGS'].append(os.getenv('CPPFLAGS').split(':'))\\n##### END SETUP ##########=\" SConstruct\n"
    + " CPPFLAGS=-I$openexr/include/OpenEXR"
    + " scons PREFIX=\$out/nix-support"
    + " BF_SDL=\$SDL"
    + " BF_SDL_LIBPATH=\$SDL/lib"
    + " BF_FREETYPE=\$freetype"
    + " BF_OPENAL=\$openal"
    + " BF_PYTHON=\$python"
    + " BF_OPENEXR_INC=\$openexr/include"
    + " BF_OPENEXR_LIBPATH=\$openexr/lib"
    + " BF_INSTALLDIR=\$out/nix-support/dontLinkThatMuch \n"
    + " ensureDir \$out/bin\n"
    + " ln -s \$out/nix-support/dontLinkThatMuch/blender \$out/bin/blender"
    ;

  meta = { 
      description = "3D Creation/Animation/Publishing System";
      homepage = http://www.blender.org;
      license = "GPL-2 BL";
    };
}