diff options
author | Daiderd Jordan <daiderd@gmail.com> | 2018-03-22 21:32:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-22 21:32:48 +0100 |
commit | 6075df7a1dcaa8c146aa89acffe5ed6556b7fb62 (patch) | |
tree | c9505b1a6e09a019929f1db06b3d04d52aa38af5 | |
parent | 568b37384adbfad594bb90abcab8677fec1ffa42 (diff) | |
parent | 33aa3f3488ecd127c0564d2788cd941be23b0954 (diff) | |
download | nixlib-6075df7a1dcaa8c146aa89acffe5ed6556b7fb62.tar nixlib-6075df7a1dcaa8c146aa89acffe5ed6556b7fb62.tar.gz nixlib-6075df7a1dcaa8c146aa89acffe5ed6556b7fb62.tar.bz2 nixlib-6075df7a1dcaa8c146aa89acffe5ed6556b7fb62.tar.lz nixlib-6075df7a1dcaa8c146aa89acffe5ed6556b7fb62.tar.xz nixlib-6075df7a1dcaa8c146aa89acffe5ed6556b7fb62.tar.zst nixlib-6075df7a1dcaa8c146aa89acffe5ed6556b7fb62.zip |
Merge pull request #37246 from LnL7/darwin-chuck
chuck: fix darwin build
-rw-r--r-- | pkgs/applications/audio/chuck/clang.patch | 58 | ||||
-rw-r--r-- | pkgs/applications/audio/chuck/default.nix | 19 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk/default.nix | 7 | ||||
-rw-r--r-- | pkgs/os-specific/darwin/apple-sdk/private-frameworks-setup-hook.sh | 8 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
5 files changed, 89 insertions, 7 deletions
diff --git a/pkgs/applications/audio/chuck/clang.patch b/pkgs/applications/audio/chuck/clang.patch new file mode 100644 index 000000000000..77227ef0fd44 --- /dev/null +++ b/pkgs/applications/audio/chuck/clang.patch @@ -0,0 +1,58 @@ +diff --git a/src/ugen_osc.cpp b/src/ugen_osc.cpp +index 6b93c6b..dbefe4f 100644 +--- a/src/ugen_osc.cpp ++++ b/src/ugen_osc.cpp +@@ -1232,7 +1232,7 @@ CK_DLL_CTRL( gen5_coeffs ) + Chuck_Array8 * in_args = (Chuck_Array8 *)GET_CK_OBJECT(ARGS); + + // fprintf(stdout, "calling gen10coeffs, %d\n", weights); +- if(in_args<0) return; ++ if(in_args!=0) return; + size = in_args->size(); + if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1; + +@@ -1287,7 +1287,7 @@ CK_DLL_CTRL( gen7_coeffs ) + Chuck_Array8 * in_args = (Chuck_Array8 *)GET_CK_OBJECT(ARGS); + + // fprintf(stdout, "calling gen10coeffs, %d\n", weights); +- if(in_args<0) return; ++ if(in_args!=0) return; + size = in_args->size(); + if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1; + +@@ -1340,7 +1340,7 @@ CK_DLL_CTRL( gen9_coeffs ) + Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS); + + // fprintf(stdout, "calling gen10coeffs, %d\n", weights); +- if(weights<0) return; ++ if(weights!=0) return; + size = weights->size(); + if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1; + +@@ -1390,7 +1390,7 @@ CK_DLL_CTRL( gen10_coeffs ) + Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS); + + // fprintf(stdout, "calling gen10coeffs, %d\n", weights); +- if(weights<0) return; ++ if(weights!=0) return; + size = weights->size(); + if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1; + +@@ -1441,7 +1441,7 @@ CK_DLL_CTRL( gen17_coeffs ) + Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS); + + // fprintf(stdout, "calling gen17coeffs, %d\n", weights); +- if(weights<0) return; ++ if(weights!=0) return; + size = weights->size(); + if(size >= genX_MAX_COEFFS) size = genX_MAX_COEFFS - 1; + +@@ -1502,7 +1502,7 @@ CK_DLL_CTRL( curve_coeffs ) + Chuck_Array8 * weights = (Chuck_Array8 *)GET_CK_OBJECT(ARGS); + + // fprintf(stdout, "calling gen17coeffs, %d\n", weights); +- if(weights<0) goto done; ++ if(weights!=0) goto done; + + nargs = weights->size(); + if (nargs < 5 || (nargs % 3) != 2) { // check number of args diff --git a/pkgs/applications/audio/chuck/default.nix b/pkgs/applications/audio/chuck/default.nix index fd7f0c2b07c2..e94172b0f879 100644 --- a/pkgs/applications/audio/chuck/default.nix +++ b/pkgs/applications/audio/chuck/default.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchurl, alsaLib, bison, flex, libsndfile, which }: +{ stdenv, fetchurl, alsaLib, bison, flex, libsndfile, which +, AppKit, Carbon, CoreAudio, CoreMIDI, CoreServices, Kernel +}: stdenv.mkDerivation rec { version = "1.3.5.2"; @@ -10,19 +12,24 @@ stdenv.mkDerivation rec { }; buildInputs = [ bison flex libsndfile which ] - ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib; + ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib + ++ stdenv.lib.optional stdenv.isDarwin [ AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel ]; - patches = [ ./darwin-limits.patch ]; + patches = [ ./clang.patch ./darwin-limits.patch ]; + + NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-Wno-missing-sysroot"; + NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-framework MultitouchSupport"; postPatch = '' substituteInPlace src/makefile --replace "/usr/bin" "$out/bin" substituteInPlace src/makefile.osx --replace "xcodebuild" "/usr/bin/xcodebuild" substituteInPlace src/makefile.osx --replace "weak_framework" "framework" + substituteInPlace src/makefile.osx --replace "MACOSX_DEPLOYMENT_TARGET=10.5" "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET" ''; - buildPhase = - stdenv.lib.optionals stdenv.isLinux ["make -C src linux-alsa"] ++ - stdenv.lib.optionals stdenv.isDarwin ["make -C src osx"]; + buildPhase = '' + make -C src ${if stdenv.isDarwin then "osx" else "linux-alsa"} + ''; installPhase = '' install -Dm755 ./src/chuck $out/bin/chuck diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix index 5a58410ae926..7f6f0cdd0c48 100644 --- a/pkgs/os-specific/darwin/apple-sdk/default.nix +++ b/pkgs/os-specific/darwin/apple-sdk/default.nix @@ -210,6 +210,13 @@ in rec { ]; }); + CoreMIDI = stdenv.lib.overrideDerivation super.CoreMIDI (drv: { + __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps ++ [ + "/System/Library/PrivateFrameworks/" + ]; + setupHook = ./private-frameworks-setup-hook.sh; + }); + Security = stdenv.lib.overrideDerivation super.Security (drv: { setupHook = ./security-setup-hook.sh; }); diff --git a/pkgs/os-specific/darwin/apple-sdk/private-frameworks-setup-hook.sh b/pkgs/os-specific/darwin/apple-sdk/private-frameworks-setup-hook.sh new file mode 100644 index 000000000000..fbd977f8552d --- /dev/null +++ b/pkgs/os-specific/darwin/apple-sdk/private-frameworks-setup-hook.sh @@ -0,0 +1,8 @@ +addPrivateFrameworks() { + flag="-F/System/Library/PrivateFrameworks" + if [[ "$NIX_CFLAGS_COMPILE" != *$flag* ]]; then + NIX_CFLAGS_COMPILE+=" $flag" + fi +} + +addEnvHooks "$hostOffset" addPrivateFrameworks diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6b44af12aaac..fa20bbaf47de 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14936,7 +14936,9 @@ with pkgs; chromiumDev = lowPrio (chromium.override { channel = "dev"; }); - chuck = callPackage ../applications/audio/chuck { }; + chuck = callPackage ../applications/audio/chuck { + inherit (darwin.apple_sdk.frameworks) AppKit Carbon CoreAudio CoreMIDI CoreServices Kernel; + }; cinelerra = callPackage ../applications/video/cinelerra { }; |