Skip to content

Instantly share code, notes, and snippets.

@akirakubo
Last active April 11, 2020 17:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save akirakubo/9073ef4f9384dabc5cff03dc632e7dff to your computer and use it in GitHub Desktop.
Save akirakubo/9073ef4f9384dabc5cff03dc632e7dff to your computer and use it in GitHub Desktop.
Build Mozc with/without Qt on macOS 10.13.6 (or later)

Build Mozc with/without Qt on macOS 10.13.6 (or later)

環境

  • macOS 10.13.6
  • Xcode 10.1 (10B61)

ビルドエラーへの対処

いつの間にかビルドがうまく出来なくなったので対処。

症状1: 途中でビルドが失敗(#430)

mozc/build_mozc_in_osx.md at master · google/mozcに従ってビルドを実行しても途中で失敗する(Qtを使用する/しないは関係なし)。

$ cd ~/work/mozc/src
$ GYP_DEFINES="mac_sdk=10.14 mac_deployment_target=10.9" python build_mozc.py gyp --noqt
$ python build_mozc.py build -c Release mac/mac.gyp:GoogleJapaneseInput mac/mac.gyp:gen_launchd_confs

...

/* com.apple.ibtool.document.errors */
/Users/user/work/mozc/src/out_mac/Release/Breakpad/src/client/mac/sender/Breakpad.xib:global: error: Compiling for earlier than macOS 10.6 is no longer supported. [12]


[461/821] ACTION(host) gen_typing_mode...l_oss_9c0f9d9413e2b208ada4a0fffbdbdc51
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "build_mozc.py", line 1236, in <module>
    main()
  File "build_mozc.py", line 1223, in main
    BuildMain(cmd_opts, cmd_args)
  File "build_mozc.py", line 854, in BuildMain
    BuildWithNinja(options, targets)
  File "build_mozc.py", line 828, in BuildWithNinja
    RunOrDie([ninja, '-C', build_arg] + ninja_targets)
  File "/Users/user/work/mozc/src/build_tools/util.py", line 99, in RunOrDie
    '==========']))
build_tools.util.RunOrDieError: 
==========
 ERROR: ninja -C out_mac/Release GoogleJapaneseInput gen_launchd_confs
==========

原因と対策

Breakpad.xibのビルド対象設定が原因。

src/third_party/breakpad/src/client/mac/sender/Breakpad.xibをXcodeで開き、Interface Builder DocumentBuilds forからどれかを選択。どれを選んでも10.6以上が対象になるのでビルドが成功する。

XcodeのBuilds for設定

症状2: メニューが表示されない問題

入力メニューに「環境設定...」等のメニューが出現する筈だが、「..........」と表示されたまま、いつまで経ってもメニューが表示されない(Qtを使用する/しないは関係なし)。

入力メニューに項目が表示されない状態

原因と対策

症状1が解決した状態で再度ビルドを実行すると、以下の様なエラーが出る(ビルド自体は成功する)ので、症状1と同根の問題であることが推測できる。

$ python build_mozc.py build -c Release mac/mac.gyp:GoogleJapaneseInput mac/mac.gyp:gen_launchd_confs

...

/* com.apple.ibtool.document.warnings */
/Users/user/work/mozc/src/mac/English.lproj/Config.xib:global: warning: This file is set to build for a version older than the deployment target. Functionality may be limited. [9]
/* com.apple.ibtool.document.errors */
/Users/user/work/mozc/src/mac/English.lproj/Config.xib:global: error: Compiling for earlier than macOS 10.6 is no longer supported. [12]
[301/367] MACTOOL copy-bundle-resource ../../mac/Japanese.lproj/Config.xib
/* com.apple.ibtool.document.warnings */
/Users/user/work/mozc/src/mac/Japanese.lproj/Config.xib:global: warning: This file is set to build for a version older than the deployment target. Functionality may be limited. [9]
/* com.apple.ibtool.document.errors */
/Users/user/work/mozc/src/mac/Japanese.lproj/Config.xib:global: error: Compiling for earlier than macOS 10.6 is no longer supported. [12]

src/mac/English.lproj/Config.xib及びsrc/mac/Japanese.lproj/Config.xibに対してBuilds forの設定を変更するとエラーが消える(warningは消えない)。

Qt有りでビルドする

前述までの修正を行った状態で、環境設定等のツールを起動できる様にする。

1. Qt5.4.1をインストール

HomebrewインストールしたQt(5.12.0)だとビルドがうまく行かなかったので、公式サイトから古いバージョンのディスクイメージを取得する。

ここでは、https://download.qt.io/archive/qt/5.4/5.4.1/ から https://download.qt.io/archive/qt/5.4/5.4.1/qt-opensource-mac-x64-clang-5.4.1.dmg をダウンロードし、インストールする。

2. シンボリックリンクの作成

/path/to/Qt5.4.1/5.4/clang_64/lib/*.framework/Headers のシンボリックリンクを /path/to/Qt5.4.1/5.4/clang_64/include に作成する。

$ cd /path/to/Qt5.4.1/5.4/clang_64/lib
$ ls -d *.framework | sed -e s/.framework// | xargs -I{} ln -s `pwd`/{}.framework/Headers ../include/{}

3. ビルド

$ cd ~/work/mozc/src
$ GYP_DEFINES="mac_sdk=10.14 mac_deployment_target=10.9" python build_mozc.py gyp --qtdir /path/to/Qt5.4.1/5.4/clang_64
$ python build_mozc.py build -c Release mac/mac.gyp:GoogleJapaneseInput mac/mac.gyp:gen_launchd_confs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment