add flakes
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
This commit is contained in:
parent
dca96d2f2e
commit
0dbbc6a778
4 changed files with 151 additions and 0 deletions
39
default.nix
Normal file
39
default.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{ lib, darwin, stdenv, openssl, pkg-config, rustPlatform, }:
|
||||||
|
let cargoFile = (builtins.fromTOML (builtins.readFile ./Cargo.toml)).package;
|
||||||
|
in rustPlatform.buildRustPackage {
|
||||||
|
|
||||||
|
pname = cargoFile.name; # The name of the package
|
||||||
|
version = cargoFile.version; # The version of the package
|
||||||
|
|
||||||
|
# You can use lib here to make a more accurate source
|
||||||
|
# this can be nice to reduce the amount of rebuilds
|
||||||
|
# but thats out of scope for this post
|
||||||
|
src = ./.; # The source of the package
|
||||||
|
|
||||||
|
# The lock file of the package, this can be done in other ways
|
||||||
|
# like cargoHash, we are not doing it in this case because this
|
||||||
|
# is much simpler, especially if we have access to the lock file
|
||||||
|
# in our source tree
|
||||||
|
cargoLock.lockFile = ./Cargo.lock;
|
||||||
|
|
||||||
|
# The runtime dependencies of the package
|
||||||
|
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin
|
||||||
|
(with darwin.apple_sdk.frameworks; [
|
||||||
|
Security
|
||||||
|
CoreFoundation
|
||||||
|
SystemConfiguration
|
||||||
|
]);
|
||||||
|
|
||||||
|
# programs and libraries used at build-time that, if they are a compiler or
|
||||||
|
# similar tool, produce code to run at run-time—i.e. tools used to build the new derivation
|
||||||
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
|
cargoLock.outputHashes = {
|
||||||
|
"mcp-core-1.0.7" = "sha256-I2lxsv71i/LLZN3r/7mwNc6nZRd1xtQNVUm/g08nhn0=";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
license = lib.licenses.mit;
|
||||||
|
mainProgram = cargoFile.name;
|
||||||
|
};
|
||||||
|
}
|
62
flake.lock
generated
Normal file
62
flake.lock
generated
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1743315132,
|
||||||
|
"narHash": "sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om+D4UnDhlDW9BE=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "52faf482a3889b7619003c0daec593a1912fddc1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736320768,
|
||||||
|
"narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "4bc9c909d9ac828a039f288cf872d16d38185db8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1743475035,
|
||||||
|
"narHash": "sha256-uLjVsb4Rxnp1zmFdPCDmdODd4RY6ETOeRj0IkC0ij/4=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "bee11c51c2cda3ac57c9e0149d94b86cc1b00d13",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
39
flake.nix
Normal file
39
flake.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||||
|
};
|
||||||
|
outputs = { self, nixpkgs, rust-overlay, ... }:
|
||||||
|
let
|
||||||
|
namespace = "hello";
|
||||||
|
overlays = [ rust-overlay.overlays.default ];
|
||||||
|
forEachSystem = systems: f: nixpkgs.lib.genAttrs systems f;
|
||||||
|
forAllSystems = function:
|
||||||
|
nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed
|
||||||
|
(system: function (import nixpkgs { inherit system overlays; }));
|
||||||
|
in {
|
||||||
|
packages =
|
||||||
|
forAllSystems (pkgs: (self.overlays.default pkgs pkgs).${namespace});
|
||||||
|
cross = forAllSystems (pkgs:
|
||||||
|
(forEachSystem (nixpkgs.lib.filter (sys: sys != pkgs.system)
|
||||||
|
nixpkgs.lib.systems.flakeExposed) (crossSystem:
|
||||||
|
let
|
||||||
|
crossPkgs = import nixpkgs {
|
||||||
|
localSystem = pkgs.system;
|
||||||
|
inherit crossSystem;
|
||||||
|
};
|
||||||
|
in (self.overlays.default crossPkgs crossPkgs).${namespace})));
|
||||||
|
devShells =
|
||||||
|
forAllSystems (pkgs: (self.overlays.default pkgs pkgs).devShells);
|
||||||
|
formatter = forAllSystems (pkgs: pkgs.nixpkgs-fmt);
|
||||||
|
overlays.default = final: prev:
|
||||||
|
let pkgs = final;
|
||||||
|
in {
|
||||||
|
devShells.default = pkgs.callPackage ./shell.nix { };
|
||||||
|
${namespace} = {
|
||||||
|
hello = pkgs.callPackage ./default.nix { };
|
||||||
|
default = pkgs.callPackage ./default.nix { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
11
shell.nix
Normal file
11
shell.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ clippy, rustfmt, callPackage, rust-analyzer, }:
|
||||||
|
let mainPkg = callPackage ./default.nix { };
|
||||||
|
in mainPkg.overrideAttrs (prev: {
|
||||||
|
nativeBuildInputs = [
|
||||||
|
# Additional Rust tooling
|
||||||
|
clippy
|
||||||
|
rustfmt
|
||||||
|
rust-analyzer
|
||||||
|
] ++ (prev.nativeBuildInputs or [ ]);
|
||||||
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue