OSDN Git Service

[DOC] Update to release.
[csp-qt/common_source_project-fm7.git] / doc / how2build_qt.ja.txt
1 **If you cannot read Japanese, please read how2build_qt.txt.
2 ***That article translated from this by GOOGLE TRANSLATION , but still not correct.
3
4 ***If you can tranlate Japanese to any languages, please
5 ***translate this, publish and pull request to my GITHUB. 
6
7 Common Source Code Project for Qt:ビルド方法
8                                         Feb 25, 2016 K.Ohta
9                            <whatisthis.sowhat_at_gmail.com>
10
11 1.はじめに
12  Common Source Code Project(CSP)をQtに移植する上で、ビルドを
13 する方法・特にMinGWを使うときによくわからないという声がありま
14 したので、少し書いていきます。
15
16 2.用意するもの
17 ・Windowsの方は、MinGWが必要です…が、Qtのオープンソース版
18  インストーラ[1]にはMinGW(Qt5.5.1の場合にはGCC4.9.2)が
19  付いてきますが、しかし、中途半端。
20 ・GCC (LLVM CLANGだとQtと相性が良くないかもしれない)
21 ・Qt5.1以上、勿論ヘッダなどの開発ファイルも。
22 ・OpenGL 2.1以上が動く環境。Windows用Qtにはソフトウェアレンダラが付
23  いてきます。
24 ・CMake[2] 2.8以上
25 ・libSDL2[3]
26 ・もし可能ならば、CCACHEを使うと若干速くできます[4]
27 ・git[5]があれば、ソースコードをリポジトリ[6]からダウンロードするこ
28  とが出来ます。
29 ・emufm7の一部のコードはテキストファイルからgawkでソースコード
30  に落としてます。ただし、ソースツリーには生成後のファイルが
31  含まれています。
32
33 [1] http://www.qt.io/download-open-source/ でWindows用(32/64bit)の
34   インストーラを使ってみてください
35 [2] http://cmake.org/
36 [3] http://libsdl.org/
37 [4] https://ccache.samba.org/
38 [5] https://git-scm.com/
39 [6] https://github.com/Artanejp/common_source_project-fm7
40     https://www.pikacode.com/Artanejp/common_source_project-fm7/
41     
42  これらのものは、GNU/LinuxなどやMinGWならば、パッケージ管理ソフト
43 で大半を入れられるでしょう。
44
45 3.ビルド方法
46   3-1.基本的な方法
47   ソースツリーを${SRCDIR}に展開しておいて、
48       $ cd ${SRCDIR}/source/build-cmake/{VM名}/
49       $ mkdir -p build
50       $ cd build
51       $ cmake .. ※[7]
52       $ make
53    うまく行ったら、
54       $ sudo make install
55
56 [7] 実際には、CMakeのCursesGUI版のccmakeを使ったほうが設定が便利です。
57
58    3-2.MinGWの場合
59       基本的には同じですが、Qtのwindeployqt.exeを使うと、必要なQtラ
60      イブラリをコピーしてくれます。
61       ただし、libstdc関連とlibSDL2とOpenGL関係のDLLは手動でコピーす
62      る必要があります。
63       公式のMinGWにはCMakeはないので、[8]からダウンロードしてください。
64      
65      a.MinGWをインストールします。
66       mingw32-gccとmingw32-g++とmingw32-binutils、
67       mingw-developer-toolkitとmingw32-pthreds-w32
68       を必ずインストールしてください。
69      
70      b.MSYS Bashのショートカットをデスクトップやメニューなどに登録して
71       おきましょう。デフォルトのインストール先ならば、
72       C:\MinGW\msys\1.0\msys.bat です。
73      
74      c.Qtをインストールします。
75       [1]からダウンロードしたインストーラを起動し、mingw toolchainを
76       含めた形でインストールします。
77      
78      d.CMakeをインストールします。
79       パスにCMakeが含まれるようにするか?とインストーラが訊いてくる
80       ので、チェックしてください。
81      
82      e.必要ならば、Gitをインストールします。
83      
84      f.C:\MinGW\msys\1.0\home\{ユーザ名}\.profile を編集します。
85       この時、メモ帳で行うと問題が出るので、vimを使います。
86       MSYS BASH上から
87        $ vim ~/.profile
88        以下の行を付け加えてください。
89            export PATH=/c/MinGw/bin:$PATH:/c/Qt/Qt5.5.1/5.5/mingw492_32/bin
90        終わったら、[ESC]→ZZ コマンドで、書き込みます。
91        
92      g.SDL2をインストールします。(参考:[9])
93       ダウンロードしてきたSDL2の"Windows Development MinGW"のtarball
94        を展開して、インストールします。
95        $ tar xf SDL2-devel-2.0.4-mingw.tar.gz
96        $ cd SDL2-2.0.4
97        $ mingw32-make install-package arch=i686-w64-mingw32 prefix=/c/mingw
98        
99      h.ここまで来れたら、MSYS BASHを再度起動します。
100       そして、git cloneで取ってきたソースやgithubにあるリリースページの
101        ソースコードを展開します。ここでは、フルパスを${SRCDIR}と記述
102        します。
103        
104      i.ビルドします。
105        $ cd ${SRCDIR}
106        $ cd source/build-cmake/${VM名}
107        $ mkdir build-win32
108        $ cd build-win32
109        $ cmake .. -G "MinGW Makefiles"
110         ※[10]
111        $ mingw32-make
112
113       ※注意点:Windwos上の(ネィティブの)MinGWでは、makeではなく、mingw32-make
114            等を使います。Windows側がmakeを持ってて、しかもこれがunix形式の
115            Makefileを真面目に解釈してくれないという極悪仕様ですので…
116      
117      j.う ま く ビ ル ド で き る こ と を 祈 り ま す
118      
119      k.ビルドできたら、動かすためのディレクトリーにemu${VM名}.exeを
120       コピーします。
121      
122      l.コピーした先のディレクトリィに移動した上で、
123        $ windeployqt.exe --release emu${VM名}.exe
124        とすると、リリースモードで必要なQtのライブラリをコピーしてく
125        れますが、libSDL2とlibpthreadとlibgcc_sなどを手動でコピー
126        しないと、Windowsのエクスプローラからは起動できません(;´Д`)
127        なお、CMakeのビルドタイプにDebugやRelwithdebinfoを指定した
128        時は、
129        $ windeployqt.exe --debug emu${VM名}.exe
130        としましょう。
131        その後、以下のファイルをC:\Qt\Qt5.5.1\mingw492_32\bin (など)
132        か、もしくはC:\MinGW\bin から、exeを置いたディレクトリにコピーします。
133         icudt54.dll
134         icuin54.dll
135         icuuc54.dll
136         libgcc_s_dw2-1.dll
137         libstdc++-6.dll
138         libwinpthread-1.dll
139        その上で、 SDL2.dll (C:\MinGW\bin にあるはず)も、このディレクトリに
140        コピーします。
141      
142 [8] http://cmake.org/download/
143 [9] https://gist.github.com/Hamayama/155b5557db31334ce492
144 [10] 実際には、一旦CMakeを動かした後で、cmake-guiを起動して細かい設定を
145    するほうがベターです。
146
147    3-3.クロスビルド (GNU/LinuxなどでWindows用のビルドを行う)
148     ここでは、GNU/Linuxホストで、Windows向けのCSPをクロスビルドする方法を
149    簡単に記述しておきます。
150     Android等向けのARMビルドやその他のOS向けビルドについての参考にもなるで
151    しょう。
152
153    a.クロスコンパイラのインストール
154     大抵の場合、MinGW向けのクロスGCC Toolchainがあるので、それを
155    インストールします。
156
157    b.Wineのインストール
158     mocなどはWindows用を使う必要があるので、Wineをインストールしま
159    す。
160     その上で、exe拡張子のファイルをWine経由で起動できるように
161    binfmt-supportなどのサポートスクリプトにある、upda-ebinfmtsで設定
162    します。[11]
163    $ sudo update-binfmts --install Win32Exec /usr/bin/wine --magic "MZ"
164    で良かったと思います(うろおぼえでごめんなさい)
165
166 [11] http://d.hatena.ne.jp/kakurasan/20110909/p1 など参考に。
167    
168    c.Qt for Windowsのインストール
169     [1]のURLから、Windows用インストーラを落とします。
170     そして、
171     $ sudo wine ./qt-opensource-foo.exe
172     とします。
173     そうするとQtのインストーラ画面が出てくるので、
174     Z:\usr\local\i586-mingw-msvc
175     をインストール先に指定してください。
176         この時に、
177         $ sudo chmod ugo+x /usr/local/i586-mingw-msvc/5.5/mingw492_32/bin/*.exe
178         などとして、Windows用Qt添付のツールを直接起動できるようにしましょう。
179             
180    d.libSDL2のインストール
181     libSDL2も、Windows用のものをインストールせねばなりません。
182     [3]から、SDL2のWindows用(Development用)をダウンロードして、
183     /usr/local/i586-mingw-msvc/ 辺りに展開しましょう。
184
185    e.クロスビルド
186     CMakeのToolChain機能を使いますが、色々と設定がややこしいので、
187    既に記述したものが用意してあります。
188     ${SRCDIR}/source/build-cmake/cmake/toolchain_mingw_cross_linux.cmake
189     このファイルの記述をいじって、
190        $ cd ${SRCDIR}/source/build-cmake/{VM名}/
191        $ mkdir -p build
192        $ cd build
193        $ cmake .. -DCMAKE_TOOLCHAIN_FILE=../../cmake/toolchain_mingw_cross_linux.cmake
194        $ make
195       で大丈夫なはずです。
196     
197   3-3.楽をしよう
198    ここまでの記述では、仮想マシン単位で手作業のビルドをしてきました。
199    しかし、一度下準備ができたのに、毎回毎回では厄介です。
200    故に、バッチファイル(Bashスクリプト)が用意されています。
201     ・${SRCDIR}/source/build-cmake/config_build.sh : 通常のビルド
202     ・${SRCDIR}/source/build-cmake/config_build_cross_win32.sh
203      : GNU/Linux上でMinGW32(Windows)用のファイルをビルドする
204      スクリプト
205         ・${SRCDIR}/source/build-cmake/config_build_mingw.sh
206          : Windows上のMinGWでMinGW用のファイルをビルドするスクリプト
207         
208    config_build.sh は、buildvars.dat と言うファイルに設定を書いていきます。
209    config_build_mingw.sh は、buildvars_mingw.dat と言うファイルに設定を
210    書いていきます。
211
212    使い方は、
213    $ ./${スクリプト名} ${VM名1} ${VM名2} ... ${VM名n}
214    です。
215    CMakeからMakefilesを生成→make→インストール→make clean
216    を全自動で行います。
217
218    make結果については、 ${VM名}/build/make.log (MinGW向けクロスビルドでは
219    ${VM名}/build-win32/build.log )に記録されています。
220
221    Windows向けビルドについては、 ${SRCDIR}/source/build-cmake/bin-win32/
222    に出来上がったバイナリをコピーして、ビルド作業ディレクトリをcleanします。
223
224    バッチビルドについては、Midnight Commander (mc)を使うと、非常に楽です。
225    詳しくは、 https://www.midnight-commander.org/ を。
226    Windowsの非公式ビルドが、https://sourceforge.net/projects/mcwin32/ に
227    ありますので、インストーラを使ってインストールしましょう。