Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 stdenv, 3 lib, 4 config, 5 fetchFromGitHub, 6 testers, 7 cmake, 8 pkg-config, 9 alsaSupport ? stdenv.hostPlatform.isLinux, 10 alsa-lib, 11 pulseaudioSupport ? config.pulseaudio or stdenv.hostPlatform.isLinux, 12 libpulseaudio, 13 jackSupport ? true, 14 libjack2, 15 coreaudioSupport ? stdenv.hostPlatform.isDarwin, 16 validatePkgConfig, 17}: 18 19stdenv.mkDerivation (finalAttrs: { 20 pname = "rtaudio"; 21 version = "6.0.1"; 22 23 src = fetchFromGitHub { 24 owner = "thestk"; 25 repo = "rtaudio"; 26 tag = finalAttrs.version; 27 hash = "sha256-Acsxbnl+V+Y4mKC1gD11n0m03E96HMK+oEY/YV7rlIY="; 28 }; 29 30 strictDeps = true; 31 32 nativeBuildInputs = [ 33 cmake 34 pkg-config 35 validatePkgConfig 36 ]; 37 38 buildInputs = 39 lib.optionals alsaSupport [ 40 alsa-lib 41 ] 42 ++ lib.optionals pulseaudioSupport [ 43 libpulseaudio 44 ] 45 ++ lib.optionals jackSupport [ 46 libjack2 47 ]; 48 49 cmakeFlags = [ 50 (lib.cmakeBool "RTAUDIO_API_ALSA" alsaSupport) 51 (lib.cmakeBool "RTAUDIO_API_PULSE" pulseaudioSupport) 52 (lib.cmakeBool "RTAUDIO_API_JACK" jackSupport) 53 (lib.cmakeBool "RTAUDIO_API_CORE" coreaudioSupport) 54 ]; 55 56 passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; 57 58 meta = { 59 description = "Set of C++ classes that provide a cross platform API for realtime audio input/output"; 60 homepage = "https://www.music.mcgill.ca/~gary/rtaudio/"; 61 changelog = "https://github.com/thestk/rtaudio/releases/tag/${finalAttrs.version}"; 62 license = lib.licenses.mit; 63 maintainers = with lib.maintainers; [ magnetophon ]; 64 platforms = lib.platforms.unix; 65 pkgConfigModules = [ 66 "rtaudio" 67 ]; 68 }; 69})