133 lines
4 KiB
Nix
133 lines
4 KiB
Nix
{
|
|
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
|
|
qt6.wrapQtAppsHook
|
|
];
|
|
|
|
bi = with pkgs; [
|
|
gcc
|
|
stdenv
|
|
gnumake
|
|
gdb
|
|
qtcreator
|
|
cmake
|
|
kdePackages.extra-cmake-modules
|
|
pkg-config
|
|
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
|
|
kdePackages.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;
|
|
QML_IMPORT_PATH = "${pkgs.qt6.full}/lib/qt-6/:${pkgs.qt6.qtmultimedia}/lib/qt-6/:${pkgs.qt6.qtwebengine}/lib/qt-6/:${pkgs.qt6.qtimageformats}:${pkgs.kdePackages.kirigami}/lib/qt-6/";
|
|
# KDE_INCLUDEDIR = "${pkgs.kdePackages.kirigami}/include";
|
|
# KDE_QMLDIR = "${pkgs.kdePackages.kirigami}/lib/qt-6/qml/";
|
|
|
|
# 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"
|
|
'';
|
|
# shellHook = ''
|
|
# export CMAKE_PREFIX_PATH="${pkgs.qt6.full}/lib/cmake/Qt6:$CMAKE_PREFIX_PATH"
|
|
# bashdir=$(mktemp -d)
|
|
# makeWrapper "$(type -p bash)" "$bashdir/bash" "''${qtWrapperArgs[@]}"
|
|
# exec "$bashdir/bash"
|
|
# '';
|
|
DATABASE_URL =
|
|
"sqlite:///home/chris/.local/share/lumina/library-db.sqlite3";
|
|
};
|
|
# devShell = import ./shell.nix { inherit pkgs; };
|
|
# defaultPackage = pkgs.libsForQt5.callPackage ./default.nix { };
|
|
});
|
|
}
|