⌨️

ARM64 Windows版MozcのBuild(mozc-ut適用)

に公開

先月(2025/06/15ごろ[1])にWindows版MozcがARM64に対応しました。[2]
Mozc単体だと内蔵辞書の制約によりやや変換精度に不安が残るため、mozc-utを適用したうえでビルドしようとしたのですが、何故かうまくいかなかったので備忘録的にメモを残しています。

1. 事前準備

基本的にはドキュメントの通りにやるだけなのですが、一応変なところで詰まったので、必要なものについては一覧で記載しています。

Mozc(Windows)

  • Mozc
  • [Visual Studio 2022 Community Edition] + 個別のコンポーネント(https://visualstudio.microsoft.com/downloads/#visual-studio-community-2022)
    • Windows 11 SDK(10.0.26100.3916)
      • 最新版だったからとりあえず入れたけど、何でもいいのかも
    • MSVC v143 - VS 2022 C++ x64/x86 ビルド ツール (最新)
    • MSVC v143 - VS 2022 C++ ARM64/ARM64EC ビルド ツール (最新)
    • 最新の v143 ビルド ツール用 C++ ATL (x86 および x64)
    • 最新の v143 ビルド ツール用の C++ ATL (ARM64/ARM64EC)
  • Python 3.9以降
  • .NET 6以降
  • Bazelisk
  • Git for Windows
  • CMake(公式ドキュメントには未記載だが必要)

mozc-ut(WSL2)

Mozcのビルドスクリプトの改変(Windows)

これがおま環なのかは不明なのですが、vcvarsall.batを正しく見つけられないためにビルドを進められなかったので、src\build_tools\vs_util.pyの、get_vcvarsall関数を

vs_util.py
def get_vcvarsall(
    arch: str, path_hint: Union[str, None] = None
) -> pathlib.Path:
  """Returns the path of 'vcvarsall.bat'.

  Args:
    arch: host/target architecture
    path_hint: optional path to vcvarsall.bat

  Returns:
    The path of 'vcvarsall.bat'.

  Raises:
    FileNotFoundError: When 'vcvarsall.bat' cannot be found.
    ChildProcessError: When 'vcvarsall.bat' cannot be executed.
  """
  return pathlib.Path(r'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat').resolve()

のように直接パスを渡すように改変します。

2. ビルド

  1. (Windows) Mozcのclone
    Powershell
    git clone https://github.com/google/mozc.git
    
  2. (WSL2) mozc-utのclone
    Bash
    git clone --depth 1 https://github.com/utuhiro78/merge-ut-dictionaries.git
    
  3. (WSL2) mozc-utでの辞書作成
    Bash
    cd src/merge/
    sh make.sh
    
  4. (Windows) 作成したmozcdic-ut.txtをmozcのsrc\data\dictionary_oss\dictionary00.txtにマージする
  5. (Windows) Mozcのビルド
    Powershell
    python build_tools/update_deps.py
    python build_tools/build_qt.py --release --confirm_license --target_arch=arm64
    bazelisk build --config oss_windows --config release_build package --platforms=//:windows-arm64
    
    これにより、src\bazel-bin\win32\installerにインストーラーが作成されます。

3. まとめ

Mozcが遂にARM64に対応したのでmozc-utの辞書を追加したうえで自前でビルドしてみました。
正直現在のMicrosoft IMEに大きな不満はなかったのですが、Mozcのほうが気分的に良いので満足です。

脚注
  1. https://github.com/google/mozc/issues/1130 ↩︎

  2. ARM64環境でのビルドは2025/07/05時点では未対応のようです。 ↩︎

Discussion