bluespec: Fix wrong executable name for bsc (#396049)

This commit is contained in:
Artturin
2025-04-04 22:44:00 +03:00
committed by GitHub
+20 -7
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
@@ -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";