{ description = "A Church Presentation Application"; inputs = { # cargo2nix.url = "github:cargo2nix/cargo2nix/release-0.11.0"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; naersk.url = "github:nix-community/naersk"; flake-utils.url = "github:numtide/flake-utils"; fenix.url = "github:nix-community/fenix"; # nixpkgs.follows = "cargo2nix/nixpkgs"; }; outputs = inputs: with inputs; flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ fenix.overlays.default ]; # overlays = [cargo2nix.overlays.default]; }; naersk' = pkgs.callPackage naersk { }; nbi = with pkgs; [ # ffmpeg alejandra (pkgs.fenix.stable.withComponents [ "cargo" "clippy" "rust-src" "rustc" "rustfmt" ]) rust-analyzer ]; bi = with pkgs; [ gcc stdenv gnumake gdb qtcreator cmake kdePackages.extra-cmake-modules pkg-config qt6.wrapQtAppsHook makeWrapper openssl.dev openssl.out clang-tools clang libclang # libwebp # clang-format qt6.full qt6.qttools qt6.qtbase # qt6.qtquickcontrols2 # qt6.qtx11extras qt6.qtmultimedia qt6.qtwayland qt6.qtwebengine qt6.qtimageformats kdePackages.kirigami # kdePackages.kfilemetadata # libsForQt5.breeze-icons # libsForQt5.breeze-qt5 kdePackages.qqc2-desktop-style # libsForQt5.kirigami-addons # libsForQt5.ki18n # libsForQt5.kcoreaddons # libsForQt5.kguiaddons # libsForQt5.kconfig # podofo mpv kdePackages.mpvqt ffmpeg-full # yt-dlp # Rust tools just clippy rustc cargo rustfmt rust-analyzer sqlx-cli cargo-watch corrosion ]; in rec { # packages = { # crate = (rustPkgs.workspace.libre-presenter { }).bin; # default = packages.crate; # }; devShell = pkgs.mkShell { nativeBuildInputs = nbi; buildInputs = bi; RUST_BACKTRACE = "1"; LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; CMAKE_C_COMPILER = "${pkgs.gcc}/bin/gcc"; CMAKE_CXX_COMPILER = "${pkgs.gcc}/bin/g++"; CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG = true; # KDE_INCLUDEDIR = "${pkgs.kdePackages.kirigami.dev}/include"; # KDE_QMLDIR = "${pkgs.kdePackages.kirigami.dev}/lib/qt-6/qml/org/kde/kirigami/"; # This creates the proper qt env so that plugins are found right. shellHook = '' setQtEnvironment=$(mktemp --suffix .setQtEnvironment.sh) echo "shellHook: setQtEnvironment = $setQtEnvironment" makeQtWrapper "/bin/sh" "$setQtEnvironment" "''${qtWrapperArgs[@]}" sed "/^exec/d" -i "$setQtEnvironment" source "$setQtEnvironment" ''; DATABASE_URL = "sqlite:///home/chris/.local/share/lumina/library-db.sqlite3"; }; # devShell = import ./shell.nix { inherit pkgs; }; # defaultPackage = pkgs.libsForQt5.callPackage ./default.nix { }; }); }