{
description = "A Rust SDK for the Forgejo REST API";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
flake-parts.url = "github:hercules-ci/flake-parts";
flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
nci.url = "github:yusdacra/nix-cargo-integration";
nci.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs@{ flake-parts, ... }:
flake-parts.lib.mkFlake
{
inherit inputs;
}
{
systems = [
"x86_64-linux"
"x86_64-darwin"
"aarch64-linux"
"aarch64-darwin"
];
imports = [
inputs.nci.flakeModule
];
perSystem = { config, pkgs, ... }:
let
crate = "forgejo-sdk";
rust = config.nci.outputs.${crate};
in
{
nci.projects.${crate}.path = ./.;
nci.crates.${crate} =
let
cfg = rec {
mkDerivation = {
buildInputs = [ pkgs.pkg-config pkgs.openssl ];
};
env.LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath mkDerivation.buildInputs;
}; in
{
depsDrvConfig = cfg;
drvConfig = cfg;
};
checks.cargo-test = rust.check;
formatter = pkgs.nixfmt;
devShells.default = pkgs.mkShell rec {
nativeBuildInputs = [ pkgs.pkg-config ];
buildInputs = [ pkgs.openssl ];
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
};
};
};
}