mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 00:57:22 +01:00
62 lines
1.4 KiB
Nix
62 lines
1.4 KiB
Nix
# heavily inspired by https://github.com/nulladmin1/nix-flake-templates/blob/main/cpp-cmake/flake.nix
|
|
{
|
|
description = "C++ Flake";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
|
systems.url = "github:nix-systems/default";
|
|
};
|
|
|
|
outputs =
|
|
{ self
|
|
, nixpkgs
|
|
, systems
|
|
, ...
|
|
}:
|
|
let
|
|
forEachSystem = nixpkgs.lib.genAttrs (import systems);
|
|
pkgsFor = forEachSystem (system: import nixpkgs { inherit system; });
|
|
|
|
pname = "name";
|
|
in
|
|
{
|
|
formatter = forEachSystem (system: pkgsFor.${system}.nixpgks-fmt);
|
|
|
|
devShells = forEachSystem (system: {
|
|
default = pkgsFor.${system}.mkShell {
|
|
packages = with pkgsFor.${system}; [
|
|
libllvm
|
|
cmake
|
|
gtest
|
|
cppcheck
|
|
valgrind
|
|
doxygen
|
|
clang-tools
|
|
# cudatoolkit
|
|
];
|
|
};
|
|
});
|
|
|
|
packages = forEachSystem (system: {
|
|
default = pkgsFor.${system}.stdenv.mkDerivation {
|
|
inherit pname;
|
|
version = "0.1.0";
|
|
src = ./.;
|
|
|
|
nativeBuildInputs = with pkgsFor.${system}; [
|
|
cmake
|
|
];
|
|
buildInputs = with pkgsFor.${system}; [
|
|
gtest
|
|
];
|
|
};
|
|
});
|
|
|
|
apps = forEachSystem (system: {
|
|
default = {
|
|
type = "app";
|
|
program = "${self.packages.${system}.default}/bin/${pname}";
|
|
};
|
|
});
|
|
};
|
|
}
|