nix flake

This commit is contained in:
bramderaeve
2026-05-05 03:16:10 +02:00
parent cb43446e86
commit f1158310dc
4 changed files with 151 additions and 0 deletions

2
.gitignore vendored
View File

@@ -1,2 +1,4 @@
*~
result
/build
/cross

61
flake.lock generated Normal file
View File

@@ -0,0 +1,61 @@
{
"nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1777932387,
"narHash": "sha256-nUYVPiqrzr36ThiQOAr5MKeGHDBSDM3OFWkz0uDjOvc=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "71a3a77326609675e9f8b51084cf23d5d1945899",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1777578337,
"narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "15f4ee454b1dce334612fa6843b3e05cf546efab",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1777168982,
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

50
flake.nix Normal file
View File

@@ -0,0 +1,50 @@
{
description = "NBT library and converter for C++17";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
};
outputs =
inputs@{
flake-parts,
nixpkgs,
self,
...
}:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"x86_64-linux"
];
perSystem =
{ pkgs, self', ... }:
{
packages = {
nbt-cpp = pkgs.callPackage ./package.nix { };
default = self'.packages.nbt-cpp;
};
formatter = pkgs.writeShellApplication {
name = "nixfmt-nbt-cpp";
runtimeInputs = [
pkgs.nixfmt
];
text = ''
nixfmt flake.nix package.nix
'';
};
devShells.default = pkgs.mkShell {
inputsFrom = [
self'.packages.nbt-cpp
];
packages = with pkgs; [
cppcheck
];
};
};
};
}

38
package.nix Normal file
View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
meson,
ninja,
pkg-config,
cppcheck,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nbt-cpp";
version = "0-unstable-2026-05-05";
src = lib.cleanSource ./.;
nativeBuildInputs = [
meson
ninja
pkg-config
cppcheck
];
postPatch = ''
substituteInPlace meson.build \
--replace-fail "version : run_command('git', 'describe', '--abbrev=0', '--tags').stdout().strip()," \
"version : '${finalAttrs.version}',"
'';
doCheck = true;
meta = {
description = "NBT library and converter for C++17";
homepage = "https://github.com/HandTruth/nbt-cpp";
license = lib.licenses.mit;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})