Files
komp_ac/flake.nix

78 lines
2.0 KiB
Nix

{
description = "Komp AC - Kompress Accounting";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
portableServer = import ./packaging/musl {
inherit pkgs;
source = self;
version = "0.8.41";
};
in
{
packages = pkgs.lib.optionalAttrs (system == "x86_64-linux") {
portable-server = portableServer;
};
devShells.default = pkgs.mkShell {
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [ pkgs.openssl ];
buildInputs = with pkgs; [
mermaid-cli
# Rust toolchain
rustc
cargo
rustfmt
clippy
cargo-watch
rust-analyzer
cargo-tarpaulin
cargo-flamegraph
rust-code-analysis
# Load testing and system monitoring
ghz
k6
sysstat
# C build tools (for your linker issue)
gcc
binutils
# Fast linker (lld) for quicker dev rebuilds
lld
pkg-config
# OpenSSL for crypto dependencies
openssl
openssl.dev
# PostgreSQL for sqlx
postgresql
sqlx-cli
# Protocol Buffers compiler for gRPC
protobuf
protoc-gen-doc
buf
];
shellHook = ''
export PKG_CONFIG_PATH="${pkgs.openssl.dev}/lib/pkgconfig:$PKG_CONFIG_PATH"
export OPENSSL_DIR="${pkgs.openssl.dev}"
export OPENSSL_LIB_DIR="${pkgs.openssl.out}/lib"
export OPENSSL_INCLUDE_DIR="${pkgs.openssl.dev}/include"
echo "🦀 Rust development environment loaded"
echo "OpenSSL and PostgreSQL available"
'';
};
}
);
}