1{
2 lib,
3 mkDerivation,
4 fetchFromGitHub,
5 cmake,
6 extra-cmake-modules,
7 qtbase,
8 qtquickcontrols2,
9 SDL,
10 python3,
11 catch2_3,
12 callPackage,
13 nixosTests,
14}:
15
16mkDerivation rec {
17 pname = "sfxr-qt";
18 version = "1.5.1";
19
20 src = fetchFromGitHub {
21 owner = "agateau";
22 repo = "sfxr-qt";
23 rev = version;
24 hash = "sha256-JAWDk7mGkPtQ5yaA6UT9hlAy770MHrTBhBP9G8UqFKg=";
25 fetchSubmodules = true;
26 };
27
28 nativeBuildInputs = [
29 cmake
30 extra-cmake-modules
31 (python3.withPackages (
32 pp: with pp; [
33 pyyaml
34 jinja2
35 setuptools
36 ]
37 ))
38 ];
39
40 buildInputs = [
41 qtbase
42 qtquickcontrols2
43 SDL
44 ];
45
46 checkInputs = [
47 catch2_3
48 ];
49
50 cmakeFlags = [
51 (lib.cmakeBool "USE_SYSTEM_CATCH2" true)
52 ];
53
54 doCheck = true;
55
56 passthru.tests = {
57 export-square-wave = callPackage ./test-export-square-wave { };
58 sfxr-qt-starts = nixosTests.sfxr-qt;
59 };
60
61 meta = with lib; {
62 homepage = "https://github.com/agateau/sfxr-qt";
63 description = "Sound effect generator, QtQuick port of sfxr";
64 mainProgram = "sfxr-qt";
65 license = licenses.gpl2;
66 maintainers = with maintainers; [ fgaz ];
67 platforms = platforms.linux;
68 };
69}