btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / by-name / cx / cxx-rs / package.nix
bloba2864fbb89df4616e92489c1d818117e19835760
1 { cxx-rs, fetchFromGitHub, lib, rustPlatform, testers }:
3 rustPlatform.buildRustPackage rec {
4   pname = "cxx-rs";
5   version = "1.0.94";
7   src = fetchFromGitHub {
8     owner = "dtolnay";
9     repo = "cxx";
10     rev = version;
11     sha256 = "sha256-h6TmQyxhoOhaAWBZr9rRPCf0BE2QMBIYm5uTVKD2paE=";
12   };
14   cargoLock = {
15     lockFile = ./Cargo.lock;
16   };
18   postPatch = ''
19     cp ${./Cargo.lock} Cargo.lock
20   '';
22   cargoBuildFlags = [
23     "--workspace"
24     "--exclude=demo"
25   ];
27   postBuild = ''
28     cargo doc --release
29   '';
31   cargoTestFlags = [ "--workspace" ];
33   outputs = [ "out" "doc" "dev" ];
35   postInstall = ''
36     mkdir -p $doc
37     cp -r ./target/doc/* $doc
39     mkdir -p $dev/include/rust
40     install -D -m 0644 ./include/cxx.h $dev/include/rust
41   '';
43   passthru.tests.version = testers.testVersion {
44     package = cxx-rs;
45     command = "cxxbridge --version";
46   };
48   meta = with lib; {
49     description = "Safe FFI between Rust and C++";
50     mainProgram = "cxxbridge";
51     homepage = "https://github.com/dtolnay/cxx";
52     license = licenses.mit;
53     maintainers = with maintainers; [ centromere ];
54   };