Commit e6629c35 authored by Artturin's avatar Artturin
Browse files

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
```
parent 9fbc4bf2
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -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,7 +212,10 @@ stdenv.mkDerivation rec {

  postFixup = ''
    # https://github.com/B-Lang-org/bsc/blob/65e3a87a17f6b9cf38cbb7b6ad7a4473f025c098/src/comp/bsc.hs#L1839
    wrapProgram $out/bin/bsc --prefix PATH : ${
    # `/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 ])
      }
  '';