diff options
Diffstat (limited to 'pkgs/development/libraries/qt-5/5.5/qtbase/default.nix')
-rw-r--r-- | pkgs/development/libraries/qt-5/5.5/qtbase/default.nix | 293 |
1 files changed, 0 insertions, 293 deletions
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix deleted file mode 100644 index 141acfc3e574..000000000000 --- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix +++ /dev/null @@ -1,293 +0,0 @@ -{ stdenv, lib, fetchpatch, copyPathsToStore -, srcs - -, xlibs, libX11, libxcb, libXcursor, libXext, libXrender, libXi -, xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilwm, libxkbcommon -, fontconfig, freetype, harfbuzz -, openssl, dbus, glib, udev, libxml2, libxslt, pcre16 -, zlib, libjpeg, libpng, libtiff, sqlite, icu - -, coreutils, bison, flex, gdb, gperf, lndir -, patchelf, perl, pkgconfig, python2 - -# optional dependencies -, cups ? null -, mysql ? null, postgresql ? null - -# options -, mesaSupported, mesa -, buildExamples ? false -, buildTests ? false -, developerBuild ? false -, libgnomeui, GConf, gnome_vfs, gtk2 -, decryptSslTraffic ? false -}: - -let - inherit (srcs.qt5) version; - system-x86_64 = lib.elem stdenv.system lib.platforms.x86_64; - - # Search path for Gtk plugin - gtkLibPath = lib.makeLibraryPath [ gtk2 gnome_vfs libgnomeui GConf ]; - - dontInvalidateBacking = fetchpatch { - url = "https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=0f68f8920573cdce1729a285a92ac8582df32841;hp=24c50f8dcf7fa61ac3c3d4d6295c259a104a2b8c"; - name = "qtbug-48321-dont-invalidate-backing-store.patch"; - sha256 = "1wynm2hhbhpvzvsz4vpzzkl0ss5skac6934bva8brcpi5xq68h1q"; - }; -in - -stdenv.mkDerivation { - - name = "qtbase-${version}"; - inherit version; - - srcs = with srcs; [ qt5.src qtbase.src ]; - - sourceRoot = "qt-everywhere-opensource-src-${version}"; - - outputs = [ "out" "dev" "gtk" ]; - - postUnpack = '' - mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase - ''; - - patches = - copyPathsToStore (lib.readPathsFromFile ./. ./series) - ++ lib.optional decryptSslTraffic ./decrypt-ssl-traffic.patch - ++ lib.optionals mesaSupported [ ./dlopen-gl.patch ./mkspecs-libgl.patch ]; - - postPatch = - '' - cd qtbase - patch -p1 <${dontInvalidateBacking} - cd .. - - substituteInPlace configure --replace /bin/pwd pwd - substituteInPlace qtbase/configure --replace /bin/pwd pwd - substituteInPlace qtbase/src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls - sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i qtbase/mkspecs/*/*.conf - - sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/src/corelib/Qt5Config.cmake.in" - sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/src/corelib/Qt5CoreMacros.cmake" - sed -i 's/NO_DEFAULT_PATH//' "qtbase/src/gui/Qt5GuiConfigExtras.cmake.in" - sed -i 's/PATHS.*NO_DEFAULT_PATH//' "qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in" - - substituteInPlace qtbase/src/network/kernel/qdnslookup_unix.cpp \ - --replace "@glibc@" "${stdenv.cc.libc.out}" - substituteInPlace qtbase/src/network/kernel/qhostinfo_unix.cpp \ - --replace "@glibc@" "${stdenv.cc.libc.out}" - - substituteInPlace qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp \ - --replace "@libXcursor@" "${libXcursor.out}" - - substituteInPlace qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp \ - --replace "@openssl@" "${openssl.out}" - - substituteInPlace qtbase/src/dbus/qdbus_symbols.cpp \ - --replace "@dbus_libs@" "${dbus.lib}" - - substituteInPlace \ - qtbase/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp \ - --replace "@libX11@" "${libX11.out}" - '' - + lib.optionalString mesaSupported '' - substituteInPlace \ - qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp \ - --replace "@mesa_lib@" "${mesa.out}" - substituteInPlace qtbase/mkspecs/common/linux.conf \ - --replace "@mesa_lib@" "${mesa.out}" \ - --replace "@mesa_inc@" "${mesa.dev}" - ''; - - - setOutputFlags = false; - preConfigure = '' - export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH" - export MAKEFLAGS=-j$NIX_BUILD_CORES - - configureFlags+="\ - -plugindir $out/lib/qt5/plugins \ - -importdir $out/lib/qt5/imports \ - -qmldir $out/lib/qt5/qml \ - -docdir $out/share/doc/qt5" - ''; - - prefixKey = "-prefix "; - - # -no-eglfs, -no-directfb, -no-linuxfb and -no-kms because of the current minimalist mesa - # TODO Remove obsolete and useless flags once the build will be totally mastered - configureFlags = '' - -verbose - -confirm-license - -opensource - - -release - -shared - -c++11 - ${lib.optionalString developerBuild "-developer-build"} - -largefile - -accessibility - -rpath - -optimized-qmake - -strip - -no-reduce-relocations - -system-proxies - -pkg-config - - -gui - -widgets - -opengl desktop - -qml-debug - -nis - -iconv - -icu - -pch - -glib - -xcb - -qpa xcb - -${lib.optionalString (cups == null) "no-"}cups - -gtkstyle - - -no-eglfs - -no-directfb - -no-linuxfb - -no-kms - - ${lib.optionalString (!system-x86_64) "-no-sse2"} - -no-sse3 - -no-ssse3 - -no-sse4.1 - -no-sse4.2 - -no-avx - -no-avx2 - -no-mips_dsp - -no-mips_dspr2 - - -system-zlib - -system-libpng - -system-libjpeg - -system-harfbuzz - -system-xcb - -system-xkbcommon - -system-pcre - -openssl-linked - -dbus-linked - - -system-sqlite - -${if mysql != null then "plugin" else "no"}-sql-mysql - -${if postgresql != null then "plugin" else "no"}-sql-psql - - -make libs - -make tools - -${lib.optionalString (buildExamples == false) "no"}make examples - -${lib.optionalString (buildTests == false) "no"}make tests - ''; - - # PostgreSQL autodetection fails sporadically because Qt omits the "-lpq" flag - # if dependency paths contain the string "pq", which can occur in the hash. - # To prevent these failures, we need to override PostgreSQL detection. - PSQL_LIBS = lib.optionalString (postgresql != null) "-L${postgresql.lib}/lib -lpq"; - - propagatedBuildInputs = [ - dbus glib libxml2 libxslt openssl pcre16 sqlite udev zlib - - # Image formats - libjpeg libpng libtiff - - # Text rendering - fontconfig freetype harfbuzz icu - - # X11 libs - xlibs.libXcomposite libX11 libxcb libXext libXrender libXi - xcbutil xcbutilimage xcbutilkeysyms xcbutilwm libxkbcommon - ] - ++ lib.optional mesaSupported mesa; - - buildInputs = - [ bison flex gperf ] - ++ lib.optional developerBuild gdb - ++ lib.optional (cups != null) cups - ++ lib.optional (mysql != null) mysql.lib - ++ lib.optional (postgresql != null) postgresql - # FIXME: move to the main list on rebuild. - ++ [gnome_vfs.out libgnomeui.out gtk2 GConf]; - - nativeBuildInputs = [ lndir patchelf perl pkgconfig python2 ]; - - # freetype-2.5.4 changed signedness of some struct fields - NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare"; - - postInstall = '' - find "$out" -name "*.cmake" | while read file; do - substituteInPlace "$file" \ - --subst-var-by NIX_OUT "$out" \ - --subst-var-by NIX_DEV "$dev" - done - ''; - - preFixup = '' - # We cannot simply set these paths in configureFlags because libQtCore retains - # references to the paths it was built with. - moveToOutput "bin" "$dev" - moveToOutput "include" "$dev" - moveToOutput "mkspecs" "$dev" - - # The destination directory must exist or moveToOutput will do nothing - mkdir -p "$dev/share" - moveToOutput "share/doc" "$dev" - - # Move the QGtkStyle plugin to the gtk output - mkdir -p "$gtk/lib/qt5/plugins/platformthemes" - mv "$out/lib/qt5/plugins/platformthemes/libqgtk2.so" "$gtk/lib/qt5/plugins/platformthemes" - rm "$out/lib/cmake/Qt5Gui/Qt5Gui_QGtk2ThemePlugin.cmake" - - # Set RPATH for QGtkStyle plugin - qgtk2="$gtk/lib/qt5/plugins/platformthemes/libqgtk2.so" - qgtk2_RPATH="$(patchelf --print-rpath "$qgtk2")" - qgtk2_RPATH="$qgtk2_RPATH''${qgtk2_RPATH:+:}${gtkLibPath}" - patchelf "$qgtk2" \ - --add-needed libgtk-x11-2.0.so \ - --add-needed libgnomeui-2.so \ - --add-needed libgnomevfs-2.so \ - --add-needed libgconf-2.so \ - --set-rpath "$qgtk2_RPATH" - ''; - - postFixup = - '' - # Don't retain build-time dependencies like gdb. - sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $dev/mkspecs/qconfig.pri - - # Move libtool archives and qmake projects - if [ "z''${!outputLib}" != "z''${!outputDev}" ]; then - pushd "''${!outputLib}" - find lib -name '*.a' -o -name '*.la' -o -name '*.prl' | \ - while read -r file; do - mkdir -p "''${!outputDev}/$(dirname "$file")" - mv "''${!outputLib}/$file" "''${!outputDev}/$file" - done - popd - fi - '' - - # fixup .pc file (where to find 'moc' etc.) - + lib.optionalString (!stdenv.isDarwin) '' - sed -i "$dev/lib/pkgconfig/Qt5Core.pc" \ - -e "/^host_bins=/ c host_bins=$dev/bin" - ''; - - inherit lndir; - setupHook = ../../qtbase-setup-hook.sh; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = http://www.qt.io; - description = "A cross-platform application framework for C++"; - license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; - maintainers = with maintainers; [ qknight ttuegel ]; - platforms = platforms.linux; - }; - -} |