anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / audio / mellowplayer / default.nix
blob2bffd43b7b9576ce057cc1acfe84c4789c184435
1 { cmake
2 , fetchFromGitLab
3 , lib
4 , libnotify
5 , mkDerivation
6 , pkg-config
7 , qtbase
8 , qtdeclarative
9 , qtgraphicaleffects
10 , qtquickcontrols2
11 , qttools
12 , qtwebengine
13 , stdenv
16 mkDerivation rec {
17   pname = "MellowPlayer";
18   version = "3.6.8";
20   src = fetchFromGitLab {
21     owner = "ColinDuquesnoy";
22     repo = "MellowPlayer";
23     rev = version;
24     hash = "sha256-rsF2xQet7U8d4oGU/HgghvE3vvmkxjlGXPBlLD9mWTk=";
25   };
27   nativeBuildInputs = [ cmake pkg-config ];
29   buildInputs = [
30     libnotify
31     qtbase
32     qtdeclarative
33     qtgraphicaleffects
34     qtquickcontrols2
35     qttools
36     qtwebengine
37   ];
39   doCheck = true;
41   cmakeFlags = [ "-DBUILD_TESTS=ON" ];
43   preCheck = ''
44     # Running the tests requires a location at the home directory for logging.
45     export HOME="$NIX_BUILD_TOP/home"
46     mkdir -p "$HOME/.local/share/MellowPlayer.Tests/MellowPlayer.Tests/Logs"
48     # Without this, the tests fail because they cannot create the QT Window
49     export QT_QPA_PLATFORM=offscreen
50   ''
51   # TODO: The tests are failing because it can't locate QT plugins. Is there a better way to do this?
52   + (builtins.concatStringsSep "\n" (lib.lists.flatten (builtins.map
53       (pkg: [
54         (lib.optionalString (pkg ? qtPluginPrefix) ''
55           export QT_PLUGIN_PATH="${pkg}/${pkg.qtPluginPrefix}"''${QT_PLUGIN_PATH:+':'}$QT_PLUGIN_PATH
56         '')
58         (lib.optionalString (pkg ? qtQmlPrefix) ''
59           export QML2_IMPORT_PATH="${pkg}/${pkg.qtQmlPrefix}"''${QML2_IMPORT_PATH:+':'}$QML2_IMPORT_PATH
60         '')
61       ]) buildInputs)));
63   meta = with lib; {
64     inherit (qtbase.meta) platforms;
65     broken = stdenv.hostPlatform.isDarwin; # test build fails, but the project is not maintained anymore
67     description = "Cloud music integration for your desktop";
68     mainProgram = "MellowPlayer";
69     homepage = "https://gitlab.com/ColinDuquesnoy/MellowPlayer";
70     license = licenses.gpl2;
71     maintainers = with maintainers; [ kalbasit ];
72   };