Windows10でCantata2.3.3をつくるやり方
最初にお断り
「私がこうやったらできた」というだけで万人がこれで上手く行く、とは限りませんのでメモとして残しておきますが、無保証です。サポートも行いません。作者であるCraigDさんにサポートを求めるのもしないでください。あらかじめご了承ください。
また、この記事はお試しで自分のGithubから持ってきたものです。あらかじめご了承ください。
Qtを入れる
こっからフリーのを落とす!→32bitアプリを作るので5.11.2のmingw-32のを入れます。Qt Creatorは勝手に入るけど使わないかもしれません。作者はQt Creatorでビルドしろって書いてあったけど上手く行かなかったです。やり方が悪かったのかもしれません。
C:\dev\Qtがトップのフォルダーになるようにします(ここは作者の言うとおりに)。
SSL関係のDLLを入れる
なんか怪しいけどWin32って書いてある方を落とす!→展開し、C:\dev\sslへ。
CMAKEを入れる
こっから最新の32bit版を落とす!→
Zip版でいいです。展開してC:\dev\cmakeへ。
環境変数を作る
コントロールパネル→システム→システムの詳細設定→環境変数でプロパティを出す。
ユーザー環境変数を追加する。
CMAKE_PREFIX_PATH C:\dev\Qt\5.11.2\mingw53_32
QTDIR C:\dev\Qt\5.11.2\mingw53_32
PATHに追加 C:\dev\Qt\Tools\mingw530_32\bin;C:\dev\Qt\5.11.2\mingw53_32\bin;c:\dev\taglib\bin;c:\dev\cmake\bin:c:\dev\zlib\bin
ZLIB_INCLUDE_DIR C:\dev\zlib\include
ZLIB_LIBRARY C:\dev\zlib\bin
作者がしろって言うから…。
ここまでしたら環境変数を反映させるために再起動する(多分プロパティを閉じて反映はされるとは思うけど念のために)。
Zlibを作る
こっから最新のソースを落とす!→展開しC:\dev\zlibへ。
C:\dev\cmake\Cmake-Gui.exeを立ち上げ、Browse Source
でそのフォルダを開くようにする。Browse Build
も同じフォルダにする。
ウインドウの真ん中あたりにあるConfigureボタンを押下する。なにでビルドするか聞かれるのでMinGW Makefiles
を選択します。
Finish
ボタンを押下するとなんらかの処理をし始めてConfigure
ボタンの上側のリストが真っ赤になります。エラーではなくて、設定してくれ!というメッセージのようです。 CMAKE_BUILD_TYPE
にRelease
と入れます。CMAKE_INSTALL_PREFIX
にはC:/dev/zlib
を入れます。INSTALL_BIN_DIR
にはC:/dev/zlib/bin
、INC、LIB、MAN、PKGCONFIGのそれぞれのDIRもC:/dev/zlib
から始まるようにします。一番下のLIBRARY_OUTPUT_PATH
はC:/dev/zlib/lib
でいいでしょう。
そして再びConfigure
ボタンを押下すると赤かったのが無くなってボタンの下にConfiguring done
と出ます。
そうしたらGenerate
ボタンを押下してください。
Generating done
と出てきたら成功です。やったね。Cmakeはここでいったんお役御免。
Windowsスタートメニューボタンを右クリックしてWindows PowerShell
を押下します。
cd \dev\zlib
でカレントフォルダを移動します。そこで
mingw32-make.exe install
を実行します。ずらーっとなんらかの文字列が流れていき、最後に指定したフォルダになんらかのファイルが格納されるはず、です。.obj
ファイルと.a
ファイルはいらないので
mingw32-make.exe clean
で消します。消えます。残ったファイル、.dll
ファイルと.dll.a
ファイルとinclude
フォルダの.h
ファイルは必要です。ので消さないでください。PowerShellはいったん閉じます。閉じなくてもまた使いますのでそのままでもいいです。
taglibを作る
こっから最新のソースを落とす!→展開しC:\dev\taglibへ。
再びCmake-gui.exeを起動し、Browse SourceをC:\dev\taglib
を選び、Browse Buildも同じフォルダにします。
Configure
ボタンを押下し、先ほどのzlibと同じようにMinGW Makefilesを選びます。先ほどより長くなんらかの作業が行われ、また赤くなります。CMAKE_BUILD_TYPE
にRelease
を入れ、DIRの項は同じようにC:/dev/taglib
配下に置くように設定します。またBUILD_SHARED_LIBS
にチェックを入れます。
再びConfigure
ボタンを押下し、Configuring done
が出てきたらこっちのもんです。すかさずGenerate
を押下しましょう。エラーが出なければまたMakefileができあがります。赤文字を読んでZLIB関連のエラーが気になるのであればAdvanced
にチェックを入れ詳細設定を出し、ZLIB関連の設定をしてあげましょう。
cd \dev\taglib
し、同じように
mingw-32.exe install
しましょう。zlibよりもファイルが多いため割と時間がかかります。エラーっぽいのも出てきますが、できるファイルに特に動作には支障がなさそうなのでこれでできあがりです。また
mingw-32.exe clean
をして余計なファイルは削除しておきましょう。なんか長かったですね。でもまだCantataビルドしてないんですよ。これからです。では行きましょう。
Cantataをビルドする
こっから最新のソースを落とす!→展開しC:\Cantata\srcへ。
Cantata配下にはinstallフォルダも作っておきます。ここにビルドされたファイルが入るようにします。
Browse Source
にC:/cantata/src
をBrowse Build
はC:/cantata/src
を選びます。しかる後にConfigure
ボタンを押下するとエラーが出ます。Qtスタジオなら多分出ないであろうエラーになります。ここからはエラーをしらみつぶしにしていきます。
まずCMAKE_BUILD_TYPE
にRelease
を入れます。CMAKE_INSTALL_PREFIX
にC:/cantata/install
をいれます。SHARE_INSTALL_PREFIX
にもC:/cantata/install
をいれます。Advanced
にチェックを入れ、TAGLIB_INCLUDES
にC:/dev/taglib/include
、ZLIB_INCLUDE_DIR
をZLIBを作ったときにできたincludeフォルダを指定し、ZLIB_LIBRARY_RELEASE
に作ったlibzlib.dll
を指定し、またConfigure
ボタンを押下すると恐らく上手いことエラーがでないはずです。そうしたらGenerate
ボタンを押下し、Makefileを作りましょう。
PowerShell上で
cd \cantata\src
し、
mingw32-make.exe install
しましょう。これはtaglibを作るよりもはるかに時間がかかります。お茶でも飲むかなんか他のことをしてましょう。
……エラーが出て止まりましたね。ここでQt Creatorの出番です。Qt Creatorを立ち上げ、ファイル
→ファイル/プロジェクトを開く
でC:/cantata/src/windows/CMakeList.txt
を開きます。そうするとConfigure Project
画面になるのでDesktop Qt 5.11.2 MinGW 32bit
にだけチェックを入れます。そして画面を下にスクロールさせ、Configure Project
ボタンを押下します。そしてQt Creatorの左側にあるプロジェクト
ボタンを押下し、Build & Run
のところのBuild
が選ばれた状態になり、画面の右側にいろいろと書かれている画面が出たと思います。その中のCMAKE_CODEBLOCKS_MAKE_ARGUMENTS
に../src -DCMAKE_BUILD_TYPE=Release -DENABLE_TAGLIB=OFF -DTAGLIB_FOUND=1 -DTAGLIB_INCLUDES=c:/dev/taglib/include -DTAGLIB_LIBRARIES=c:/dev/taglib/lib/libtag.dll.a -DTAGLIB_MP4_FOUND=1 -DTAGLIB_ASF_FOUND=1 -DTAGLIB_CAN_SAVE_ID3VER=1 -DZLIB_INCLUDE_DIR=c:/dev/zlib/include -DZLIB_LIBRARY=c:/dev/zlib/lib/libz.dll.a -DCMAKE_INSTALL_PREFIX=c:/cantata/install -DCANTATA_WINDOWS_INSTALLER_DEST=c:/cantata -DCANTATA_SSL_LIBS=c:/dev/ssl/libeay32.dll;c:/dev/ssl/ssleay32.dll
を入れます。で、ビルドステップと書いてある上にある設定の変更を適用
ボタンを押下します。
Qt Creatorのファイル
→すべて保存
をします。
Cmake-gui.exeを立ち上げ、Configure
ボタンを押下し、設定をし直して何度かConfigure
ボタンを押下し、エラーが出ないようにしてから、Generate
ボタンを押下してください。
エラーが出ないようでしたら、PowerShellを立ち上げ
cd \cantata\src
をして
mingw32-make.exe install
を実行してください。今度こそお茶が飲める、と思います。なんならカップラーメンもお湯を沸かす所から作って食べられる時間ができると思います。
でも、installに入ったところでインストールエラーで止まるんです。libz-1.dllが無いって言われて。そんなの作ってないですよね。大丈夫です。c:\dev\zlib\bin
にあったlibzlib.dll
をその場にコピーしてlibz-1.dll
にすれば引っ張ってきます。
.nsiファイルを使用してインストーラーを作る
ここまで来ればCantata2.3.3はできあがりです。アイコンをダブルクリックすれば立ち上がると思います。でもなんとなくむずがゆい。
恐らくSetup.exeみたいなインストーラーからインストールしてないからだと思います。
そこで、せっかくなので(?)インストーラーも作りたいと思います。そのための.nsi
ファイルなんですね。
NSIS-Downloadからインストーラーを作るNSIS 3.04
をダウンロードし、インストールして立ち上げます。立ち上がったら左上のCompiler
のCompile NSI scripts
を押下し、MakeNSISW
画面を出し、File
→Load Script
を押下し、C:\cantata\install
内にあるcantata.nsi
を選び、開く
ボタンを押下します。そうするとスクリプトが自動的に動き、インストーラーがじきにできあがります。Test Installer
ボタンを押下するとインストーラーが立ち上がります。見覚えのあるインストーラーが!ということでインストールしてCantataを立ち上げます。右上のハンバーガーメニューからCantataについてを選ぶとCantata 2.3.3
の文字が出ているはずです。お疲れ様でした。