From a44a90e60bcc658802d1140dd5eeaa86c02c46c1 Mon Sep 17 00:00:00 2001 From: Christoph Cullmann Date: Wed, 18 Jun 2025 21:56:22 +0200 Subject: [PATCH] add current macos config --- projects/kde/kdesrc-buildrc.mac | 37 ++++++++++ projects/kde/shell.nix.mac | 122 ++++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 projects/kde/kdesrc-buildrc.mac create mode 100644 projects/kde/shell.nix.mac diff --git a/projects/kde/kdesrc-buildrc.mac b/projects/kde/kdesrc-buildrc.mac new file mode 100644 index 0000000..06decd7 --- /dev/null +++ b/projects/kde/kdesrc-buildrc.mac @@ -0,0 +1,37 @@ +global + # use the latest KF6 and Qt6-based software. + branch-group kf6-qt6 + + # we want .kateproject files with ninja, turn off some Qt 5 things to have less dependencies + 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 + + # Directory to write logs into + log-dir ~/projects/kde/log + + # use distro stuff for that + ignore-modules wayland wayland-protocols gpgme appstream packagekit-qt polkit-qt-1 kglobalaccel kwallet +end global + +include ${module-definitions-dir}/kf6-qt6.ksb diff --git a/projects/kde/shell.nix.mac b/projects/kde/shell.nix.mac new file mode 100644 index 0000000..092e011 --- /dev/null +++ b/projects/kde/shell.nix.mac @@ -0,0 +1,122 @@ +with import {}; + +# dev env +stdenv.mkDerivation { + name = "clang-nix-shell"; + # ensure the local KDE things are in path + shellHook = '' +export PATH=/Users/cullmann/projects/kde/usr/bin:/Users/cullmann/projects/kde:/Users/cullmann/projects/kde/src/kdesrc-build:$PATH + +# LD_LIBRARY_PATH only needed if you are building without rpath +# export LD_LIBRARY_PATH=/Users/cullmann/projects/kde/usr/lib:/Users/cullmann/projects/kde/usr/lib64:$LD_LIBRARY_PATH + +export QT_PLUGIN_PATH=/Users/cullmann/projects/kde/usr/lib/plugins:/Users/cullmann/projects/kde/usr/lib64/plugins:${pkgs.qt6.qtbase.qtPluginPrefix}:${pkgs.lib.getBin pkgs.qt6.qtsvg}/${pkgs.qt6.qtbase.qtPluginPrefix}:${pkgs.lib.getBin pkgs.qt6.qtspeech}/${pkgs.qt6.qtbase.qtPluginPrefix}:$QT_PLUGIN_PATH +export QML2_IMPORT_PATH=/Users/cullmann/projects/kde/usr/lib/qml:$QML2_IMPORT_PATH + +export QT_QUICK_CONTROLS_STYLE_PATH=/Users/cullmann/projects/kde/usr/lib/qml/QtQuick/Controls.2/:/Users/cullmann/projects/kde/usr/lib64/qml/QtQuick/Controls.2/:$QT_QUICK_CONTROLS_STYLE_PATH + ''; + + # add all needed stuff to have a KDE KF6 Qt6 env + nativeBuildInputs = with pkgs; [ + appstream + bison + boost + bzip2 + clang-tools_17 + cmake + ctags + curl + discount + djvulibre + docbook_xml_dtd_45 + docbook_xsl_ns + doxygen + ebook_tools + exiv2 + flex + giflib + gitFull + gperf + gpgme + graphviz + hunspell + hunspellDicts.en_US + intltool + isocodes + lcms2 + libarchive + libcanberra + libgcrypt + libical + libjpeg + libjxl + libpcap + libpng + libraw + libsndfile + libspectre + libxml2 + libxslt + libzip + lmdb + meson + llvmPackages_17.libclang.python # git-clang-format + ninja + openjpeg + pcre + perl + perlPackages.IOSocketSSL + perlPackages.JSONXS + perlPackages.NetDBus + perlPackages.URI + perlPackages.XMLParser + perlPackages.YAMLPP + python312Full + python312Packages.lxml + python312Packages.overrides + python312Packages.promise + python312Packages.pyaml + python312Packages.python-gitlab + python312Packages.setproctitle + python312Packages.multiprocess + pkg-config + 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.qtwebchannel + #qt6.qtwebengine + qt6.qtwebsockets + qt6.qtwebview + xercesc + xml2 + xmlto + zlib + zstd + xz + ]; +}