bluespec: Fix wrong executable name for bsc

and also use `makeBinaryWrapper` because it inherits argv0 better.
Wrapping `/bin/bsc` with `makeBinaryWrapper` didn't fix the scriptname
issue.

```
Error Bluespec executable not found: /nix/store/nhsa69in3vhyjx2hxnilzkqmb8j2m2mp-bluespec-2024.07/bin/core/.bsc-wrapped
```
This commit is contained in:
Artturin
2025-04-04 17:25:56 +03:00
parent 9fbc4bf2d3
commit e6629c3564
+8 -5
View File
@@ -22,7 +22,7 @@
asciidoctor,
texliveFull,
which,
makeWrapper,
makeBinaryWrapper,
cctools,
targetPackages,
# install -m 644 lib/libstp.dylib /private/tmp/nix-build-bluespec-2024.07.drv-5/source/inst/lib/SAT
@@ -168,7 +168,7 @@ stdenv.mkDerivation rec {
pkg-config
texliveFull
tcl
makeWrapper
makeBinaryWrapper
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# https://github.com/B-Lang-org/bsc/blob/main/src/comp/bsc.hs#L1838
@@ -212,9 +212,12 @@ stdenv.mkDerivation rec {
postFixup = ''
# https://github.com/B-Lang-org/bsc/blob/65e3a87a17f6b9cf38cbb7b6ad7a4473f025c098/src/comp/bsc.hs#L1839
wrapProgram $out/bin/bsc --prefix PATH : ${
lib.makeBinPath (if stdenv.hostPlatform.isDarwin then [ cctools ] else [ targetPackages.stdenv.cc ])
}
# `/bin/bsc` is a bash script which the script name to call the binary in the `/bin/core` directory
# thus wrapping `/bin/bsc` messes up the scriptname detection in it.
wrapProgram $out/bin/core/bsc \
--prefix PATH : ${
lib.makeBinPath (if stdenv.hostPlatform.isDarwin then [ cctools ] else [ targetPackages.stdenv.cc ])
}
'';
doCheck = true;