{ lib , stdenv , fetchFromGitHub , cargo , cmake , rustPlatform , rustc , libiconv }: stdenv.mkDerivation rec { pname = "corrosion"; version = "0.4.7"; src = fetchFromGitHub { owner = "corrosion-rs"; repo = "corrosion"; rev = "v${version}"; hash = "sha256-6jjcBBc1gtMG2sYppOIRa/tYjmUgW4kFxAuoGj7Tpgw="; }; cargoRoot = "generator"; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; sourceRoot = "${src.name}/${cargoRoot}"; name = "${pname}-${version}"; hash = "sha256-M5Wnx+SfVvdhC5bHVZa0Di2up3Qt5z1jog8yxIKvG/Y="; }; buildInputs = lib.optional stdenv.isDarwin libiconv; nativeBuildInputs = [ cmake rustPlatform.cargoSetupHook cargo rustc ]; meta = with lib; { description = "Tool for integrating Rust into an existing CMake project"; homepage = "https://github.com/corrosion-rs/corrosion"; changelog = "https://github.com/corrosion-rs/corrosion/blob/${src.rev}/RELEASES.md"; license = licenses.mit; maintainers = with maintainers; [ dotlambda ]; }; }