{ lib, fetchFromGitHub, cmake, extra-cmake-modules, pkg-config, mkDerivation , gtk2Support ? true, gtk2 , qtbase, qtsvg, qtx11extras # Toolkit dependencies , karchive, kconfig, kconfigwidgets, kio, frameworkintegration , kguiaddons, ki18n, kwindowsystem, kdelibs4support, kiconthemes , libpthreadstubs, pcre, libXdmcp, libX11, libXau # X11 dependencies , fetchpatch }: mkDerivation rec { pname = "qtcurve"; version = "1.9.1"; src = fetchFromGitHub { owner = "KDE"; repo = "qtcurve"; rev = version; sha256 = "XP9VTeiVIiMm5mkXapCKWxfcvaYCkhY3S5RXZNR3oWo="; }; patches = [ # Remove unnecessary constexpr, this is not allowed in C++14 (fetchpatch { url = "https://github.com/KDE/qtcurve/commit/ee2228ea2f18ac5da9b434ee6089381df815aa94.patch"; sha256 = "1vz5frsrsps93awn84gk8d7injrqfcyhc1rji6s0gsgsp5z9sl34"; }) # Fix build with Qt5.15 (fetchpatch { url = "https://github.com/KDE/qtcurve/commit/44e2a35ebb164dcab0bad1a9158b1219a3ff6504.patch"; sha256 = "5I2fTxKRJX0cJcyUvYHWZx369FKk6ti9Se7AfYmB9ek="; }) ]; nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ]; buildInputs = [ qtbase qtsvg qtx11extras karchive kconfig kconfigwidgets kio kiconthemes kguiaddons ki18n kwindowsystem kdelibs4support frameworkintegration libpthreadstubs pcre libXdmcp libX11 libXau ] ++ lib.optional gtk2Support gtk2; preConfigure = '' for i in qt5/CMakeLists.txt qt5/config/CMakeLists.txt do substituteInPlace $i \ --replace "{_Qt5_PLUGIN_INSTALL_DIR}" "{KDE_INSTALL_QTPLUGINDIR}" done substituteInPlace CMakeLists.txt \ --replace \$\{GTK2_PREFIX\} $out substituteInPlace gtk2/style/CMakeLists.txt \ --replace \$\{GTK2_LIBDIR\} $out/lib patchShebangs tools/gen-version.sh ''; configureFlags = [ "-DENABLE_GTK2=${if gtk2Support then "ON" else "OFF"}" "-DENABLE_QT4=OFF" ]; meta = with lib; { homepage = "https://github.com/QtCurve/qtcurve"; description = "Widget styles for Qt5/Plasma 5 and gtk2"; platforms = platforms.linux; license = licenses.lgpl21Plus; maintainers = [ ]; }; }