nixpkgs/pkgs/development/libraries/qt-3/default.nix

61 lines
2.1 KiB
Nix
Raw Normal View History

{ stdenv, fetchurl
, xftSupport ? true, libXft ? null
, xrenderSupport ? true, libXrender ? null
, xrandrSupport ? true, libXrandr ? null, randrproto ? null
, xineramaSupport ? true, libXinerama ? null, xineramaproto ? null
, threadSupport ? true
, mysqlSupport ? true, mysql ? null
, openglSupport ? false, mesa ? null, libXmu ? null
, x11, zlib, libjpeg, libpng, which
}:
assert xftSupport -> libXft != null;
assert xrenderSupport -> xftSupport && libXrender != null;
assert xrandrSupport -> libXrandr != null && randrproto != null;
assert mysqlSupport -> mysql != null;
assert openglSupport -> mesa != null && libXmu != null;
stdenv.mkDerivation {
name = "qt-3.3.6";
builder = ./builder.sh;
substitute = ../../../build-support/substitute/substitute.sh;
hook = ./setup-hook.sh;
src = fetchurl {
url = ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.3.6.tar.bz2;
md5 = "dc1384c03ac08af21f6fefab32d982cf";
};
buildInputs = [x11 libXft libXrender zlib libjpeg libpng which];
configureFlags = "
-v
-system-zlib -system-libpng -system-libjpeg
${if openglSupport then "-dlopen-opengl
-L${mesa}/lib -I${mesa}/include
-L${libXmu}/lib -I${libXmu}/include" else ""}
${if threadSupport then "-thread" else "-no-thread"}
${if xrenderSupport then "-xrender -L${libXrender}/lib -I${libXrender}/include" else "-no-xrender"}
${if xrandrSupport then "-xrandr
-L${libXrandr}/lib -I${libXrandr}/include
-I${randrproto}/include" else "-no-xrandr"}
${if xineramaSupport then "-xinerama -L${libXinerama}/lib -I${xineramaproto}/include" else "-no-xinerama"}
${if mysqlSupport then "-qt-sql-mysql -L${mysql}/lib/mysql -I${mysql}/include/mysql" else ""}
${if xftSupport then "-xft
-L${libXft}/lib -I${libXft}/include
-L${libXft.freetype}/lib -I${libXft.freetype}/include
-L${libXft.fontconfig}/lib -I${libXft.fontconfig}/include" else "-no-xft"}
";
patches = [
# Don't strip everything so we can get useful backtraces.
./strip.patch
# Build on NixOS.
./qt-pwd.patch
# randr.h and Xrandr.h need not be in the same prefix.
./xrandr.patch
];
}