短期集中連載? LibreOfficeをWindowsで開発してみよう:その② ビルド通りました、小ネタ紹介
いきなり集中連載1日落としてるじゃねーかってすみません。だって、ビルド通すのに苦戦してたんですもの……。
そんなわけでGWの間にLibO開発できる環境をWindowsで作ろうの連載2回目。
過去記事:第1回
今回は前回にも増して行き当たりばったりなので、最適な答え出してる自信ないです……。
ビルドしてみよう!
前回で autogen.sh
を通すところまではできているので、あとは同じディレクトリで:
make
するだけ……なんですが、2点ほどハマりました。
submodule "translations" の取得に失敗してビルドがこけたあと回復不能に
これがねー、けっこう解決に時間要しました。
正直、LibOのソースコードが置いてあるgerritですけど、 こいつがどうも能力いっぱいいっぱいなのか、それとも我々極東から離れて遠いヨーロッパにサーバーがあるせいなのか、 大きなリポジトリのcloneがタイムアウトでコケることがあるんですよね*1。
で、LibreOffice coreのリポジトリは三つのsubmodule*2 があります。
そのうちの一つ、ウェブ翻訳システムWeblate の成果を取り込む translations
というサブモジュールがありまして、
こいつはcloneしたあとのファイル数が23000ぐらいある、まあまあでかいリポジトリです。
なので、5/1の記事を書いた後、寝る前に make
叩いてビルドして、朝起きて結果見たら…… translations
を取ってこれなくてビルド落ちてたんですね。
これは、まー、あー、しょうがないか……で、もう一度 make
叩いたのですが。
何度か試してるうちに、なぜか translations
が正常にとってこれなくて空っぽなままなのにビルドが進むようになってしまい、
当然 "translations" 以下のファイルがないので途中で落ちてしまう……えー。なんでー。
ここもいろいろ試行錯誤したんですけど、結論からいうと以下のコマンド叩いたら復活できました。
git submodule deinit translations git submodule init translations
要はいちどsubmoduleと、リモートリポジトリの紐づけ外してもう一度付けなおすみたいな感じですね。
これでもう一度 make
叩いたら、無事、translations
の取得はできて*3、ビルド流れ始めました。やった!
Visual Studio 2019のコマンドラインツール( cl.exe
とか)のメッセージを英語にする
で、ビルドの途中経過見ると、
□□□□: □C□□□N□□□[□h □t□@□C□□: C:/cygwin/home/naruhiko/lode/dev/core/workdir/UnoApiHeadersTarget/offapi/normal\com/sun/star/chart2/data/XDataSequence.hdl □□□□: □C□□□N□□□[□h □t□@□C□□: C:/cygwin/home/naruhiko/lode/dev/core/workdir/UnoApiHeadersTarget/offapi/normal\com/sun/star/chart2/data/LabelOrigin.hdl
こんな感じになっちゃってます。
あーなるほど、VS2019同梱のコンパイラ cl.exe
とかが日本語吐くからだな。
じゃあ、英語にしましょう。 最初この↓ 記事を参考にしたんですが(VS 2017の記事だけど手順は一緒かなって)、
うまくいかなかったので*4、 もうあたま来て、日本語の言語パック消して英語のに入れ替えちゃうことにしました。
言語パックの追加削除はVisual Studio Installerで行います。前回の記事だと
Visual Studio 2019起動して、「コードなしで続行」選んで、ツール > ツールと機能の取得 を開きまして。
という動線を紹介しましたが、素直にVisual Studio Installerを起動>「Visual Studio 2019 Community」を選ぶ、でもいいです。
で、「言語パック」タブにて「英語」をチェックして、代わりに「日本語」のチェックを外して「変更」。
試してみますと、
>"c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\bin\Hostx64\x64\cl.exe" /? Microsoft (R) C/C++ Optimizing Compiler Version 19.25.28614 for x64 Copyright (C) Microsoft Corporation. All rights reserved. C/C++ COMPILER OPTIONS -OPTIMIZATION- /O1 maximum optimizations (favor space) /O2 maximum optimizations (favor speed) /Ob<n> inline expansion (default n=0) /Od disable optimizations (default) /Og enable global optimization /Oi[-] enable intrinsic functions /Os favor code space /Ot favor code speed /Ox optimizations (favor speed) /favor:<blend|AMD64|INTEL64|ATOM> select processor to optimize for, one of: blend - a combination of optimizations for several different x64 processors AMD64 - 64-bit AMD processors INTEL64 - Intel(R)64 architecture processors
わーい。英語になった。
巻き添えとして? VS2019のGUIも英語になっちゃいますが、まあ、いいですよね*5。
あと、今思ったのですが、一度ビルド通した後はVS2019統合で開発できる*6 から、この手順要らんかった気がするな……。
動いた!
まあそんなわけで待つこと……どれぐらいだろ? 1時間よりは長くて8時間よりかは短い*7 感じかなー。
前にビルドしてたのはThinkpad X220 (Ubuntu)で4時間ぐらいだったかな、マシン早くなったのでもうちょっと早いかと思ってましたがHDDなのがいけないのか。
ともかく私家版ビルド、無事動きました! ビルドしたcygwinターミナルにて instdir/program/soffice &
で起動できます。
このリリースはnaruhikoが提供しました。
が誇らしい? ですね。
まーよかったよかった。ではまた次回の連載記事をお待ちください!
*1:前回紹介したlodeの導入手順も、coreのコードcloneしてくるのでその可能性はありました。私は問題なくできましたが。
*2:submoduleがわからない人はgit submoduleでググりましょう。私submoduleの使い方自信なくて毎度ググってる……。
*3:ものすごーーーーーく時間かかりましたけど。
*4:VS2019の機能で開発コンソール開くと英語になるのでよしよしって思ったら、 コマンドプロンプトから実行すると日本語のまま。今考えると環境変数とか見てるのかもしれない。
*5:というか、最初からVS2019英語で導入すればよかったのでは……?
*6:……たぶん。さりげなく次回予告ですが今日はこれを試す予定。
*7:幅あってすみません、別のパソコンで作業してほっといてたら、いつの間にか終わってたので。