summaryrefslogtreecommitdiffstats
path: root/derivation.nix
diff options
context:
space:
mode:
Diffstat (limited to 'derivation.nix')
-rw-r--r--derivation.nix27
1 files changed, 27 insertions, 0 deletions
diff --git a/derivation.nix b/derivation.nix
new file mode 100644
index 0000000..e877c04
--- /dev/null
+++ b/derivation.nix
@@ -0,0 +1,27 @@
1{ stdenv, rustPlatform, llvm, libclang, clang, runtimeShell }:
2
3rustPlatform.buildRustPackage {
4 pname = "poseidoc";
5 version = "0.1";
6
7 src = ./.;
8
9 buildInputs = [ llvm libclang ];
10 LIBCLANG_PATH = "${libclang}/lib";
11
12 cargoSha256 = "0hrqzfzirq8xx32l969367xznlr6wf606xnwkqzknxdc2lxs7k40";
13
14 postFixup = ''
15 shell=${runtimeShell}
16 wrapped='.poseidoc-wrapped'
17 libc_includes='-idirafter "${clang.libc_dev}/include"'
18 cxx_stdlib_flags='$(echo -n "${clang.default_cxx_stdlib_compile}")'
19 resource_dir_flags='-resource-dir=${clang}/resource-root'
20
21 export shell wrapped libc_includes cxx_stdlib_flags resource_dir_flags
22
23 mv $out/bin/poseidoc $out/bin/$wrapped
24 substituteAll ${./nix-wrapper.sh} $out/bin/poseidoc
25 chmod --reference=$out/bin/$wrapped $out/bin/poseidoc
26 '';
27}