Windows/jp
本項はWindowsシステムでRawTherapeeをコンパイルする説明をしています。LinuxとmacOSでコンパイルする説明は別項にあります。ここにはコンパイルの際に何を、どうするのかという詳細が書かれています。何故及びこれらコマンドの説明、ディペンデンシーのリスト、CMakeオプション、その他の情報に関しては、 Linux を参考にして下さい。
ソースコードのクローン作成、ブランチの選択、CMakeの設定、実際のコンパイル手順も、やはりLinuxの説明文を参考にします。以下はWindowsのコンパイルに関する追加事項です。
RawTherapeeのコンパイルにはGTK+のバージョン3.22.24以上が必要です。このバージョンは元々Windowsをサポートするための最初のバージョンpatchedなので、バージョン要件が満たされていないと、Windowd10の場合、ウィンドウのタスクバーが 最大表示されるなどの異常な表示になってしまいます。
GTK+2をサポートし、WindowsXPとの互換性のあるRawTherapeeの最後のバージョンは、2017年2月2日にリリースされた5.0-r1-gtk2です。
MSYS2のインストール
MSYS2の基本システムをインストールする
まず、MSYS2 websiteからの以下の説明に従ってMSYS2を更新します。最新版が手に入るまでは次の様にMSYS2の基本システムを更新します:
$ pacman -Syu
インストールの最後に、次の3つのシェルが手に入ります:
- MSYS2シェル:コアのシステムを開発するのと、MSYS2アプリケーションを管理する(主にMSYS2パッケージの更新)ために使われるものです。
- MINGW64シェル:64ビットアプリケーションをビルドするための環境を提供します。
- MINGW32シェル:32ビットアプリケーションをビルドするための環境を提供します。
注意: 以下の<MSYS2>
テキストはMSYS2インストールフォルダーです。
ツールとライブラリーをインストール
MSYS2のパッケージマネジャーはpacmanです。 詳しくは pacmanマニュアル を参照して下さい。 MSYS2シェルには: 初めに、幾つか細かいツールをインストールします:
$ pacman -S tar gzip nano make diffutils intltool git
次に必要な開発ツールをインストールします:
# win32 $ pacman -S mingw-w64-i686-gcc mingw-w64-i686-gdb mingw-w64-i686-make mingw-w64-i686-pkg-config mingw-w64-i686-cmake # win64 $ pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-make mingw-w64-x86_64-pkg-config mingw-w64-x86_64-cmake
必要なライブラリーをインストールします:
# win32 $ pacman -S mingw-w64-i686-gtkmm3 mingw-w64-i686-lcms2 mingw-w64-i686-fftw mingw-w64-i686-lensfun # win64 $ pacman -S mingw-w64-x86_64-gtkmm3 mingw-w64-x86_64-lcms2 mingw-w64-x86_64-fftw mingw-w64-x86_64-lensfun
適用可能なバージョンのパッケージを取得する
MSYS2はパッケージを断続的にリリースしているので、新しいバージョンのパッケージに中には現在のRawTherapeeと互換性がないものが存在する可能性があります。 以下はダウンロードする必要のあるパッケージのリストです:
mingw-w64-x86_64-lensfun-0.3.2-4-any.pkg.tar.xz mingw-w64-x86_64-libjpeg-turbo-1.5.3-1-any.pkg.tar.xz
もしも、パッケージが<MSYS2>\var\cache\pacman\pkgの中になければ、次に示すリンクからダウンロード出来ます。 この時、MSYS2の中の各ファイルは:
Pacman -U <path-to-files>/mingw-w64-x86_64-...
Pacmanがパッケージを更新しないよう、<MSYS2>\etc\pacman.confに以下を追加します。
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup IgnorePkg = mingw-w64-x86_64-libjpeg-turbo IgnorePkg = mingw-w64-x86_64-lensfun
32ビットバージョンをビルドする場合は、上記の作業でx86_64をi386に置き換えて行います。
MSYS2の基本システムとアプリケーションパッケージを更新する
MSYS2のシェルの中は:
$ pacman -Syuu
Lensfunのデータベースを更新
<mingw32|mingw64>\lib\python3.6\site-packages
からlensfun
フォルダーとlensfun-0.3.2-py3.6.egg-info
ファイルをコピーし、<mingw32|mingw64>\lib\python3.<version>\site-packages
に貼り付けます。
上記の中の<vesion>はインストールされたPython3のバージョンのことです。
Mingw32或いはMingw64シェルには以下が入ります:
$ lensfun-update-data
libiptcdataのダウンロードと作成
32ビットバージョンをビルドする人は“MinGW32シェル”を、64ビットバージョンをビルドする人は“MinGW64”を使います。 libiptcdataライブラリーはMSYS2から提供されないので、自身でダウンロードし以下を使って作成します:
$ curl -LO http://downloads.sourceforge.net/project/libiptcdata/libiptcdata/1.0.4/libiptcdata-1.0.4.tar.gz $ tar xzf libiptcdata-1.0.4.tar.gz $ cd libiptcdata-1.0.4 # win32 $ ./configure --prefix=/mingw32 # win64 $ ./configure --prefix=/mingw64
その後で、Makefile
を開き、テキストエディターを使って、SUBDIRS
とDIST_SUBDIRS
という名前のリストからiptc
と docs
を削除します。そうしないとインストールとビルドが失敗します。
$ nano -m Makefile # search (command ctrl/W) DIST_SUBDIRS = m4 libiptcdata po iptc docs win python # and replace with DIST_SUBDIRS = m4 libiptcdata po win python # search SUBDIRS = m4 libiptcdata po iptc docs win $(MAYBE_PYTHONLIB) # and replace with SUBDIRS = m4 libiptcdata po win $(MAYBE_PYTHONLIB) # save ctrl/O # quit ctrl/X
最後に、ライブラリーを作成してインストールします:
$ make $ make install $ cd
RawTherapeeのクローンとビルド
32ビットバージョンをビルドする人は“MinGW32シェル”を、64ビットバージョンをビルドする人は“MinGW64”を使います。
RawTherapeeのGitリポジトリーのクローン
ビルドフォルダーのパスの中にスペース文字があると、ビルドが失敗します。例えば、Windowsのユーザーネームが“Zank Frappa”だとすると、そのホームパスはC:¥Users¥Zank Frappa¥ですが、その中にRawTherapeeのクローンを入れるとコンパイル中にビルドが失敗するでしょう。単純に、フォルダーにも親フォルダーの名前の中にスペースが入っていないフォルダーにクローンを入れます。例えば、C:¥code\repo-rtのように。
$ git clone http://github.com/Beep6581/RawTherapee.git /c/code/repo-rt $ cd /c/code/repo-rt
リポジトリーのクローンを作ると自動的にdev
ブランチに入りますが、これを手動で行う場合は次を使います:
$ git checkout dev
ビルドのために別のディレクトリーを作成
$ mkdir build $ cd build
ビルドのブランチを変更する際には、新しい空のフォルダーを使って初めからコンパイルするため、それまでのビルド
ファルダ―を必ず削除します。そうしないと恐らくコンパイルに失敗するでしょう。但し、ブランチを変更せずにビルドを更新するだけであれば、空のフォルダーから始める必要はなく、既存のフォルダーが使えるので、速くコンパイルすることが出来ます。
CMakeとMakeを起動
$ cmake -G "MSYS Makefiles" -DLENSFUNDBDIR=share/lensfun -DCMAKE_BUILD_TYPE="release" -DPROC_TARGET_NUMBER="2" -DCACHE_NAME_SUFFIX="5-dev" .. $ make install
"BUILD_TYPE"のオプションを含む様々なCMakeのオプションの説明は、Linuxでのコンパイルの項を参照して下さい。
32ビットWindowsのrelease或いはrelwithdebinfoバージョンを作成する場合は、上記CMakeのコマンドの2つのドット..の前に、-mstackrealign
というコンパイラフラッグを追加する必要があります。
-DCMAKE_C_FLAGS="-mstackrealign" -DCMAKE_CXX_FLAGS="-mstackrealign"
これでMINGW64のコマンドラインを使ってRawTherapeeのビルドが始められます:
# for debug builds $ cd debug # for release builds $ cd release # for relwithdebinfo builds $ cd relwithdebinfo $ ./rawtherapee.exe
RawTherapeeと必要なDLLをコピーする
DLLは、Windowsのファイルマネジャー、或いは<mingw32|mingw64>シェルスクリプトの中にあるrobocopyのinstead of / for the optionsを使って(推奨)コピー出来ます。 フォルダーの定義は:
<prefix>
is<MSYS2>\<mingw32|mingw64>,
<MSYS2>
is the MSYS2 installation folder,- and
.
is the RawTherapee installation folder.
Copy the content of c:\code\repo-rt\build\<debug|release|relwithdebinfo>
into.
.
必要なDLLと実行ファイルを<prefix>\bin
からコピーします。必要なDLLと実行ファイルは次の通りです:
gspawn-<win32|win64>-helper.exe gspawn-<win32|win64>-helper-console.exe libatk-1.0-0.dll libatkmm-1.6-1.dll libbz2-1.dll libcairo-2.dll libcairo-gobject-2.dll libcairomm-1.0-1.dll libcroco-0.6-3.dll libdatrie-1.dll libepoxy-0.dll libexpat-1.dll libffi-6.dll libfftw3f-3.dll libfontconfig-1.dll libfreetype-6.dll libfribidi-0.dll libgcc_s_seh-1.dll (or libgcc_s_dw2-1.dll for W32) libgdk_pixbuf-2.0-0.dll libgdk-3-0.dll libgdkmm-3.0-1.dll libgio-2.0-0.dll libgiomm-2.4-1.dll libglib-2.0-0.dll libglibmm-2.4-1.dll libgmodule-2.0-0.dll libgobject-2.0-0.dll libgomp-1.dll libgraphite2.dll libgtk-3-0.dll libgtkmm-3.0-1.dll libharfbuzz-0.dll libiconv-2.dll libintl-8.dll libjpeg-8.dll liblcms2-2.dll liblensfun.dll liblzma-5.dll libpango-1.0-0.dll libpangocairo-1.0-0.dll libpangoft2-1.0-0.dll libpangomm-1.4-1.dll libpangowin32-1.0-0.dll libpcre-1.dll libpixman-1-0.dll libpng16-16.dll librsvg-2-2.dll libsigc-2.0-0.dll libstdc++-6.dll libsystre-0.dll libthai-0.dll libtiff-5.dll libtre-5.dll libwinpthread-1.dll libxml2-2.dll libzstd.dll zlib1.dll
次に示すAdwaitaテーマファイルとディレクトリーを<prefix>\share\icons\Adwaita\
からコピーし.\share\icons\Adwaita\
に貼り付けます:
scalable\actions scalable\devices scalable\mimetypes scalable\places scalable\status scalable\ui index.theme cursors\plus.cur cursors\sb_h_double_arrow.cur cursors\sb_left_arrow.cur cursors\sb_right_arrow.cur cursors\sb_v_double_arrow.cur
次のファイルをコピーします:
<prefix>\lib\gdk-pixbuf-2.0 -> .\lib\gdk-pixbuf-2.0 <prefix>\share\glib-2.0\schemas\gschemas.compiled -> .\share\glib-2.0\schemas <prefix>\share\lensfun\version_1\* -> .\share\lensfun
.\share\GTK3に以下を含むsettings.ini
ファイルを作ります:
[Settings] gtk-button-images=1
配布可能なパッケージを作成する
Windowsのプラットフォームに配布可能なRawTherapeeのパッケージを作る場合は、最初のステップとして、“generic”プロセッサをターゲットとしたRawTherapeeをビルドする必要があります。そのためには、CMakeコマンドで-DPROC_TARGET_NUMBER="1"
を使います。
コンパイル中に、WindowsInnoSetup.iss
という名前のスクリプトがRawTherapeeのインストーラーフォルダーの中に作成されます。このスクリプトはInno Setup [1]で使われるもので、Windows用プログラムのためのインストーラーを作ります。言語に関する問題発生を避けるため、Unicodeのバージョン[2]をダウンロードすることを奨めます。
ユーザーにバグの報告をしてもらうことがあるので、パッケージの管理者には“release”と”debug”の両実行ファイルをビルドし、それらをGDBのデバッガ実行ファイルと共に一まとめにするようお願いします。
言い換えると、rawtherapee.exe(release)ファイルとrawtherapee.exe(debug)ファイル、及びgdb.exeファイルを同じインストーラー或いは同じアーカイブに一緒に入れます。別な方法として、“release”より最適化はされていませんが、”debug”より動作速度が数段早い“relwithdebinfo”ビルドの作成があります。”debug”ビルドほどの詳細情報は得られませんが、このビルドでもかなりの情報が得られます。
“relwithdebinfo”, “debug”ビルドの何れの作成するにしても、GDBデバッガの実行ファイルは一緒に入れて下さい。デバッガ実行ファイルgdb.exe
の32ビット及び64ビットバージョンのWindowsバイナリーはここからダウンロード出来ます。これで全ての準備が整いました。WindowsInnoSetup.issを右クリックし、コンテックスメニューの中からコンパイルを選択するとパッケージが作成されます。インストーラーが自動的に作成され、親フォルダーの中に置かれます。
貴方が作成した新しいパッケージとRawTherapeeウェブサイトのアップロードパネルに互換性を持たせるため、新しく作成されたインストーラーとそれに対応するAboutThisBuild.txtファイルの両方を同じ場所に置くためのzipアーカイブを作って下さい。以下のテンプレーで作成したzipアーカイブに名前を付けます:
RawTherapee_<branch>_<version>_WinVista_<32|64>_<buildtype>.zip
- "WinVista"はWindows10を含むVista以降のどのWindowsバージョンでも動作可能であることを意味します。
- "version" は貴方が
5.2
タグと一致させた場合は5.2
のように表示され、5.2
タグの後にdev
ブランチと一致させた場合は、5.2-g1a2b3c4d
と表示されます。 - 一つのインストーラーに複数のビルドを入れる場合は、名前に<buildtype>を入れないで下さい。