nixpkgs/pkgs/applications/misc/blender/default.nix

50 lines
1.6 KiB
Nix
Raw Normal View History

args: with args;
stdenv.mkDerivation {
name = "blender-2.46";
src = fetchurl {
url = http://download.blender.org/source/blender-2.46.tar.gz;
sha256 = "1l95lcrp5snmvzabw46qpnkxmqls3fc24b2qjkghfasvaq7km7rr";
};
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 = "
cat >> user-config.py << EOF
WITH_BF_OPENAL = 'true'
WITH_BF_GAMEENGINE='true'
WITH_BF_BULLET = 'true'
WITH_BF_INTERNATIONAL = 'true'
WITH_BF_OPENEXR = 'true'
EOF
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";
};
}