Windows/jp

Windows

本項はWindowsシステムでRawTherapeeをコンパイルする説明をしています. Linux/jpとmacOS/jpでコンパイルする説明は別項にあります. ここではコンパイルの部分的な詳細説明を行っています. コマンドの意味やディペンデンシー一覧、CMakeのオプション、その他の情報に関しては、Linuxの説明文を参考にして下さい.

ソースコードのクローン作成、ブランチの選択、CMakeの設定、実際のコンパイル手順も、やはりLinuxの説明文を参考にします. 以下はWindowsのコンパイルに関する追加事項です.

RawTherapeeのコンパイルにはGTK+のバージョン３.22.24以上が必要です. このバージョンは元々Windowsをサポートするための最初のバージョンpatchedなので、バージョン要件が満たされていないと、Windowd10の場合、ウィンドウのタスクバーが 最大表示されるなどの異常な表示になってしまいます.

GTK+2をサポートし、WindowsXPとの互換性のあるRawTherapeeの最後のバージョンは、2017年2月2日にリリースされた5.0-r1-gtk2です.

MSYS2の基本システムをインストールする
まず、MSYS2 websiteからの以下の説明に従ってMSYS2を更新します. 最新版が手に入るまでは次の様にMSYS2の基本システムを更新します： $ pacman -Syu インストールの最後に、次の3つのシェルが手に入ります：
 * MSYS2シェル:コアのシステムを開発するのと、MSYS2アプリケーションを管理する（主にMSYS2パッケージの更新）ために使われるものです.
 * MINGW64シェル:64ビットアプリケーションをビルドするための環境を提供します.
 * MINGW32シェル:32ビットアプリケーションをビルドするための環境を提供します.



注意: 以下の テキストはMSYS2インストールフォルダーです.

ツールとライブラリーをインストール
MSYS2のパッケージマネジャーはpacmanです. 詳しくは pacmanマニュアル を参照して下さい. MSYS2シェルには: 初めに、幾つか細かいツールをインストールします: $ pacman -S tar gzip nano make diffutils intltool git 次に必要な開発ツールをインストールします: $ pacman -S mingw-w64-i686-gcc mingw-w64-i686-gdb mingw-w64-i686-make mingw-w64-i686-pkg-config mingw-w64-i686-cmake $ 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 必要なライブラリーをインストールします: $ pacman -S mingw-w64-i686-gtkmm3 mingw-w64-i686-lcms2 mingw-w64-i686-fftw mingw-w64-i686-lensfun $ pacman -S mingw-w64-x86_64-gtkmm3 mingw-w64-x86_64-lcms2 mingw-w64-x86_64-fftw mingw-w64-x86_64-lensfun
 * 1) win32
 * 1) win64
 * 1) win32
 * 1) win64

適用可能なバージョンのパッケージを取得する
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 もしも、パッケージが\var\cache\pacman\pkgの中になければ、次に示すリンクからダウンロード出来ます. この時、MSYS2の中の各ファイルは： Pacman -U /mingw-w64-x86_64-... Pacmanがパッケージを更新しないよう、\etc\pacman.confに以下を追加します. IgnorePkg = mingw-w64-x86_64-libjpeg-turbo IgnorePkg = mingw-w64-x86_64-lensfun 32ビットバージョンをビルドする場合は、上記の作業でx86_64をi386に置き換えて行います.
 * 1) Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup

MSYS2の基本システムとアプリケーションパッケージを更新する
MSYS2のシェルの中は: $ pacman -Syuu

Lensfunのデータベースを更新
から フォルダーと ファイルをコピーし、 に貼り付けます. 上記の中の はインストールされた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

$ ./configure --prefix=/mingw32 $ ./configure --prefix=/mingw64 その後で、 を開き、テキストエディターを使って、 と という名前のリストから と を削除します. そうしないとインストールとビルドが失敗します. $ nano -m Makefile
 * 1) win32
 * 1) win64

DIST_SUBDIRS = m4 libiptcdata po iptc docs win python DIST_SUBDIRS = m4 libiptcdata po win python
 * 1) search (command ctrl/W)
 * 1) and replace with

SUBDIRS = m4 libiptcdata po iptc docs win $(MAYBE_PYTHONLIB) SUBDIRS = m4 libiptcdata po win $(MAYBE_PYTHONLIB)
 * 1) search
 * 1) and replace with

ctrl/O
 * 1) save

ctrl/X 最後に、ライブラリーを作成してインストールします： $ make $ make install $ cd
 * 1) quit

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 リポジトリーのクローンを作ると自動的に ブランチに入りますが、これを手動で行う場合は次を使います： $ 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つのドット..の前に、 というコンパイラフラッグを追加する必要があります. -DCMAKE_C_FLAGS="-mstackrealign" -DCMAKE_CXX_FLAGS="-mstackrealign" これでMINGW64のコマンドラインを使ってRawTherapeeのビルドが始められます: $ cd debug $ cd release $ cd relwithdebinfo $ ./rawtherapee.exe
 * 1) for debug builds
 * 1) for release builds
 * 1) for relwithdebinfo builds

RawTherapeeと必要なDLLをコピーする
DLLは、Windowsのファイルマネジャー、或いはシェルスクリプトの中にあるrobocopyのinstead of / for the optionsを使って（推奨）コピー出来ます. フォルダーの定義は: Copy the content of  into. 必要なDLLと実行ファイルを からコピーします. 必要なDLLと実行ファイルは次の通りです： gspawn--helper.exe gspawn--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 libfﬁ-6.dll libfftw3f-3.dll libfontconﬁg-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テーマファイルとディレクトリーを からコピーし に貼り付けます： 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 次のファイルをコピーします: \lib\gdk-pixbuf-2.0 -> .\lib\gdk-pixbuf-2.0 \share\glib-2.0\schemas\gschemas.compiled -> .\share\glib-2.0\schemas \share\lensfun\version_1\* -> .\share\lensfun
 * is
 * is the MSYS2 installation folder,
 * and is the RawTherapee installation folder.

.\share\GTK3に以下を含む ファイルを作ります：  [Settings] gtk-button-images=1

配布可能なパッケージを作成する
Windowsのプラットフォームに配布可能なRawTherapeeのパッケージを作る場合は、最初のステップとして、“generic”プロセッサをターゲットとしたRawTherapeeをビルドする必要があります. そのためには、CMakeコマンドで を使います.

コンパイル中に、 という名前のスクリプトが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デバッガの実行ファイルは一緒に入れて下さい. デバッガ実行ファイル の32ビット及び64ビットバージョンのWindowsバイナリーはここからダウンロード出来ます. これで全ての準備が整いました. WindowsInnoSetup.issを右クリックし、コンテックスメニューの中からコンパイルを選択するとパッケージが作成されます. インストーラーが自動的に作成され、親フォルダーの中に置かれます.

貴方が作成した新しいパッケージとRawTherapeeウェブサイトのアップロードパネルに互換性を持たせるため、新しく作成されたインストーラーとそれに対応するAboutThisBuild.txtファイルの両方を同じ場所に置くためのzipアーカイブを作って下さい. 以下のテンプレーで作成したzipアーカイブに名前を付けます：
 * "WinVista"はWindows10を含むVista以降のどのWindowsバージョンでも動作可能であることを意味します.
 * "version" は貴方が タグと一致させた場合は のように表示され、 タグの後に ブランチと一致させた場合は、 と表示されます.
 * 一つのインストーラーに複数のビルドを入れる場合は、名前に を入れないで下さい.