mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-22 08:14:00 +01:00
fcitx5-mozc: fix build
This commit is contained in:
parent
3b914aaa7e
commit
26ac16c723
@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
nix-config,
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
@ -49,7 +50,7 @@ in
|
|||||||
fcitx5 = {
|
fcitx5 = {
|
||||||
waylandFrontend = true;
|
waylandFrontend = true;
|
||||||
|
|
||||||
addons = with pkgs; [
|
addons = with nix-config.packages.${pkgs.system}; [
|
||||||
fcitx5-mozc
|
fcitx5-mozc
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
148
packages/fcitx5-mozc.nix
Normal file
148
packages/fcitx5-mozc.nix
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user