[M7] flake: lib.buildCppPackage + packages.default

This commit is contained in:
2026-05-15 23:11:06 +00:00
parent f62cff49c6
commit 7c10ea2382

View File

@@ -10,22 +10,61 @@
flake-utils.lib.eachDefaultSystem (system: flake-utils.lib.eachDefaultSystem (system:
let let
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
cargoxx = pkgs.gcc15Stdenv.mkDerivation { cargoxx-bin = pkgs.gcc15Stdenv.mkDerivation {
# Fill rules here pname = "cargoxx";
}; version = "0.1.0";
buildCppPackage = attrs: pkgs.gcc15Stdenv.mkDerivation { src = ./.;
pname = attrs.pname; nativeBuildInputs = [
version = attrs.version; pkgs.cmake
buildPhase = '' pkgs.ninja
cargoxx build ];
buildInputs = [
pkgs.sqlite
pkgs.reproc
pkgs.catch2_3
];
configurePhase = ''
cmake -S build -B build/release -G Ninja \
-DCMAKE_BUILD_TYPE=Release
''; '';
buildPhase = ''
cmake --build build/release
'';
installPhase = ''
mkdir -p $out/bin
cp build/release/cargoxx $out/bin/
'';
hardeningDisable = [ "all" ];
}; };
buildCppPackage = { src, name ? null, ... }@args:
let
lock = builtins.fromTOML (builtins.readFile (src + "/Cargoxx.lock"));
root = builtins.head
(builtins.filter (p: !(p ? linkdb_source)) lock.package);
pname = if name != null then name else root.name;
in pkgs.gcc15Stdenv.mkDerivation {
inherit pname src;
version = root.version;
nativeBuildInputs = [ cargoxx-bin pkgs.nix ];
buildPhase = ''
export HOME=$(mktemp -d)
cargoxx build --release
'';
installPhase = ''
mkdir -p $out/bin
cp build/release/${pname} $out/bin/ 2>/dev/null || \
cp build/release/${pname}_bin $out/bin/${pname}
'';
hardeningDisable = [ "all" ];
__noChroot = true;
};
in { in {
packages.default = cargoxx-bin;
lib.buildCppPackage = buildCppPackage; lib.buildCppPackage = buildCppPackage;
package = cargoxx; devShells.default = pkgs.gcc15Stdenv.mkDerivation {
devShell = pkgs.gcc15Stdenv.mkDerivation { name = "cargoxx-dev";
name = "shell"; version = "0.1.0";
version = "1.0";
nativeBuildInputs = [ nativeBuildInputs = [
pkgs.ninja pkgs.ninja
pkgs.cmake pkgs.cmake
@@ -35,9 +74,7 @@
pkgs.sqlite pkgs.sqlite
pkgs.catch2_3 pkgs.catch2_3
]; ];
hardeningDisable = [ hardeningDisable = [ "all" ];
"all"
];
}; };
}); });
} }