1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cmake,
6 extra-cmake-modules,
7 pkg-config,
8 fcitx5,
9 fcitx5-qt,
10 qtbase,
11 qtsvg,
12 qtwayland,
13 qtdeclarative,
14 qtx11extras ? null,
15 kitemviews,
16 kwidgetsaddons,
17 qtquickcontrols2 ? null,
18 kcoreaddons,
19 kdeclarative,
20 kirigami ? null,
21 kirigami2 ? null,
22 isocodes,
23 xkeyboardconfig,
24 libxkbfile,
25 libplasma ? null,
26 plasma-framework ? null,
27 wrapQtAppsHook,
28 kcmSupport ? true,
29}:
30
31stdenv.mkDerivation rec {
32 pname = "fcitx5-configtool";
33 version = "5.1.9";
34
35 src = fetchFromGitHub {
36 owner = "fcitx";
37 repo = pname;
38 rev = version;
39 hash = "sha256-x4DhPxiwPR16xQpBFnJ1DiU435BHOOs6pFj+zJQXFUI=";
40 };
41
42 cmakeFlags = [
43 (lib.cmakeBool "KDE_INSTALL_USE_QT_SYS_PATHS" true)
44 (lib.cmakeBool "ENABLE_KCM" kcmSupport)
45 (lib.cmakeBool "USE_QT6" (lib.versions.major qtbase.version == "6"))
46 ];
47
48 nativeBuildInputs = [
49 cmake
50 extra-cmake-modules
51 pkg-config
52 wrapQtAppsHook
53 ];
54
55 buildInputs = [
56 fcitx5
57 fcitx5-qt
58 qtbase
59 qtsvg
60 qtwayland
61 kitemviews
62 kwidgetsaddons
63 isocodes
64 xkeyboardconfig
65 libxkbfile
66 ]
67 ++ lib.optionals (lib.versions.major qtbase.version == "5") [
68 qtx11extras
69 ]
70 ++ lib.optionals kcmSupport (
71 [
72 qtdeclarative
73 kcoreaddons
74 kdeclarative
75 ]
76 ++ lib.optionals (lib.versions.major qtbase.version == "5") [
77 qtquickcontrols2
78 plasma-framework
79 kirigami2
80 ]
81 ++ lib.optionals (lib.versions.major qtbase.version == "6") [
82 libplasma
83 kirigami
84 ]
85 );
86
87 meta = with lib; {
88 description = "Configuration Tool for Fcitx5";
89 homepage = "https://github.com/fcitx/fcitx5-configtool";
90 license = licenses.gpl2Plus;
91 maintainers = with maintainers; [ poscat ];
92 platforms = platforms.linux;
93 mainProgram = "fcitx5-config-qt";
94 };
95}