mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-22 00:03:55 +01:00
fcitx5-mozc: fix build
This commit is contained in:
parent
3b914aaa7e
commit
26ac16c723
@ -1,4 +1,5 @@
|
||||
{
|
||||
nix-config,
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
@ -49,7 +50,7 @@ in
|
||||
fcitx5 = {
|
||||
waylandFrontend = true;
|
||||
|
||||
addons = with pkgs; [
|
||||
addons = with nix-config.packages.${pkgs.system}; [
|
||||
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