summaryrefslogtreecommitdiffstats
path: root/derivation.nix
blob: ea479d0328934a6db064f7b3b10be80e9b7f1f9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{ stdenv, rustPlatform, llvm, libclang, clang, runtimeShell }:

rustPlatform.buildRustPackage {
  pname = "poseidoc";
  version = "0.1";

  src = ./.;

  buildInputs = [ llvm libclang ];
  LIBCLANG_PATH = "${libclang}/lib";

  cargoSha256 = "1yi49fmqxmqrp5m6cqpfbvi76c76xaw6kiic7jpf1vaa2q7px4rk";

  postFixup = ''
    shell=${runtimeShell}
    wrapped='.poseidoc-wrapped'
    libc_includes='-idirafter "${clang.libc_dev}/include"'
    cxx_stdlib_flags='$(echo -n "${clang.default_cxx_stdlib_compile}")'
    resource_dir_flags='-resource-dir=${clang}/resource-root'

    export shell wrapped libc_includes cxx_stdlib_flags resource_dir_flags

    mv $out/bin/poseidoc $out/bin/$wrapped
    substituteAll ${./nix-wrapper.sh} $out/bin/poseidoc
    chmod --reference=$out/bin/$wrapped $out/bin/poseidoc
  '';
}