-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathshell.nix
40 lines (34 loc) · 980 Bytes
/
shell.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{ pkgs ? import <nixpkgs> { } }:
let
# Development tools
devTools = with pkgs; [
# Rust tooling
cargo # Rust package manager
rustc # Rust compiler
rust-analyzer # LSP Server
rustfmt # Formatter
clippy # Linter
# System dependencies
pkg-config
openssl
openssl.dev
];
# Environment variables for development
envVars = {
# Enable better rust development experience
RUST_BACKTRACE = "1";
RUST_LOG = "info";
CARGO_INCREMENTAL = "1";
# OpenSSL configuration
OPENSSL_DIR = "${pkgs.openssl.dev}";
OPENSSL_LIB_DIR = "${pkgs.openssl.out}/lib";
};
in
pkgs.mkShell {
# Get dependencies from the main package
inputsFrom = [ (pkgs.callPackage ./default.nix { }) ];
# Add development tools
buildInputs = devTools;
# Set environment variables
inherit (envVars) RUST_BACKTRACE RUST_LOG CARGO_INCREMENTAL OPENSSL_DIR OPENSSL_LIB_DIR;
}