diff options
Diffstat (limited to 'pkgs/development/libraries/qt-6/modules/qtbase.nix')
-rw-r--r-- | pkgs/development/libraries/qt-6/modules/qtbase.nix | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/pkgs/development/libraries/qt-6/modules/qtbase.nix b/pkgs/development/libraries/qt-6/modules/qtbase.nix new file mode 100644 index 00000000000..bf210633fc4 --- /dev/null +++ b/pkgs/development/libraries/qt-6/modules/qtbase.nix @@ -0,0 +1,222 @@ +{ stdenv +, lib +, src +, patches ? [ ] +, version +, coreutils +, bison +, flex +, gdb +, gperf +, lndir +, perl +, pkg-config +, python3 +, which +, cmake +, ninja +, ccache +, xmlstarlet +, libproxy +, xlibsWrapper +, xorg +, zstd +, double-conversion +, util-linux +, systemd +, libb2 +, md4c +, mtdev +, lksctp-tools +, libselinux +, libsepol +, vulkan-headers +, vulkan-loader +, valgrind +, libthai +, libdrm +, libdatrie +, lttng-ust +, libepoxy +, libiconv +, dbus +, fontconfig +, freetype +, glib +, harfbuzz +, icu +, libX11 +, libXcomposite +, libXcursor +, libXext +, libXi +, libXrender +, libinput +, libjpeg +, libpng +, libxcb +, libxkbcommon +, libxml2 +, libxslt +, openssl +, pcre +, pcre2 +, sqlite +, udev +, xcbutil +, xcbutilimage +, xcbutilkeysyms +, xcbutilrenderutil +, xcbutilwm +, zlib +, at-spi2-core +, unixODBC +, unixODBCDrivers + # optional dependencies +, cups +, libmysqlclient +, postgresql +, withGtk3 ? false +, dconf +, gtk3 + # options +, libGLSupported ? true +, libGL +, debug ? false +, developerBuild ? false +}: + +let + debugSymbols = debug || developerBuild; +in +stdenv.mkDerivation rec { + pname = "qtbase"; + + inherit src version; + + debug = debugSymbols; + + propagatedBuildInputs = [ + libxml2 + libxslt + openssl + sqlite + zlib + unixODBC + # Text rendering + harfbuzz + icu + # Image formats + libjpeg + libpng + pcre2 + pcre + libproxy + xlibsWrapper + zstd + double-conversion + util-linux + systemd + libb2 + md4c + mtdev + lksctp-tools + libselinux + libsepol + lttng-ust + vulkan-headers + vulkan-loader + libthai + libdrm + libdatrie + valgrind + dbus + glib + udev + # Text rendering + fontconfig + freetype + # X11 libs + libX11 + libXcomposite + libXext + libXi + libXrender + libxcb + libxkbcommon + xcbutil + xcbutilimage + xcbutilkeysyms + xcbutilrenderutil + xcbutilwm + xorg.libXdmcp + xorg.libXtst + xorg.xcbutilcursor + libepoxy + ] ++ (with unixODBCDrivers; [ + psql + sqlite + mariadb + ]) ++ lib.optional libGLSupported libGL; + + buildInputs = [ + python3 + at-spi2-core + 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 cmake xmlstarlet ninja ]; + + propagatedNativeBuildInputs = [ lndir ]; + + enableParallelBuilding = true; + + inherit patches; + + # https://bugreports.qt.io/browse/QTBUG-97568 + postPatch = '' + substituteInPlace src/corelib/CMakeLists.txt --replace /bin/ls ${coreutils}/bin/ls + ''; + + preConfigure = '' + export LD_LIBRARY_PATH="$PWD/build/lib:$PWD/build/plugins/platforms''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" + ''; + + qtPluginPrefix = "lib/qt-6/plugins"; + qtQmlPrefix = "lib/qt-6/qml"; + + cmakeFlags = [ + "-DINSTALL_PLUGINSDIR=${qtPluginPrefix}" + "-DINSTALL_QMLDIR=${qtQmlPrefix}" + "-DQT_FEATURE_journald=ON" + "-DQT_FEATURE_sctp=ON" + "-DQT_FEATURE_libproxy=ON" + "-DQT_FEATURE_system_sqlite=ON" + "-DQT_FEATURE_vulkan=ON" + "-DQT_FEATURE_openssl_linked=ON" + ]; + + outputs = [ "out" "dev" ]; + + postInstall = '' + mkdir -p $dev + mv $out/mkspecs $out/bin $out/libexec $dev/ + ''; + + dontStrip = debugSymbols; + + setupHook = ../hooks/qtbase-setup-hook.sh; + + meta = with lib; { + homepage = "https://www.qt.io/"; + description = "A cross-platform application framework for C++"; + license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ]; + maintainers = with maintainers; [ milahu nickcao ]; + platforms = platforms.linux; + }; +} |