1{
2 lib,
3 stdenv,
4 fetchFromGitLab,
5 asciidoctor,
6 ninja,
7 gperf,
8 gawk,
9 pkg-config,
10 boost,
11 luajit_openresty,
12 fmt,
13 meson,
14 emilua,
15 qt6Packages,
16 openssl,
17 liburing,
18 gitUpdater,
19 runCommand,
20 xvfb-run,
21 qt6, # this
22}:
23
24stdenv.mkDerivation rec {
25 pname = "emilua-qt6";
26 version = "1.2.2";
27
28 src = fetchFromGitLab {
29 owner = "emilua";
30 repo = "qt6";
31 rev = "v${version}";
32 hash = "sha256-Ch99ntLreiOjACxyJVR4174sHJT8EYXzDGPdysqmBXM=";
33 };
34
35 buildInputs = with qt6Packages; [
36 qtbase
37 qtdeclarative
38 boost
39 luajit_openresty
40 emilua
41 fmt
42 openssl
43 liburing
44 ];
45
46 nativeBuildInputs = with qt6Packages; [
47 qttools
48 wrapQtAppsHook
49 gperf
50 gawk
51 asciidoctor
52 pkg-config
53 meson
54 ninja
55 ];
56
57 passthru = {
58 updateScript = gitUpdater { rev-prefix = "v"; };
59 tests.basic =
60 runCommand "test-basic-qt6"
61 {
62 buildInputs = [
63 emilua
64 qt6
65 qt6Packages.wrapQtAppsHook
66 qt6Packages.qtbase
67 qt6Packages.qtdeclarative
68 xvfb-run
69 ];
70 dontWrapQtApps = true;
71 }
72 ''
73 makeWrapper ${lib.getExe emilua} payload \
74 ''${qtWrapperArgs[@]} \
75 --add-flags ${./basic_test.lua}
76 xvfb-run ./payload
77 touch $out
78 '';
79 };
80
81 meta = with lib; {
82 description = "Qt6 bindings for Emilua";
83 homepage = "https://emilua.org/";
84 license = licenses.boost;
85 maintainers = with maintainers; [
86 manipuladordedados
87 lucasew
88 ];
89 platforms = platforms.linux;
90 };
91}