diff --git a/pkgs/by-name/bl/bluespec/package.nix b/pkgs/by-name/bl/bluespec/package.nix index 766bc20cfdaf..5f9fd46c3aa0 100644 --- a/pkgs/by-name/bl/bluespec/package.nix +++ b/pkgs/by-name/bl/bluespec/package.nix @@ -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 @@ -160,15 +160,17 @@ stdenv.mkDerivation rec { [ automake autoconf - asciidoctor bison flex ghcWithPackages perl pkg-config - texliveFull tcl - makeWrapper + makeBinaryWrapper + ] + ++ lib.optionals withDocs [ + texliveFull + asciidoctor ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # https://github.com/B-Lang-org/bsc/blob/main/src/comp/bsc.hs#L1838 @@ -212,12 +214,16 @@ 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; + doInstallCheck = true; # TODO To fix check-suite: # On darwin @@ -276,6 +282,13 @@ stdenv.mkDerivation rec { ) ''; + installCheckPhase = '' + output="$($out/bin/bsc 2>&1 || true)" + echo "bsc output:" + echo "$output" + echo "$output" | grep -q "to get help" + ''; + meta = { description = "Toolchain for the Bluespec Hardware Definition Language"; homepage = "https://github.com/B-Lang-org/bsc";