This commit is contained in:
Rongsong Shen 2025-08-26 10:24:41 +08:00
parent 0e288ce0b1
commit adf4888d4a
4 changed files with 63 additions and 5 deletions

View file

@ -1,6 +1,7 @@
{pkgs,...}: {pkgs,mypkgs,...}:
with pkgs; with pkgs;
{ {
xbuild = callPackage ./pkgs/x/xbuild/package.nix {}; xbuild = callPackage ./pkgs/x/xbuild/package.nix {};
cedro = callPackage ./pkgs/c/cedro/package.nix {}; cedro = callPackage ./pkgs/c/cedro/package.nix {};
capnpc = callPackage ./pkgs/c/capnpc/package.nix {};
} }

View file

@ -3,9 +3,10 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
mypkgs.url = "github:shen390s/my-nix-channel?ref=master";
}; };
outputs = { self, nixpkgs}: outputs = { self, nixpkgs, mypkgs}:
let let
supportedSystems = [ "x86_64-linux" ]; supportedSystems = [ "x86_64-linux" ];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems; forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
@ -14,7 +15,7 @@
packages = forAllSystems (system: let packages = forAllSystems (system: let
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
in in
import ./default.nix { inherit pkgs; }); import ./default.nix { inherit pkgs; inherit mypkgs;});
}; };
} }

46
pkgs/c/capnpc/package.nix Normal file
View file

@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
pkgs,
...
}:
stdenv.mkDerivation {
pname = "capnpc";
version = "1.0.1";
src = fetchFromGitHub {
owner = "shen390s";
repo = "c-capnproto";
rev = "master";
sha256 = "sha256-U+yUYYvfhPjvADtHsjN5LvOUzFEXZrTmmpqfypf/4Ik=";
};
nativeBuildInputs = [
pkgs.cmake
pkgs.ninja
pkgs.capnproto
];
preConfigure = ''
cp "$src/CMakePresets.json" .
'';
configurePhase = ''
cmake --preset=ci-linux_x86_64 -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF
'';
buildPhase = ''
cmake --build --preset=ci-tests
'';
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/include
mkdir -p $out/lib
cp build/capnpc-c $out/bin
cp build/libCapnC_Runtime.a $out/lib
cp lib/capnp_c.h $out/include
'';
}

View file

@ -4,6 +4,7 @@
stdenv, stdenv,
fetchFromGitHub, fetchFromGitHub,
pkgs, pkgs,
mypkgs,
... ...
}: }:
@ -17,7 +18,7 @@ let
repo = "xbuild"; repo = "xbuild";
rev = "master"; rev = "master";
# sha256 = "sha256-DLq7vC+4k2TMy5jKvQkFTy+xZmpvl0+DiWcd7CBVbgw="; # sha256 = "sha256-DLq7vC+4k2TMy5jKvQkFTy+xZmpvl0+DiWcd7CBVbgw=";
sha256 = "sha256-gYIYd3J4mCJJU0yJ+2xL/5URKo+M8T2Q9CWLbxQ2rtQ="; sha256 = "sha256-DD/ErN13ydDwYV5BhF81dJEkDIx1bAFQccDKxjkF+qw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -52,6 +53,15 @@ let
pkgs.linux-pam pkgs.linux-pam
pkgs.libtirpc pkgs.libtirpc
pkgs.hwloc pkgs.hwloc
pkgs.libuv
pkgs.readline
pkgs.openssl
pkgs.libcyaml
pkgs.libyaml
pkgs.elogind
pkgs.sqlite
pkgs.python3
mypkgs.capnpc
]; ];
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -64,7 +74,7 @@ let
makeWrapper "$bin" "$out/bin/$(basename $bin)" \ makeWrapper "$bin" "$out/bin/$(basename $bin)" \
--prefix PATH : ${pkgs.lib.makeBinPath wrapped_xbuild.buildInputs} \ --prefix PATH : ${pkgs.lib.makeBinPath wrapped_xbuild.buildInputs} \
--prefix PKG_CONFIG_PATH : ${pkgs.lib.makeSearchPathOutput "dev" "lib/pkgconfig" wrapped_xbuild.buildInputs} \ --prefix PKG_CONFIG_PATH : ${pkgs.lib.makeSearchPathOutput "dev" "lib/pkgconfig" wrapped_xbuild.buildInputs} \
--set AUTO_DETECT_PKG_CONFIG_PATH no --set AUTO_DETECT_PKG_CONFIG_PATH no
done done
''; '';
}; };