nixpkgs/pkgs/development/libraries/qt-4.x/4.7/default.nix
Peter Simons 1a6039cb45 Enable parallel building of gcc, glibc, gmp, mpfr, ncurses, coreutils, perl, python, git, and qt4.
If a build expressions has set "enableParallelBuilding = true", then the
generic builder may utilize more than one CPU core to build that particular
expression. This feature works out of the box for GNU Make. Expressions that
use other build drivers like Boost.Jam or SCons have to specify appropriate
flags such as "-j${NIX_BUILD_CORES}" themselves.

svn path=/nixpkgs/trunk/; revision=23042
2010-08-08 18:51:42 +00:00

113 lines
2.9 KiB
Nix

{ stdenv, fetchurl
, alsaLib, gstreamer, gstPluginsBase, pulseaudio
, libXft, libXrender, randrproto, xextproto, libXinerama, xineramaproto, libXcursor, libXmu
, libXv, libXext, libXfixes, inputproto, fixesproto, libXrandr, freetype, fontconfig
, zlib, libjpeg, libpng, libmng, which, mesa, openssl, dbus, cups, pkgconfig, libtiff, glib
, mysql, postgresql, sqlite
, perl, coreutils, libXi
, buildDemos ? false, buildExamples ? false, useDocs ? true}:
let
v = "4.7.0-beta2";
in
stdenv.mkDerivation rec {
name = "qt-${v}";
src = fetchurl {
url = "ftp://ftp.qt.nokia.com/qt/source/qt-everywhere-opensource-src-${v}.tar.gz";
sha256 = "1gxckb5pxybnj5413dxk7dm8hm945ymm4ppqwg14wfk83zhnw6g0";
};
preConfigure = ''
export LD_LIBRARY_PATH="`pwd`/lib:$LD_LIBRARY_PATH"
configureFlags+="
-docdir $out/share/doc/${name}
-plugindir $out/lib/qt4/plugins
-importdir $out/lib/qt4/imports
-examplesdir $out/share/doc/${name}/examples
-demosdir $out/share/doc/${name}/demos
-datadir $out/share/qt4
"
'';
propagatedBuildInputs = [
alsaLib
sqlite
libXft
libXrender
libXrandr
libXi
randrproto
xextproto
libXinerama
xineramaproto
libXcursor
zlib
libjpeg
libmng
mysql
postgresql
libpng
which
mesa
libXmu
libXv
openssl
dbus.libs
cups
pkgconfig
libXext
freetype
fontconfig
inputproto
fixesproto
libXfixes
glib
libtiff
gstreamer
gstPluginsBase
pulseaudio
];
buildInputs = [ perl ];
prefixKey = "-prefix ";
configureFlags = ''
-v -no-separate-debug-info -release -fast -confirm-license -opensource
-system-zlib -system-libpng -system-libjpeg -qt-gif -system-libmng
-opengl -xrender -xrandr -xinerama -xcursor
-plugin-sql-mysql -system-sqlite
-qdbus -cups -glib -xfixes -dbus-linked -openssl-linked
-fontconfig -I${freetype}/include/freetype2
-exceptions -xmlpatterns
-multimedia -audio-backend -phonon -phonon-backend
-webkit -javascript-jit
-make libs -make tools -make translations
${if buildDemos == true then "-make demos" else "-nomake demos"}
${if buildExamples == true then "-make examples" else "-nomake examples"}
${if useDocs then "-make docs" else "-nomake docs"}'';
patches = [ ./phonon-4.4.0.patch ];
postPatch = ''
substituteInPlace configure --replace /bin/pwd pwd
substituteInPlace src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
sed -e 's@/usr@/FOO@' -i config.tests/*/*.test -i mkspecs/*/*.conf
'';
postInstall = if useDocs then "rm -rf $out/share/doc/${name}/{html,src}" else "";
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = http://qt.nokia.com/products;
description = "A cross-platform application framework for C++";
license = "GPL/LGPL";
maintainers = with maintainers; [ urkud sander ];
platforms = platforms.linux;
priority = 10;
};
}