mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-22 08:14:00 +01:00
149 lines
3.7 KiB
Nix
149 lines
3.7 KiB
Nix
{
|
|
bazel_6,
|
|
buildBazelPackage,
|
|
fcitx5,
|
|
fetchFromGitHub,
|
|
gettext,
|
|
lib,
|
|
mozc,
|
|
nixosTests,
|
|
pkg-config,
|
|
python3,
|
|
stdenv,
|
|
unzip,
|
|
}:
|
|
|
|
buildBazelPackage {
|
|
pname = "fcitx5-mozc";
|
|
version = "2.30.5544.102";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "fcitx";
|
|
repo = "mozc";
|
|
fetchSubmodules = true;
|
|
rev = "57e67f2a25e4c0861e0e422da0c7d4c232d89fcc";
|
|
hash = "sha256-1EZjEbMl+LRipH5gEgFpaKP8uEKPfupHmiiTNJc/T1k=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
gettext
|
|
pkg-config
|
|
python3
|
|
unzip
|
|
];
|
|
|
|
buildInputs = [
|
|
mozc
|
|
fcitx5
|
|
];
|
|
|
|
postPatch = ''
|
|
sed -i -e 's|^\(LINUX_MOZC_SERVER_DIR = \).\+|\1"${mozc}/lib/mozc"|' src/config.bzl
|
|
'';
|
|
|
|
bazel = bazel_6;
|
|
removeRulesCC = false;
|
|
dontAddBazelOpts = true;
|
|
|
|
bazelFlags = [
|
|
"--config"
|
|
"oss_linux"
|
|
"--compilation_mode"
|
|
"opt"
|
|
];
|
|
|
|
bazelTargets = [
|
|
"unix/fcitx5:fcitx5-mozc.so"
|
|
"unix/icons"
|
|
];
|
|
|
|
fetchAttrs = {
|
|
preInstall = ''
|
|
rm -rf $bazelOut/external/fcitx5
|
|
'';
|
|
|
|
sha256 = "sha256-rrRp/v1pty7Py80/6I8rVVQvkeY72W+nlixUeYkjp+o=";
|
|
};
|
|
|
|
preConfigure = ''
|
|
cd src
|
|
'';
|
|
|
|
buildAttrs = {
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm444 ../LICENSE $out/share/licenses/fcitx5-mozc/LICENSE
|
|
install -Dm444 data/installer/credits_en.html $out/share/licenses/fcitx5-mozc/Submodules
|
|
|
|
install -Dm555 bazel-bin/unix/fcitx5/fcitx5-mozc.so $out/lib/fcitx5/fcitx5-mozc.so
|
|
install -Dm444 unix/fcitx5/mozc-addon.conf $out/share/fcitx5/addon/mozc.conf
|
|
install -Dm444 unix/fcitx5/mozc.conf $out/share/fcitx5/inputmethod/mozc.conf
|
|
|
|
for pofile in unix/fcitx5/po/*.po; do
|
|
filename=$(basename $pofile)
|
|
lang=''${filename/.po/}
|
|
mofile=''${pofile/.po/.mo}
|
|
msgfmt $pofile -o $mofile
|
|
install -Dm444 $mofile $out/share/locale/$lang/LC_MESSAGES/fcitx5-mozc.mo
|
|
done
|
|
|
|
msgfmt --xml -d unix/fcitx5/po/ --template unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml.in -o unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml
|
|
install -Dm444 unix/fcitx5/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml $out/share/metainfo/org.fcitx.Fcitx5.Addon.Mozc.metainfo.xml
|
|
|
|
cd bazel-bin/unix
|
|
|
|
unzip -o icons.zip
|
|
|
|
# These are relative symlinks, they will always resolve to files within $out
|
|
|
|
install -Dm444 mozc.png $out/share/icons/hicolor/128x128/apps/org.fcitx.Fcitx5.fcitx_mozc.png
|
|
ln -s org.fcitx.Fcitx5.fcitx_mozc.png $out/share/icons/hicolor/128x128/apps/fcitx_mozc.png
|
|
|
|
for svg in \
|
|
alpha_full.svg \
|
|
alpha_half.svg \
|
|
direct.svg \
|
|
hiragana.svg \
|
|
katakana_full.svg \
|
|
katakana_half.svg \
|
|
outlined/dictionary.svg \
|
|
outlined/properties.svg \
|
|
outlined/tool.svg
|
|
do
|
|
name=$(basename -- $svg)
|
|
path=$out/share/icons/hicolor/scalable/apps
|
|
prefix=org.fcitx.Fcitx5.fcitx_mozc
|
|
|
|
install -Dm444 $svg $path/$prefix_$name
|
|
ln -s $prefix_$name $path/fcitx_mozc_$name
|
|
done
|
|
|
|
runHook postInstall
|
|
'';
|
|
};
|
|
|
|
passthru.tests = lib.optionalAttrs stdenv.hostPlatform.isLinux {
|
|
inherit (nixosTests) fcitx5;
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "Mozc - a Japanese Input Method Editor designed for multi-platform";
|
|
homepage = "https://github.com/fcitx/mozc";
|
|
license = with licenses; [
|
|
asl20 # abseil-cpp
|
|
bsd3 # mozc, breakpad, gtest, gyp, japanese-usage-dictionary, protobuf
|
|
mit # wil
|
|
naist-2003 # IPAdic
|
|
publicDomain # src/data/test/stress_test, Okinawa dictionary
|
|
unicode-30 # src/data/unicode, breakpad
|
|
];
|
|
maintainers = with maintainers; [
|
|
berberman
|
|
govanify
|
|
musjj
|
|
];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|