Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / fl / flet-client-flutter / package.nix
blob15b3c083fb334fb33c6efe76bf7ba27dfd4673ef
1 { lib
2 , fetchFromGitHub
3 , pkg-config
4 , flutter319
5 , gst_all_1
6 , libunwind
7 , makeWrapper
8 , mimalloc
9 , orc
10 , yq
11 , runCommand
12 , gitUpdater
13 , mpv-unwrapped
14 , libplacebo
15 , _experimental-update-script-combinators
16 , flet-client-flutter
19 flutter319.buildFlutterApplication rec {
20   pname = "flet-client-flutter";
21   version = "0.22.1";
23   src = fetchFromGitHub {
24     owner = "flet-dev";
25     repo = "flet";
26     rev = "v${version}";
27     hash = "sha256-mjqPIm4LspW1LB4H08FVwEN0JOwTPTLaUxOjZ3n6u8A=";
28   };
30   sourceRoot = "${src.name}/client";
32   cmakeFlags = [
33     "-DMIMALLOC_LIB=${mimalloc}/lib/mimalloc.o"
34   ];
36   pubspecLock = lib.importJSON ./pubspec.lock.json;
38   nativeBuildInputs = [
39     makeWrapper
40     mimalloc
41     pkg-config
42   ];
44   buildInputs = [
45     mpv-unwrapped
46     gst_all_1.gst-libav
47     gst_all_1.gst-plugins-base
48     gst_all_1.gst-vaapi
49     gst_all_1.gstreamer
50     libunwind
51     orc
52     mimalloc
53   ]
54     ++ mpv-unwrapped.buildInputs
55     ++ libplacebo.buildInputs
56   ;
58   passthru = {
59     pubspecSource = runCommand "pubspec.lock.json" {
60         buildInputs = [ yq ];
61         inherit (flet-client-flutter) src;
62       } ''
63       cat $src/client/pubspec.lock | yq > $out
64     '';
66     updateScript = _experimental-update-script-combinators.sequence [
67       (gitUpdater { rev-prefix = "v"; })
68       (_experimental-update-script-combinators.copyAttrOutputToFile "flet-client-flutter.pubspecSource" ./pubspec.lock.json)
69     ];
70   };
72   meta = {
73     description = "Framework that enables you to easily build realtime web, mobile, and desktop apps in Python. The frontend part";
74     homepage = "https://flet.dev/";
75     changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
76     license = lib.licenses.asl20;
77     maintainers = with lib.maintainers; [ heyimnova lucasew ];
78     mainProgram = "flet";
79   };