1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cmake,
6 pkg-config,
7 fltk,
8 fontconfig,
9 fmt,
10 rtmidi,
11 libsamplerate,
12 libmpg123,
13 libsndfile,
14 jack2,
15 alsa-lib,
16 libpulseaudio,
17 libXpm,
18 libXrandr,
19 flac,
20 libogg,
21 libvorbis,
22 libopus,
23 nlohmann_json,
24 expat,
25 libGL,
26 curl,
27 webkitgtk_4_1,
28 gtk3,
29}:
30
31stdenv.mkDerivation (finalAttrs: {
32 pname = "giada";
33 version = "1.2.1";
34
35 src = fetchFromGitHub {
36 owner = "monocasual";
37 repo = "giada";
38 tag = finalAttrs.version;
39 hash = "sha256-mp+6MFwUqV6aa1ACdIlel5VhjWDXf5QzfFu1I6If4aU=";
40 fetchSubmodules = true;
41 };
42
43 env.NIX_CFLAGS_COMPILE = toString [
44 "-w"
45 "-Wno-error"
46 ];
47
48 cmakeFlags = [
49 "-DCMAKE_INSTALL_BINDIR=bin"
50 ];
51
52 nativeBuildInputs = [
53 cmake
54 pkg-config
55 ];
56
57 buildInputs = [
58 alsa-lib
59 curl
60 expat
61 flac
62 fltk
63 fmt
64 gtk3
65 jack2
66 libGL
67 libXpm
68 libXrandr
69 libogg
70 libopus
71 libpulseaudio
72 libsamplerate
73 libsndfile
74 libvorbis
75 libmpg123
76 nlohmann_json
77 rtmidi
78 webkitgtk_4_1
79 ]
80 ++ lib.optionals (stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isFreeBSD) [
81 fontconfig
82 ];
83
84 meta = {
85 description = "Free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
86 mainProgram = "giada";
87 homepage = "https://giadamusic.com/";
88 license = lib.licenses.gpl3;
89 maintainers = with lib.maintainers; [ kashw2 ];
90 platforms = lib.platforms.all;
91 };
92})