- 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 Document
のBuilds for
からどれかを選択。どれを選んでも10.6以上が対象になるのでビルドが成功する。
入力メニューに「環境設定...」等のメニューが出現する筈だが、「..........」と表示されたまま、いつまで経ってもメニューが表示されない(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は消えない)。
前述までの修正を行った状態で、環境設定等のツールを起動できる様にする。
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 をダウンロードし、インストールする。
上記URLは無効になっているため、Wayback Machineに保存されているQt5.4.1のdmgをダウンロードし、インストールする。
/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/{}
$ 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