From 219d27005ae4549f1d150abcca4d7ca197c2b7c1 Mon Sep 17 00:00:00 2001 From: Christoph Cullmann Date: Fri, 12 Jan 2024 17:47:54 +0100 Subject: kde6 => kde --- projects/kde/cleanup.sh | 12 ++++ projects/kde/kdesrc-buildrc | 32 ++++++++++ projects/kde/shell.nix | 148 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 192 insertions(+) create mode 100755 projects/kde/cleanup.sh create mode 100644 projects/kde/kdesrc-buildrc create mode 100644 projects/kde/shell.nix (limited to 'projects/kde') diff --git a/projects/kde/cleanup.sh b/projects/kde/cleanup.sh new file mode 100755 index 0000000..5efb0a3 --- /dev/null +++ b/projects/kde/cleanup.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +# kill all old stuff +rm -rf ~/projects/kde/src ~/projects/kde/build ~/projects/kde/usr || exit 1 + +# get new kdesrc-build +mkdir -p ~/projects/kde/src || exit 1 +cd ~/projects/kde/src || exit 1 +git clone https://invent.kde.org/sdk/kdesrc-build.git || exit 1 + +# start from scratch +exec ./kdesrc-build/kdesrc-build --rc-file=../kdesrc-buildrc --include-dependencies breeze plasma-integration kwayland-integration konsole kate diff --git a/projects/kde/kdesrc-buildrc b/projects/kde/kdesrc-buildrc new file mode 100644 index 0000000..8ddb4c5 --- /dev/null +++ b/projects/kde/kdesrc-buildrc @@ -0,0 +1,32 @@ +global + # use the latest KF6 and Qt6-based software. + branch-group kf6-qt6 + + # we want .kateproject files with ninja + cmake-options -G "Kate - Ninja" -DBUILD_WITH_QT6=ON -DQT_MAJOR_VERSION=6 -DPHONON_BUILD_QT5=OFF -DBUILD_QT5=OFF + + # Restrict make and ninja to using no more than 8 separate compile jobs even + # when more CPU is available, to avoid running out of memory + make-options -j8 NINJAFLAGS=-j8 + ninja-options -j8 + + # clangd tooling + compile-commands-export yes + compile-commands-linking yes + + # flat structure + directory-layout flat + + # Install directory for KDE software + install-dir ~/projects/kde/usr + + # Directory for downloaded source code + source-dir ~/projects/kde/src + + # Directory to build KDE into before installing + # relative to source-dir by default + build-dir ~/projects/kde/build +end global + +include ~/projects/kde/src/kdesrc-build/data/build-include/kf6-frameworks.ksb +include ~/projects/kde/src/kdesrc-build/data/build-include/kf6-applications.ksb diff --git a/projects/kde/shell.nix b/projects/kde/shell.nix new file mode 100644 index 0000000..8f0e1ba --- /dev/null +++ b/projects/kde/shell.nix @@ -0,0 +1,148 @@ +with import {}; + +# use new clang +let myllvm = llvmPackages_16; in + +# clang based dev env +myllvm.stdenv.mkDerivation { + name = "clang-nix-shell"; + # ensure the local KDE things are in path + shellHook = '' +export PATH=/home/cullmann/projects/kde/usr/bin:/home/cullmann/projects/kde:/home/cullmann/projects/kde/src/kdesrc-build:$PATH + +# LD_LIBRARY_PATH only needed if you are building without rpath +# export LD_LIBRARY_PATH=/home/cullmann/projects/kde/usr/lib:$LD_LIBRARY_PATH + +export QT_PLUGIN_PATH=/home/cullmann/projects/kde/usr/lib/plugins:${pkgs.qt6.qtbase.qtPluginPrefix}:${pkgs.lib.getBin pkgs.qt6.qtsvg}/${pkgs.qt6.qtbase.qtPluginPrefix}:${pkgs.lib.getBin pkgs.qt6.qtwayland}/${pkgs.qt6.qtbase.qtPluginPrefix}:${pkgs.lib.getBin pkgs.qt6.qtspeech}/${pkgs.qt6.qtbase.qtPluginPrefix}:$QT_PLUGIN_PATH +export QML2_IMPORT_PATH=/home/cullmann/projects/kde/usr/lib/qml:$QML2_IMPORT_PATH + +export QT_QUICK_CONTROLS_STYLE_PATH=/home/cullmann/projects/kde/usr/lib/qml/QtQuick/Controls.2/:$QT_QUICK_CONTROLS_STYLE_PATH + ''; + + # add all needed stuff to have a KDE KF6 Qt6 env + nativeBuildInputs = with pkgs; [ + acl + appstream + attr + bison + boost + bzip2 + cmake + ctags + curl + docbook_xml_dtd_45 + docbook_xsl_ns + exiv2 + flex + gdb + giflib + gitFull + gperf + gpgme + hunspell + hunspellDicts.en_US + intltool + isocodes + lcms2 + libcanberra + libcap + libdisplay-info + libepoxy + libgcrypt + libGL + libical + libinput + libjpeg + libjxl + libnl + libpcap + libpng + libraw + libselinux + libsndfile + libva + libxkbcommon + libxml2 + libxslt + linux-pam + lm_sensors + lmdb + mesa + meson + myllvm.libclang.python # git-clang-format + networkmanager + ninja + openal + openjpeg + openssl + pcre + perl + perlPackages.IOSocketSSL + perlPackages.JSONXS + perlPackages.NetDBus + perlPackages.URI + perlPackages.XMLParser + perlPackages.YAMLPP + python3Full + python311Packages.pyaml + python311Packages.python-gitlab + pkg-config + polkit + qrencode + qt6.qt3d + qt6.qt5compat + qt6.qtbase + qt6.qtcharts + qt6.qtconnectivity + qt6.qtdatavis3d + qt6.qtdeclarative + qt6.qtdoc + qt6.qtimageformats + qt6.qtlanguageserver + qt6.qtlottie + qt6.qtmultimedia + qt6.qtnetworkauth + qt6.qtpositioning + qt6.qtquick3d + qt6.qtquicktimeline + qt6.qtremoteobjects + qt6.qtscxml + qt6.qtsensors + qt6.qtserialbus + qt6.qtserialport + qt6.qtshadertools + qt6.qtspeech + qt6.qtsvg + qt6.qttools + qt6.qttranslations + qt6.qtvirtualkeyboard + qt6.qtwayland + qt6.qtwebchannel + qt6.qtwebengine + qt6.qtwebsockets + qt6.qtwebview + udev + util-linux + valgrind + wayland + wayland-protocols + xcb-util-cursor + xercesc + xml2 + xorg.libSM + xorg.libX11 + xorg.libXau + xorg.libxcb + xorg.libxcvt + xorg.libXdmcp + xorg.libXext + xorg.libXfixes + xorg.xcbutil + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilwm + zlib + zstd + xz + ]; +} -- cgit v1.2.3