1{ lib
2, stdenv
3, buildPythonPackage
4, pythonOlder
5, fetchFromGitHub
6, miniaudio
7, cffi
8, pytestCheckHook
9, AudioToolbox
10, CoreAudio
11}:
12
13buildPythonPackage rec {
14 pname = "miniaudio";
15 version = "1.58";
16
17 disabled = pythonOlder "3.6";
18
19 format = "setuptools";
20
21 src = fetchFromGitHub {
22 owner = "irmen";
23 repo = "pyminiaudio";
24 rev = "refs/tags/v${version}";
25 hash = "sha256-uIjQerxMU4hMCJtpqYPt2kicql3s7jyho9r6/kRHTbk=";
26 };
27
28 postPatch = ''
29 rm -r miniaudio
30 ln -s ${miniaudio} miniaudio
31 substituteInPlace build_ffi_module.py \
32 --replace "miniaudio/stb_vorbis.c" "miniaudio/extras/stb_vorbis.c";
33 substituteInPlace miniaudio.c \
34 --replace "miniaudio/stb_vorbis.c" "miniaudio/extras/stb_vorbis.c";
35 '';
36
37 buildInputs = lib.optionals stdenv.isDarwin [
38 AudioToolbox
39 CoreAudio
40 ];
41
42 propagatedNativeBuildInputs = [ cffi ];
43 propagatedBuildInputs = [ cffi ];
44
45 nativeCheckInputs = [
46 pytestCheckHook
47 ];
48
49 pythonImportsCheck = [ "miniaudio" ];
50
51 meta = with lib; {
52 description = "Python bindings for the miniaudio library and its decoders";
53 homepage = "https://github.com/irmen/pyminiaudio";
54 license = licenses.mit;
55 maintainers = with maintainers; [ dotlambda ];
56 };
57}