faust2: fix build
Fixes https://github.com/NixOS/nixpkgs/issues/12749 The build failure was caused by brittle detection of the llvm version. See the code for (excessive) details. This fix is a quick hack, a proper fix would be to parse the version of the input llvm derivation and use that to derive a proper value. Here we just pin the version. Also move build-time deps to `nativeBuildInputs`.
This commit is contained in:
parent
88ca168312
commit
2f73decba8
@ -37,7 +37,8 @@ let
|
||||
|
||||
inherit src;
|
||||
|
||||
buildInputs = [ makeWrapper llvm emscripten openssl libsndfile pkgconfig libmicrohttpd vim ];
|
||||
nativeBuildInputs = [ makeWrapper pkgconfig vim ];
|
||||
buildInputs = [ llvm emscripten openssl libsndfile libmicrohttpd ];
|
||||
|
||||
|
||||
passthru = {
|
||||
@ -53,6 +54,20 @@ let
|
||||
# correct system.
|
||||
unset system
|
||||
sed -e "232s/LLVM_STATIC_LIBS/LLVMLIBS/" -i compiler/Makefile.unix
|
||||
|
||||
# The makefile sets LLVM_<version> depending on the current llvm
|
||||
# version, but the detection code is quite brittle.
|
||||
#
|
||||
# Failing to properly detect the llvm version means that the macro
|
||||
# LLVM_VERSION ends up being the raw output of `llvm-config --version`, while
|
||||
# the code assumes that it's set to a symbol like `LLVM_35`. Two problems result:
|
||||
# * <command-line>:0:1: error: macro names must be identifiers.; and
|
||||
# * a bunch of undefined reference errors due to conditional definitions relying on
|
||||
# LLVM_XY being defined.
|
||||
#
|
||||
# For now, fix this by 1) pinning the llvm version; 2) manually setting LLVM_VERSION
|
||||
# to something the makefile will recognize.
|
||||
sed '52iLLVM_VERSION=3.7.0' -i compiler/Makefile.unix
|
||||
'';
|
||||
|
||||
# Remove most faust2appl scripts since they won't run properly
|
||||
|
@ -15895,7 +15895,9 @@ let
|
||||
|
||||
faust1 = callPackage ../applications/audio/faust/faust1.nix { };
|
||||
|
||||
faust2 = callPackage ../applications/audio/faust/faust2.nix { };
|
||||
faust2 = callPackage ../applications/audio/faust/faust2.nix {
|
||||
llvm = llvm_37;
|
||||
};
|
||||
|
||||
faust2alqt = callPackage ../applications/audio/faust/faust2alqt.nix { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user