faust2: fix cross / strictDeps build (#370582)

This commit is contained in:
Arne Keller 2025-01-08 14:43:44 +01:00 committed by GitHub
commit 3a91516f16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 45 additions and 3 deletions

View File

@ -78,12 +78,24 @@ let
passthru = { inherit wrap wrapWithBuildEnv faust2ApplBase; };
preConfigure = ''
# include llvm-config in path
export PATH="${lib.getDev llvm_18}/bin:$PATH"
cd build
sed -i 's@LIBNCURSES_PATH ?= .*@LIBNCURSES_PATH ?= ${ncurses_static}/lib/libncurses.a@' Make.llvm.static
substituteInPlace Make.llvm.static \
--replace 'mkdir -p $@ && cd $@ && ar -x ../../$<' 'mkdir -p $@ && cd $@ && ar -x ../source/build/lib/libfaust.a && cd ../source/build/'
substituteInPlace Make.llvm.static \
--replace 'rm -rf $(TMP)' ' '
--replace 'rm -rf $(TMP)' ' ' \
--replace-fail "ar" "${stdenv.cc.targetPrefix}ar"
sed -i 's@LIBNCURSES_PATH ?= .*@LIBNCURSES_PATH ?= ${ncurses_static}/lib/libncurses.a@' Make.llvm.static
cd ..
shopt -s globstar
for f in **/Makefile **/Makefile.library **/CMakeLists.txt build/Make.llvm.static embedded/faustjava/faust2engine architecture/autodiff/autodiff.sh source/tools/faust2appls/* **/llvm.cmake tools/benchmark/faust2object; do
echo $f "llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
substituteInPlace $f \
--replace-quiet "llvm-config" "llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
done
shopt -u globstar
cd build
'';
cmakeFlags = [

View File

@ -1,4 +1,5 @@
{
bash,
faust,
jack2,
qtbase,
@ -32,6 +33,10 @@ faust.wrapWithBuildEnv {
"faust2jackserver"
];
buildInputs = [
bash
];
propagatedBuildInputs = [
jack2
qtbase

View File

@ -1,4 +1,5 @@
{
bash,
boost,
faust,
lv2,
@ -9,6 +10,10 @@ faust.wrapWithBuildEnv {
baseName = "faust2lv2";
buildInputs = [
bash
];
propagatedBuildInputs = [
boost
lv2

View File

@ -1,6 +1,7 @@
{
stdenv,
lib,
bash,
fetchFromGitHub,
faust2jaqt,
faust2lv2,
@ -16,28 +17,45 @@ stdenv.mkDerivation rec {
sha256 = "sha256-CADiJXyB4FivQjbh1nhpAVgCkTi1pW/vtXKXfL7o7xU=";
};
buildInputs = [
nativeBuildInputs = [
faust2jaqt
faust2lv2
];
buildInputs = [
bash
];
# ld: /nix/store/*-gcc-14-20241116/lib/gcc/x86_64-unknown-linux-gnu/14.2.1/crtbegin.o:
# relocation R_X86_64_32 against hidden symbol `__TMC_END__' can not be used when making a PIE object
hardeningDisable = [ "pie" ];
dontWrapQtApps = true;
buildPhase = ''
runHook preBuild
cd examples/physicalModeling
for f in *MIDI.dsp; do
faust2jaqt -time -vec -double -midi -nvoices 16 -t 99999 $f
faust2lv2 -time -vec -double -gui -nvoices 16 -t 99999 $f
done
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib/lv2 $out/bin
mv *.lv2/ $out/lib/lv2
for f in $(find . -executable -type f); do
cp $f $out/bin/
done
patchShebangs --host $out/bin
runHook postInstall
'';
meta = with lib; {
@ -46,5 +64,7 @@ stdenv.mkDerivation rec {
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ magnetophon ];
# compiles stuff for the build platform, difficult to do properly
broken = stdenv.hostPlatform != stdenv.buildPlatform;
};
}