diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/qt-5/modules')
33 files changed, 1010 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix new file mode 100644 index 000000000000..24f1d6f81a24 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix @@ -0,0 +1,411 @@ +{ + stdenv, lib, + src, patches, version, qtCompatVersion, + + coreutils, bison, flex, gdb, gperf, lndir, perl, pkg-config, python3, + which, + # darwin support + darwin, libiconv, + + dbus, fontconfig, freetype, glib, harfbuzz, icu, libX11, libXcomposite, + libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng, + libxcb, libxkbcommon, libxml2, libxslt, openssl, pcre16, pcre2, sqlite, udev, + xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, xcbutilwm, + zlib, + + # optional dependencies + cups ? null, libmysqlclient ? null, postgresql ? null, + withGtk3 ? false, dconf ? null, gtk3 ? null, + + # options + libGLSupported ? !stdenv.isDarwin, + libGL, + buildExamples ? false, + buildTests ? false, + developerBuild ? false, + decryptSslTraffic ? false +}: + +assert withGtk3 -> dconf != null; +assert withGtk3 -> gtk3 != null; + +let + compareVersion = v: builtins.compareVersions version v; + qmakeCacheName = + if compareVersion "5.12.4" < 0 then ".qmake.cache" else ".qmake.stash"; +in + +stdenv.mkDerivation { + + name = "qtbase-${version}"; + inherit qtCompatVersion src version; + + propagatedBuildInputs = + [ + libxml2 libxslt openssl sqlite zlib + + # Text rendering + harfbuzz icu + + # Image formats + libjpeg libpng + (if compareVersion "5.9.0" < 0 then pcre16 else pcre2) + ] + ++ ( + if stdenv.isDarwin + then with darwin.apple_sdk.frameworks; + [ + # TODO: move to buildInputs, this should not be propagated. + AGL AppKit ApplicationServices Carbon Cocoa CoreAudio CoreBluetooth + CoreLocation CoreServices DiskArbitration Foundation OpenGL + darwin.libobjc libiconv MetalKit IOKit + ] + else + [ + dbus glib udev + + # Text rendering + fontconfig freetype + + # X11 libs + libX11 libXcomposite libXext libXi libXrender libxcb libxkbcommon xcbutil + xcbutilimage xcbutilkeysyms xcbutilrenderutil xcbutilwm + ] + ++ lib.optional libGLSupported libGL + ); + + buildInputs = + [ python3 ] + ++ lib.optionals (!stdenv.isDarwin) + ( + [ libinput ] + ++ lib.optional withGtk3 gtk3 + ) + ++ lib.optional developerBuild gdb + ++ lib.optional (cups != null) cups + ++ lib.optional (libmysqlclient != null) libmysqlclient + ++ lib.optional (postgresql != null) postgresql; + + nativeBuildInputs = + [ bison flex gperf lndir perl pkg-config which ]; + + propagatedNativeBuildInputs = [ lndir ]; + + outputs = [ "bin" "dev" "out" ]; + + inherit patches; + + fix_qt_builtin_paths = ../hooks/fix-qt-builtin-paths.sh; + fix_qt_module_paths = ../hooks/fix-qt-module-paths.sh; + preHook = '' + . "$fix_qt_builtin_paths" + . "$fix_qt_module_paths" + . ${../hooks/move-qt-dev-tools.sh} + . ${../hooks/fix-qmake-libtool.sh} + ''; + + postPatch = + '' + for prf in qml_plugin.prf qt_plugin.prf qt_docs.prf qml_module.prf create_cmake.prf; do + substituteInPlace "mkspecs/features/$prf" \ + --subst-var qtPluginPrefix \ + --subst-var qtQmlPrefix \ + --subst-var qtDocPrefix + done + + substituteInPlace configure --replace /bin/pwd pwd + substituteInPlace src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls + sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i mkspecs/*/*.conf + + sed -i '/PATHS.*NO_DEFAULT_PATH/ d' src/corelib/Qt5Config.cmake.in + sed -i '/PATHS.*NO_DEFAULT_PATH/ d' src/corelib/Qt5CoreMacros.cmake + sed -i 's/NO_DEFAULT_PATH//' src/gui/Qt5GuiConfigExtras.cmake.in + sed -i '/PATHS.*NO_DEFAULT_PATH/ d' mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in + '' + + + ( + if stdenv.isDarwin + then + '' + sed -i \ + -e 's|! /usr/bin/xcode-select --print-path >/dev/null 2>&1;|false;|' \ + -e 's|! /usr/bin/xcrun -find xcodebuild >/dev/null 2>&1;|false;|' \ + -e 's|sysroot=$(/usr/bin/xcodebuild -sdk $sdk -version Path 2>/dev/null)|sysroot=/nonsense|' \ + -e 's|sysroot=$(/usr/bin/xcrun --sdk $sdk --show-sdk-path 2>/dev/null)|sysroot=/nonsense|' \ + -e 's|QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`|QMAKE_CXX="clang++"\nQMAKE_CONF_COMPILER="clang++"|' \ + -e 's|XCRUN=`/usr/bin/xcrun -sdk macosx clang -v 2>&1`|XCRUN="clang -v 2>&1"|' \ + -e 's#sdk_val=$(/usr/bin/xcrun -sdk $sdk -find $(echo $val | cut -d \x27 \x27 -f 1))##' \ + -e 's#val=$(echo $sdk_val $(echo $val | cut -s -d \x27 \x27 -f 2-))##' \ + ./configure + substituteInPlace ./mkspecs/common/mac.conf \ + --replace "/System/Library/Frameworks/OpenGL.framework/" "${darwin.apple_sdk.frameworks.OpenGL}/Library/Frameworks/OpenGL.framework/" + substituteInPlace ./mkspecs/common/mac.conf \ + --replace "/System/Library/Frameworks/AGL.framework/" "${darwin.apple_sdk.frameworks.AGL}/Library/Frameworks/AGL.framework/" + '' + # Note on the above: \x27 is a way if including a single-quote + # character in the sed string arguments. + else + lib.optionalString libGLSupported + '' + sed -i mkspecs/common/linux.conf \ + -e "/^QMAKE_INCDIR_OPENGL/ s|$|${libGL.dev or libGL}/include|" \ + -e "/^QMAKE_LIBDIR_OPENGL/ s|$|${libGL.out}/lib|" + '' + + lib.optionalString (stdenv.hostPlatform.isx86_32 && stdenv.cc.isGNU) + '' + sed -i mkspecs/common/gcc-base-unix.conf \ + -e "/^QMAKE_LFLAGS_SHLIB/ s/-shared/-shared -static-libgcc/" + '' + ); + + qtPluginPrefix = "lib/qt-${qtCompatVersion}/plugins"; + qtQmlPrefix = "lib/qt-${qtCompatVersion}/qml"; + qtDocPrefix = "share/doc/qt-${qtCompatVersion}"; + + setOutputFlags = false; + preConfigure = '' + export LD_LIBRARY_PATH="$PWD/lib:$PWD/plugins/platforms''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" + ${lib.optionalString (compareVersion "5.9.0" < 0) '' + # We need to set LD to CXX or otherwise we get nasty compile errors + export LD=$CXX + ''} + + NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PREFIX=\"$qtPluginPrefix\"" + ''; + + postConfigure = '' + qmakeCacheInjectNixOutputs() { + local cache="$1/${qmakeCacheName}" + echo "qmakeCacheInjectNixOutputs: $cache" + if ! [ -f "$cache" ]; then + echo >&2 "qmakeCacheInjectNixOutputs: WARNING: $cache does not exist" + fi + cat >>"$cache" <<EOF + NIX_OUTPUT_BIN = $bin + NIX_OUTPUT_DEV = $dev + NIX_OUTPUT_OUT = $out + NIX_OUTPUT_DOC = $dev/$qtDocPrefix + NIX_OUTPUT_QML = $bin/$qtQmlPrefix + NIX_OUTPUT_PLUGIN = $bin/$qtPluginPrefix + EOF + } + + find . -name '.qmake.conf' | while read conf; do + qmakeCacheInjectNixOutputs "$(dirname $conf)" + done + ''; + + NIX_CFLAGS_COMPILE = toString ([ + "-Wno-error=sign-compare" # freetype-2.5.4 changed signedness of some struct fields + ''-DNIXPKGS_QTCOMPOSE="${libX11.out}/share/X11/locale"'' + ''-D${if compareVersion "5.11.0" >= 0 then "LIBRESOLV_SO" else "NIXPKGS_LIBRESOLV"}="${stdenv.cc.libc.out}/lib/libresolv"'' + ''-DNIXPKGS_LIBXCURSOR="${libXcursor.out}/lib/libXcursor"'' + ] ++ lib.optional libGLSupported ''-DNIXPKGS_MESA_GL="${libGL.out}/lib/libGL"'' + ++ lib.optionals withGtk3 [ + ''-DNIXPKGS_QGTK3_XDG_DATA_DIRS="${gtk3}/share/gsettings-schemas/${gtk3.name}"'' + ''-DNIXPKGS_QGTK3_GIO_EXTRA_MODULES="${dconf.lib}/lib/gio/modules"'' + ] + ++ lib.optional decryptSslTraffic "-DQT_DECRYPT_SSL_TRAFFIC"); + + prefixKey = "-prefix "; + + # 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"; + + # TODO Remove obsolete and useless flags once the build will be totally mastered + configureFlags = + [ + "-plugindir $(out)/$(qtPluginPrefix)" + "-qmldir $(out)/$(qtQmlPrefix)" + "-docdir $(out)/$(qtDocPrefix)" + + "-verbose" + "-confirm-license" + "-opensource" + + "-release" + "-shared" + "-accessibility" + "-optimized-qmake" + "-strip" + "-system-proxies" + "-pkg-config" + + "-gui" + "-widgets" + "-opengl desktop" + "-icu" + "-L" "${icu.out}/lib" + "-I" "${icu.dev}/include" + "-pch" + ] + ++ lib.optionals (compareVersion "5.11.0" < 0) + [ + "-qml-debug" + ] + ++ lib.optionals (compareVersion "5.9.0" < 0) + [ + "-c++11" + "-no-reduce-relocations" + ] + ++ lib.optionals developerBuild [ + "-developer-build" + "-no-warnings-are-errors" + ] + ++ ( + if (!stdenv.hostPlatform.isx86_64) then [ + "-no-sse2" + ] else if (compareVersion "5.9.0" >= 0) then [ + "-sse2" + "${if stdenv.hostPlatform.sse3Support then "" else "-no"}-sse3" + "${if stdenv.hostPlatform.ssse3Support then "" else "-no"}-ssse3" + "${if stdenv.hostPlatform.sse4_1Support then "" else "-no"}-sse4.1" + "${if stdenv.hostPlatform.sse4_2Support then "" else "-no"}-sse4.2" + "${if stdenv.hostPlatform.avxSupport then "" else "-no"}-avx" + "${if stdenv.hostPlatform.avx2Support then "" else "-no"}-avx2" + ] else [ + ] + ) + ++ [ + "-no-mips_dsp" + "-no-mips_dspr2" + ] + + ++ [ + "-system-zlib" + "-L" "${zlib.out}/lib" + "-I" "${zlib.dev}/include" + "-system-libjpeg" + "-L" "${libjpeg.out}/lib" + "-I" "${libjpeg.dev}/include" + "-system-harfbuzz" + "-L" "${harfbuzz.out}/lib" + "-I" "${harfbuzz.dev}/include" + "-system-pcre" + "-openssl-linked" + "-L" "${openssl.out}/lib" + "-I" "${openssl.dev}/include" + "-system-sqlite" + ''-${if libmysqlclient != null then "plugin" else "no"}-sql-mysql'' + ''-${if postgresql != null then "plugin" else "no"}-sql-psql'' + + "-make libs" + "-make tools" + ''-${lib.optionalString (!buildExamples) "no"}make examples'' + ''-${lib.optionalString (!buildTests) "no"}make tests'' + ] + ++ lib.optional (compareVersion "5.15.0" < 0) "-v" + + ++ ( + if stdenv.isDarwin + then + [ + "-platform macx-clang" + "-no-fontconfig" + "-qt-freetype" + "-qt-libpng" + "-no-framework" + ] + else + [ + "-${lib.optionalString (compareVersion "5.9.0" < 0) "no-"}rpath" + ] + ++ lib.optional (compareVersion "5.15.0" < 0) "-system-xcb" + ++ [ + "-xcb" + "-qpa xcb" + "-L" "${libX11.out}/lib" + "-I" "${libX11.out}/include" + "-L" "${libXext.out}/lib" + "-I" "${libXext.out}/include" + "-L" "${libXrender.out}/lib" + "-I" "${libXrender.out}/include" + + "-libinput" + + ''-${lib.optionalString (cups == null) "no-"}cups'' + "-dbus-linked" + "-glib" + ] + ++ lib.optional (compareVersion "5.15.0" < 0) "-system-libjpeg" + ++ [ + "-system-libpng" + ] + ++ lib.optional withGtk3 "-gtk" + ++ lib.optional (compareVersion "5.9.0" >= 0) "-inotify" + ++ lib.optionals (compareVersion "5.10.0" >= 0) [ + # Without these, Qt stops working on kernels < 3.17. See: + # https://github.com/NixOS/nixpkgs/issues/38832 + "-no-feature-renameat2" + "-no-feature-getentropy" + ] + ++ lib.optionals (compareVersion "5.12.1" < 0) [ + # use -xkbcommon and -xkbcommon-evdev for versions before 5.12.1 + "-system-xkbcommon" + "-xkbcommon-evdev" + ] + ++ lib.optionals (cups != null) [ + "-L" "${cups.lib}/lib" + "-I" "${cups.dev}/include" + ] + ++ lib.optionals (libmysqlclient != null) [ + "-L" "${libmysqlclient}/lib" + "-I" "${libmysqlclient}/include" + ] + ); + + postInstall = + # Move selected outputs. + '' + moveToOutput "mkspecs" "$dev" + ''; + + devTools = [ + "bin/fixqt4headers.pl" + "bin/moc" + "bin/qdbuscpp2xml" + "bin/qdbusxml2cpp" + "bin/qlalr" + "bin/qmake" + "bin/rcc" + "bin/syncqt.pl" + "bin/uic" + ]; + + postFixup = + # Don't retain build-time dependencies like gdb. + '' + sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $dev/mkspecs/qconfig.pri + '' + + + '' + fixQtModulePaths "''${!outputDev}/mkspecs/modules" + fixQtBuiltinPaths "''${!outputDev}" '*.pr?' + '' + + # Move development tools to $dev + + '' + moveQtDevTools + moveToOutput bin "$dev" + '' + + # fixup .pc file (where to find 'moc' etc.) + + '' + sed -i "$dev/lib/pkgconfig/Qt5Core.pc" \ + -e "/^host_bins=/ c host_bins=$dev/bin" + ''; + + setupHook = ../hooks/qtbase-setup-hook.sh; + + 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 periklis bkchr ]; + platforms = platforms.unix; + broken = stdenv.isDarwin && (compareVersion "5.9.0" < 0); + }; + +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtcharts.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtcharts.nix new file mode 100644 index 000000000000..84d3a17ea8ce --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtcharts.nix @@ -0,0 +1,7 @@ +{ qtModule, qtbase, qtdeclarative }: + +qtModule { + name = "qtcharts"; + qtInputs = [ qtbase qtdeclarative ]; + outputs = [ "out" "dev" "bin" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix new file mode 100644 index 000000000000..f6aeb23fb7b4 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtconnectivity.nix @@ -0,0 +1,8 @@ +{ qtModule, lib, stdenv, qtbase, qtdeclarative, bluez }: + +qtModule { + name = "qtconnectivity"; + qtInputs = [ qtbase qtdeclarative ]; + buildInputs = lib.optional stdenv.isLinux bluez; + outputs = [ "out" "dev" "bin" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix new file mode 100644 index 000000000000..b611282294c6 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdeclarative.nix @@ -0,0 +1,26 @@ +{ qtModule, lib, python3, qtbase, qtsvg }: + +with lib; + +qtModule { + name = "qtdeclarative"; + qtInputs = [ qtbase qtsvg ]; + nativeBuildInputs = [ python3 ]; + outputs = [ "out" "dev" "bin" ]; + preConfigure = '' + NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QML2_IMPORT_PREFIX=\"$qtQmlPrefix\"" + ''; + configureFlags = lib.optionals (lib.versionAtLeast qtbase.version "5.11.0") [ "-qml-debug" ]; + devTools = [ + "bin/qml" + "bin/qmlcachegen" + "bin/qmleasing" + "bin/qmlimportscanner" + "bin/qmllint" + "bin/qmlmin" + "bin/qmlplugindump" + "bin/qmlprofiler" + "bin/qmlscene" + "bin/qmltestrunner" + ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdoc.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdoc.nix new file mode 100644 index 000000000000..10623962c430 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtdoc.nix @@ -0,0 +1,7 @@ +{ qtModule, qtdeclarative }: + +qtModule { + name = "qtdoc"; + qtInputs = [ qtdeclarative ]; + outputs = [ "out" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgamepad.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgamepad.nix new file mode 100644 index 000000000000..6bc023eb9bbd --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgamepad.nix @@ -0,0 +1,9 @@ +{ qtModule, qtbase, qtdeclarative, pkg-config }: + +qtModule { + name = "qtgamepad"; + qtInputs = [ qtbase qtdeclarative ]; + buildInputs = [ ]; + nativeBuildInputs = [ pkg-config ]; + outputs = [ "out" "dev" "bin" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix new file mode 100644 index 000000000000..d0be6ae77694 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtgraphicaleffects.nix @@ -0,0 +1,7 @@ +{ qtModule, qtdeclarative }: + +qtModule { + name = "qtgraphicaleffects"; + qtInputs = [ qtdeclarative ]; + outputs = [ "out" "dev" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix new file mode 100644 index 000000000000..9c80507b7c70 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix @@ -0,0 +1,7 @@ +{ qtModule, qtbase, libtiff }: + +qtModule { + name = "qtimageformats"; + qtInputs = [ qtbase ]; + propagatedBuildInputs = [ libtiff ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix new file mode 100644 index 000000000000..182b5f5bc334 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtlocation.nix @@ -0,0 +1,13 @@ +{ lib, stdenv, qtModule, qtbase, qtmultimedia }: + +qtModule { + name = "qtlocation"; + qtInputs = [ qtbase qtmultimedia ]; + outputs = [ "bin" "out" "dev" ]; + qmakeFlags = lib.optional stdenv.isDarwin [ + # boost uses std::auto_ptr which has been disabled in clang with libcxx + # This flag re-enables this feature + # https://libcxx.llvm.org/docs/UsingLibcxx.html#c-17-specific-configuration-macros + "QMAKE_CXXFLAGS+=-D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR" + ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmacextras.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmacextras.nix new file mode 100644 index 000000000000..5e7ccf702045 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmacextras.nix @@ -0,0 +1,10 @@ +{ lib, qtModule, qtbase }: + +qtModule { + name = "qtmacextras"; + qtInputs = [ qtbase ]; + meta = with lib; { + maintainers = with maintainers; [ periklis ]; + platforms = platforms.darwin; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix new file mode 100644 index 000000000000..eb2c3bc7431d --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix @@ -0,0 +1,17 @@ +{ qtModule, lib, stdenv, qtbase, qtdeclarative, pkg-config +, alsaLib, gstreamer, gst-plugins-base, libpulseaudio, wayland +}: + +with lib; + +qtModule { + name = "qtmultimedia"; + qtInputs = [ qtbase qtdeclarative ]; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ gstreamer gst-plugins-base libpulseaudio ] + ++ optional (stdenv.isLinux) alsaLib + ++ optional (versionAtLeast qtbase.version "5.14.0" && stdenv.isLinux) wayland; + outputs = [ "bin" "dev" "out" ]; + qmakeFlags = [ "GST_VERSION=1.0" ]; + NIX_LDFLAGS = optionalString (stdenv.isDarwin) "-lobjc"; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtnetworkauth.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtnetworkauth.nix new file mode 100644 index 000000000000..e6ef428cc3c4 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtnetworkauth.nix @@ -0,0 +1,6 @@ +{ qtModule, qtbase }: + +qtModule { + name = "qtnetworkauth"; + qtInputs = [ qtbase ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols.nix new file mode 100644 index 000000000000..ba0f20bc0d83 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols.nix @@ -0,0 +1,6 @@ +{ qtModule, qtdeclarative }: + +qtModule { + name = "qtquickcontrols"; + qtInputs = [ qtdeclarative ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols2.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols2.nix new file mode 100644 index 000000000000..a9522f4b1f0c --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtquickcontrols2.nix @@ -0,0 +1,7 @@ +{ qtModule, qtdeclarative }: + +qtModule { + name = "qtquickcontrols2"; + qtInputs = [ qtdeclarative ]; + outputs = [ "out" "dev" "bin" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscript.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscript.nix new file mode 100644 index 000000000000..5a1a462a9640 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscript.nix @@ -0,0 +1,6 @@ +{ qtModule, qtbase, qttools }: + +qtModule { + name = "qtscript"; + qtInputs = [ qtbase qttools ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscxml.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscxml.nix new file mode 100644 index 000000000000..62b428b08933 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtscxml.nix @@ -0,0 +1,7 @@ +{ qtModule, qtbase, qtdeclarative }: + +qtModule { + name = "qtscxml"; + qtInputs = [ qtbase qtdeclarative ]; + outputs = [ "out" "dev" "bin" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsensors.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsensors.nix new file mode 100644 index 000000000000..3b8732b68851 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsensors.nix @@ -0,0 +1,7 @@ +{ qtModule, qtbase, qtdeclarative }: + +qtModule { + name = "qtsensors"; + qtInputs = [ qtbase qtdeclarative ]; + outputs = [ "out" "dev" "bin" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix new file mode 100644 index 000000000000..48968a254c65 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix @@ -0,0 +1,6 @@ +{ qtModule, qtbase, qtserialport }: + +qtModule { + name = "qtserialbus"; + qtInputs = [ qtbase qtserialport ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialport.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialport.nix new file mode 100644 index 000000000000..516d38340dc5 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialport.nix @@ -0,0 +1,11 @@ +{ qtModule, stdenv, lib, qtbase, systemd }: + +let inherit (lib) getLib optional; in + +qtModule { + name = "qtserialport"; + qtInputs = [ qtbase ]; + NIX_CFLAGS_COMPILE = + optional stdenv.isLinux + ''-DNIXPKGS_LIBUDEV="${getLib systemd}/lib/libudev"''; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtspeech.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtspeech.nix new file mode 100644 index 000000000000..ddef01a9482e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtspeech.nix @@ -0,0 +1,7 @@ +{ qtModule }: + +qtModule { + name = "qtspeech"; + qtInputs = [ ]; + outputs = [ "out" "dev" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsvg.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsvg.nix new file mode 100644 index 000000000000..3ce68e56e412 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtsvg.nix @@ -0,0 +1,7 @@ +{ qtModule, qtbase }: + +qtModule { + name = "qtsvg"; + qtInputs = [ qtbase ]; + outputs = [ "out" "dev" "bin" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix new file mode 100644 index 000000000000..fae90972978f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix @@ -0,0 +1,45 @@ +{ qtModule, stdenv, lib, qtbase, qtdeclarative }: + +with lib; + +qtModule { + name = "qttools"; + qtInputs = [ qtbase qtdeclarative ]; + outputs = [ "out" "dev" "bin" ]; + + # fixQtBuiltinPaths overwrites a builtin path we should keep + postPatch = '' + sed -i "src/linguist/linguist.pro" \ + -e '/^cmake_linguist_config_version_file.input =/ s|$$\[QT_HOST_DATA.*\]|${getDev qtbase}|' + sed -i "src/qtattributionsscanner/qtattributionsscanner.pro" \ + -e '/^cmake_qattributionsscanner_config_version_file.input =/ s|$$\[QT_HOST_DATA.*\]|${getDev qtbase}|' + ''; + + devTools = [ + "bin/qcollectiongenerator" + "bin/linguist" + "bin/assistant" + "bin/qdoc" + "bin/lconvert" + "bin/designer" + "bin/qtattributionsscanner" + "bin/lrelease" + "bin/lrelease-pro" + "bin/pixeltool" + "bin/lupdate" + "bin/lupdate-pro" + "bin/qtdiag" + "bin/qhelpgenerator" + "bin/qtplugininfo" + "bin/qthelpconverter" + "bin/lprodump" + "bin/qdistancefieldgenerator" + ] ++ optionals stdenv.isDarwin [ + "bin/macdeployqt" + ]; + + NIX_CFLAGS_COMPILE = + lib.optional stdenv.isDarwin ''-DNIXPKGS_QMLIMPORTSCANNER="${qtdeclarative.dev}/bin/qmlimportscanner"''; + + setupHook = ../hooks/qttools-setup-hook.sh; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qttranslations.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttranslations.nix new file mode 100644 index 000000000000..11a6e3fedcb1 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttranslations.nix @@ -0,0 +1,6 @@ +{ qtModule, qttools }: + +qtModule { + name = "qttranslations"; + qtInputs = [ qttools ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtvirtualkeyboard.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtvirtualkeyboard.nix new file mode 100644 index 000000000000..2ba720c8eedc --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtvirtualkeyboard.nix @@ -0,0 +1,6 @@ +{ qtModule, qtbase, qtdeclarative, qtsvg, hunspell }: + +qtModule { + name = "qtvirtualkeyboard"; + qtInputs = [ qtbase qtdeclarative qtsvg hunspell ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwayland.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwayland.nix new file mode 100644 index 000000000000..5291ea9c9a78 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwayland.nix @@ -0,0 +1,9 @@ +{ qtModule, qtbase, qtquickcontrols, wayland, pkg-config }: + +qtModule { + name = "qtwayland"; + qtInputs = [ qtbase qtquickcontrols ]; + buildInputs = [ wayland ]; + nativeBuildInputs = [ pkg-config ]; + outputs = [ "out" "dev" "bin" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebchannel.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebchannel.nix new file mode 100644 index 000000000000..84fb88385a3e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebchannel.nix @@ -0,0 +1,8 @@ +{ qtModule, qtbase, qtdeclarative }: + +qtModule { + name = "qtwebchannel"; + qtInputs = [ qtbase qtdeclarative ]; + outputs = [ "out" "dev" "bin" ]; +} + diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix new file mode 100644 index 000000000000..7e5582cca481 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix @@ -0,0 +1,234 @@ +{ qtModule +, qtdeclarative, qtquickcontrols, qtlocation, qtwebchannel + +, bison, coreutils, flex, git, gperf, ninja, pkg-config, python2, which + +, xorg, libXcursor, libXScrnSaver, libXrandr, libXtst +, fontconfig, freetype, harfbuzz, icu, dbus, libdrm +, zlib, minizip, libjpeg, libpng, libtiff, libwebp, libopus +, jsoncpp, protobuf, libvpx, srtp, snappy, nss, libevent +, alsaLib +, libcap +, pciutils +, systemd +, enableProprietaryCodecs ? true +, gn +, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin +, ffmpeg_3 ? null +, lib, stdenv, fetchpatch +, qtCompatVersion +}: + +with lib; + +qtModule { + name = "qtwebengine"; + qtInputs = [ qtdeclarative qtquickcontrols qtlocation qtwebchannel ]; + nativeBuildInputs = [ + bison coreutils flex git gperf ninja pkg-config python2 which gn + ] ++ optional stdenv.isDarwin xcbuild; + doCheck = true; + outputs = [ "bin" "dev" "out" ]; + + enableParallelBuilding = true; + + # Don’t use the gn setup hook + dontUseGnConfigure = true; + + # ninja builds some components with -Wno-format, + # which cannot be set at the same time as -Wformat-security + hardeningDisable = [ "format" ]; + + postPatch = + # Patch Chromium build tools + '' + ( cd src/3rdparty/chromium; patchShebangs . ) + '' + # Prevent Chromium build script from making the path to `clang` relative to + # the build directory. `clang_base_path` is the value of `QMAKE_CLANG_DIR` + # from `src/core/config/mac_osx.pri`. + + optionalString stdenv.isDarwin '' + substituteInPlace ./src/3rdparty/chromium/build/toolchain/mac/BUILD.gn \ + --replace 'prefix = rebase_path("$clang_base_path/bin/", root_build_dir)' 'prefix = "$clang_base_path/bin/"' + '' + # Patch library paths in Qt sources + + '' + sed -i \ + -e "s,QLibraryInfo::location(QLibraryInfo::DataPath),QLatin1String(\"$out\"),g" \ + -e "s,QLibraryInfo::location(QLibraryInfo::TranslationsPath),QLatin1String(\"$out/translations\"),g" \ + -e "s,QLibraryInfo::location(QLibraryInfo::LibraryExecutablesPath),QLatin1String(\"$out/libexec\"),g" \ + src/core/web_engine_library_info.cpp + '' + # Patch library paths in Chromium sources + + optionalString (!stdenv.isDarwin) '' + sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \ + src/3rdparty/chromium/device/udev_linux/udev?_loader.cc + + sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \ + src/3rdparty/chromium/gpu/config/gpu_info_collector_linux.cc + '' + + optionalString stdenv.isDarwin ( + (if (lib.versionAtLeast qtCompatVersion "5.14") then '' + substituteInPlace src/buildtools/config/mac_osx.pri \ + --replace 'QMAKE_CLANG_DIR = "/usr"' 'QMAKE_CLANG_DIR = "${stdenv.cc}"' + '' else '' + substituteInPlace src/core/config/mac_osx.pri \ + --replace 'QMAKE_CLANG_DIR = "/usr"' 'QMAKE_CLANG_DIR = "${stdenv.cc}"' + '') + # Following is required to prevent a build error: + # ninja: error: '/nix/store/z8z04p0ph48w22rqzx7ql67gy8cyvidi-SDKs/MacOSX10.12.sdk/usr/include/mach/exc.defs', needed by 'gen/third_party/crashpad/crashpad/util/mach/excUser.c', missing and no known rule to make it + + '' + substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \ + --replace '$sysroot/usr' "${darwin.xnu}" + '' + # Apple has some secret stuff they don't share with OpenBSM + + (if (lib.versionAtLeast qtCompatVersion "5.14") then '' + substituteInPlace src/3rdparty/chromium/base/mac/mach_port_rendezvous.cc \ + --replace "audit_token_to_pid(request.trailer.msgh_audit)" "request.trailer.msgh_audit.val[5]" + substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/mach/mach_message.cc \ + --replace "audit_token_to_pid(audit_trailer->msgh_audit)" "audit_trailer->msgh_audit.val[5]" + '' else '' + substituteInPlace src/3rdparty/chromium/base/mac/mach_port_broker.mm \ + --replace "audit_token_to_pid(msg.trailer.msgh_audit)" "msg.trailer.msgh_audit.val[5]" + '') + + '' + substituteInPlace src/3rdparty/chromium/sandbox/mac/BUILD.gn \ + --replace 'libs = [ "sandbox" ]' 'libs = [ "/usr/lib/libsandbox.1.dylib" ]' + ''); + + NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [ + # with gcc8, -Wclass-memaccess became part of -Wall and this exceeds the logging limit + "-Wno-class-memaccess" + ] ++ lib.optionals (stdenv.hostPlatform.gcc.arch or "" == "sandybridge") [ + # it fails when compiled with -march=sandybridge https://github.com/NixOS/nixpkgs/pull/59148#discussion_r276696940 + # TODO: investigate and fix properly + "-march=westmere" + ] ++ lib.optionals stdenv.isDarwin [ + "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12" + "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_12" + + # + # Prevent errors like + # /nix/store/xxx-apple-framework-CoreData/Library/Frameworks/CoreData.framework/Headers/NSEntityDescription.h:51:7: + # error: pointer to non-const type 'id' with no explicit ownership + # id** _kvcPropertyAccessors; + # + # TODO remove when new Apple SDK is in + # + "-fno-objc-arc" + ]; + + preConfigure = '' + export NINJAFLAGS=-j$NIX_BUILD_CORES + + if [ -d "$PWD/tools/qmake" ]; then + QMAKEPATH="$PWD/tools/qmake''${QMAKEPATH:+:}$QMAKEPATH" + fi + ''; + + qmakeFlags = if stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64 + then [ "--" "-system-ffmpeg" ] ++ optional enableProprietaryCodecs "-proprietary-codecs" + else optional enableProprietaryCodecs "-- -proprietary-codecs"; + + propagatedBuildInputs = [ + # Image formats + libjpeg libpng libtiff libwebp + + # Video formats + srtp libvpx + + # Audio formats + libopus + + # Text rendering + harfbuzz icu + + libevent + ] ++ optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [ + ffmpeg_3 + ] ++ optionals (!stdenv.isDarwin) [ + dbus zlib minizip snappy nss protobuf jsoncpp + + # Audio formats + alsaLib + + # Text rendering + fontconfig freetype + + libcap + pciutils + + # X11 libs + xorg.xrandr libXScrnSaver libXcursor libXrandr xorg.libpciaccess libXtst + xorg.libXcomposite xorg.libXdamage libdrm + ] + + # FIXME These dependencies shouldn't be needed but can't find a way + # around it. Chromium pulls this in while bootstrapping GN. + ++ lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [ + libobjc + cctools + + # frameworks + ApplicationServices + AVFoundation + Foundation + ForceFeedback + GameController + AppKit + ImageCaptureCore + CoreBluetooth + IOBluetooth + CoreWLAN + Quartz + Cocoa + LocalAuthentication + + openbsm + libunwind + ]); + + buildInputs = optionals stdenv.isDarwin (with darwin; [ + cups + + # `sw_vers` is used by `src/3rdparty/chromium/build/config/mac/sdk_info.py` + # to get some information about the host platform. + (writeScriptBin "sw_vers" '' + #!${stdenv.shell} + + while [ $# -gt 0 ]; do + case "$1" in + -buildVersion) echo "17E199";; + *) break ;; + + esac + shift + done + '') + + # For sandbox.h include + (runCommand "MacOS_SDK_sandbox.h" {} '' + install -Dm444 "${lib.getDev darwin.apple_sdk.sdk}"/include/sandbox.h "$out"/include/sandbox.h + '') + ]); + + __impureHostDeps = optional stdenv.isDarwin "/usr/lib/libsandbox.1.dylib"; + + dontUseNinjaBuild = true; + dontUseNinjaInstall = true; + dontUseXcbuild = true; + + postInstall = lib.optionalString stdenv.isLinux '' + cat > $out/libexec/qt.conf <<EOF + [Paths] + Prefix = .. + EOF + ''; + + meta = with lib; { + description = "A web engine based on the Chromium web browser"; + maintainers = with maintainers; [ matthewbauer ]; + platforms = platforms.unix; + }; + +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebglplugin.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebglplugin.nix new file mode 100644 index 000000000000..444d0c1beae8 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebglplugin.nix @@ -0,0 +1,6 @@ +{ qtModule, qtbase, qtwebsockets }: + +qtModule { + name = "qtwebglplugin"; + qtInputs = [ qtbase qtwebsockets ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix new file mode 100644 index 000000000000..288a0e30f690 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix @@ -0,0 +1,70 @@ +{ qtModule, stdenv, lib, fetchurl +, qtbase, qtdeclarative, qtlocation, qtmultimedia, qtsensors, qtwebchannel +, fontconfig, libwebp, libxml2, libxslt +, sqlite, systemd, glib, gst_all_1, cmake +, bison, flex, gdb, gperf, perl, pkg-config, python2, ruby +, darwin +}: + +let + inherit (lib) optional optionals getDev getLib; + hyphen = stdenv.mkDerivation rec { + name = "hyphen-2.8.8"; + src = fetchurl { + url = "http://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-${name}.tar.gz"; + sha256 = "304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705"; + }; + postPatch = '' + patchShebangs tests + ''; + buildInputs = [ perl ]; + }; + usingAnnulenWebkitFork = lib.versionAtLeast qtbase.version "5.11.0"; +in +qtModule { + name = "qtwebkit"; + qtInputs = [ qtbase qtdeclarative qtlocation qtsensors ] + ++ optional (stdenv.isDarwin && lib.versionAtLeast qtbase.version "5.9.0") qtmultimedia + ++ optional usingAnnulenWebkitFork qtwebchannel; + buildInputs = [ fontconfig libwebp libxml2 libxslt sqlite glib gst_all_1.gstreamer gst_all_1.gst-plugins-base ] + ++ optionals (stdenv.isDarwin) (with darwin; with apple_sdk.frameworks; [ ICU OpenGL ]) + ++ optional usingAnnulenWebkitFork hyphen; + nativeBuildInputs = [ + bison flex gdb gperf perl pkg-config python2 ruby + ] ++ optional usingAnnulenWebkitFork cmake; + + cmakeFlags = optionals usingAnnulenWebkitFork ([ "-DPORT=Qt" ] + ++ optionals stdenv.isDarwin [ + "-DQt5Multimedia_DIR=${getDev qtmultimedia}/lib/cmake/Qt5Multimedia" + "-DQt5MultimediaWidgets_DIR=${getDev qtmultimedia}/lib/cmake/Qt5MultimediaWidgets" + "-DMACOS_FORCE_SYSTEM_XML_LIBRARIES=OFF" + ]); + + # QtWebKit overrides qmake's default_pre and default_post features, + # so its custom qmake files must be found first at the front of QMAKEPATH. + preConfigure = lib.optionalString (!usingAnnulenWebkitFork) '' + QMAKEPATH="$PWD/Tools/qmake''${QMAKEPATH:+:}$QMAKEPATH" + fixQtBuiltinPaths . '*.pr?' + # Fix hydra's "Log limit exceeded" + export qmakeFlags="$qmakeFlags CONFIG+=silent" + ''; + + NIX_CFLAGS_COMPILE = [ + # with gcc7 this warning blows the log over Hydra's limit + "-Wno-expansion-to-defined" + ] + # with gcc8, -Wclass-memaccess became part of -Wall and this too exceeds the logging limit + ++ optional stdenv.cc.isGNU "-Wno-class-memaccess" + # with clang this warning blows the log over Hydra's limit + ++ optional stdenv.isDarwin "-Wno-inconsistent-missing-override" + ++ optional (!stdenv.isDarwin) ''-DNIXPKGS_LIBUDEV="${getLib systemd}/lib/libudev"''; + + doCheck = false; # fails 13 out of 13 tests (ctest) + + # Hack to avoid TMPDIR in RPATHs. + preFixup = ''rm -rf "$(pwd)" && mkdir "$(pwd)" ''; + + meta = { + maintainers = with lib.maintainers; [ abbradar periklis ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebsockets.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebsockets.nix new file mode 100644 index 000000000000..ad5e7625f289 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebsockets.nix @@ -0,0 +1,7 @@ +{ qtModule, qtbase, qtdeclarative }: + +qtModule { + name = "qtwebsockets"; + qtInputs = [ qtbase qtdeclarative ]; + outputs = [ "out" "dev" "bin" ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebview.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebview.nix new file mode 100644 index 000000000000..4034dce49f56 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebview.nix @@ -0,0 +1,14 @@ +{ darwin, lib, stdenv, qtModule, qtdeclarative, qtwebengine }: + +with lib; + +qtModule { + name = "qtwebview"; + qtInputs = [ qtdeclarative qtwebengine ]; + buildInputs = optional (stdenv.isDarwin) [ + darwin.apple_sdk.frameworks.CoreFoundation + darwin.apple_sdk.frameworks.WebKit + ]; + outputs = [ "out" "dev" "bin" ]; + NIX_LDFLAGS = optionalString stdenv.isDarwin "-framework CoreFoundation -framework WebKit"; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtx11extras.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtx11extras.nix new file mode 100644 index 000000000000..4d431fee278b --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtx11extras.nix @@ -0,0 +1,6 @@ +{ qtModule, qtbase }: + +qtModule { + name = "qtx11extras"; + qtInputs = [ qtbase ]; +} diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtxmlpatterns.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtxmlpatterns.nix new file mode 100644 index 000000000000..7ac922421f08 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtxmlpatterns.nix @@ -0,0 +1,7 @@ +{ qtModule, qtbase, qtdeclarative }: + +qtModule { + name = "qtxmlpatterns"; + qtInputs = [ qtbase qtdeclarative ]; + devTools = [ "bin/xmlpatterns" "bin/xmlpatternsvalidator" ]; +} |