summaryrefslogtreecommitdiff
path: root/projects/kde
diff options
context:
space:
mode:
authorChristoph Cullmann <cullmann@kde.org>2024-01-12 17:47:54 +0100
committerChristoph Cullmann <cullmann@kde.org>2024-01-12 17:47:54 +0100
commit219d27005ae4549f1d150abcca4d7ca197c2b7c1 (patch)
treec92044b4edf560aa6e066be97af4a1bb040bc7e4 /projects/kde
parent9006a94424e63eead2113d069b6d2ae9bd8bf948 (diff)
kde6 => kde
Diffstat (limited to 'projects/kde')
-rwxr-xr-xprojects/kde/cleanup.sh12
-rw-r--r--projects/kde/kdesrc-buildrc32
-rw-r--r--projects/kde/shell.nix148
3 files changed, 192 insertions, 0 deletions
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 <nixpkgs> {};
+
+# 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
+ ];
+}