nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cmake,
6 gtest,
7 boost,
8 gd,
9 libsndfile,
10 libmad,
11 libid3tag,
12}:
13
14stdenv.mkDerivation rec {
15 pname = "audiowaveform";
16 version = "1.10.2";
17
18 src = fetchFromGitHub {
19 owner = "bbc";
20 repo = "audiowaveform";
21 rev = version;
22 sha256 = "sha256-GrYShlLUD2vZYN6sJy4FnAMPiV36rOAxZUrK0mxJCRk=";
23 };
24
25 cmakeFlags = [
26 # gtest no longer supports C++11.
27 "-DCMAKE_CXX_STANDARD=14"
28 ];
29
30 nativeBuildInputs = [
31 cmake
32 gtest
33 ];
34
35 buildInputs = [
36 boost
37 gd
38 libsndfile
39 libmad
40 libid3tag
41 ];
42
43 preConfigure = ''
44 ln -s ${gtest.src} googletest
45 '';
46
47 # One test is failing, see PR #101947
48 doCheck = false;
49
50 meta = {
51 description = "C++ program to generate waveform data and render waveform images from audio files";
52 longDescription = ''
53 audiowaveform is a C++ command-line application that generates waveform data from either MP3, WAV, FLAC, or Ogg Vorbis format audio files.
54 Waveform data can be used to produce a visual rendering of the audio, similar in appearance to audio editing applications.
55 '';
56 homepage = "https://github.com/bbc/audiowaveform";
57 changelog = "https://github.com/bbc/audiowaveform/blob/${version}/ChangeLog";
58 license = lib.licenses.gpl3Plus;
59 platforms = lib.platforms.all;
60 maintainers = with lib.maintainers; [ edbentley ];
61 mainProgram = "audiowaveform";
62 };
63}