※4.0.10 がリリースされたためクローンリポジトリの更新は終了しました。(2013-03)
English documentation
https://docs.google.com/document/d/1GHuMMnZ8eM7MVwoI1Vv7aSdQxAKKQK4n-8tsyFPpPwg/edit?usp=sharing
概要
RawTherapee の公式リポジトリのクローンです。OS X 向けに調整しています。"macosx" ブランチを使用して下さい。
http://code.google.com/r/mattintosh4-rt4-mac
hg clone -b macosx https://code.google.com/r/mattintosh4-rt4-mac/
MacPorts を利用している方は Portfile からのインストールもできます。
https://github.com/mattintosh4/MP-RawTherapee
使い方
簡単にバンドル化ができるように macosx_bundle
というターゲットを用意しています。make install
の後に実行して下さい。ビルドディレクトリ内にアプリケーションバンドルとディスクイメージが作成されます。
cmake ../path/to/source make install make macosx_bundle
依存関係のインストール
GTK+ 関連は MacPorts または JHBuild でインストールできます。X11 バックエンドを使用するなら MacPorts、Quartz バックエンドを使用するなら JHBuild がおすすめです。(MacPorts はバリアントによるポートの衝突が多いため)
MacPorts
以下のポートが必要です。バリアントは Quartz バックエンドを使用する場合の設定です。X11 バックエンドを使用する場合は必要ありません。variants.conf
に +quartz -x11
を追加する方法もあります。cairo 〜 gtkmm までの順番を変えるとうまくインストールできないことがあります。2013年01月現在でインストールが可能だった手順ですが、ポートの更新に伴い、衝突が発生するかもしれません。うまくインストールできない場合はログで確認して下さい。
ポート名 | バリアント(Quartz使用時) | JHBuild |
---|---|---|
cairo | +quartz -x11 | meta-gtk-osx-core |
pango | +quartz -x11 | meta-gtk-osx-core |
gdk-pixbuf2 | -x11 | meta-gtk-osx-core |
gtk2 | +quartz | meta-gtk-osx-core |
libsigcxx2 | meta-gtk-osx-core | |
gtkmm *1 | meta-gtk-osx-gtkmm | |
gtk-engines2 | meta-gtk-osx-core | |
lcms2 | - | |
libiptcdata | - | |
fftw-3-single | - | |
gcc47 *2 | - | |
cmake *3 | - | |
mercurial | - |
*1:バイナリモードではインストールに失敗する可能性があります。ソースモードに変更してインストールして下さい。
sudo port -s install gtkmm
*2:OpenMP を使用する場合。
*3:CMake は公式からも入手できます(http://www.cmake.org/cmake/resources/software.html)。コマンドラインツールが使える状態にしておいて下さい。
JHBuild を使用する場合
JHBuild は gtk-osx-build-setup.sh を使うと簡単にインストールできます。GitHub(https://github.com/jralls/gtk-osx-build)などからダウンロードして実行します。JHBuild の実行ファイルは $HOME/.local/bin
、パッケージは $HOME/gtk
にインストールされるようになっています。
(※www.gnome.org から配布されている JHBuild と www.gtk.org から配布されている JHBuild は仕様が違うみたいです。jhbuildrc の記述が異なります。また、jhbuild bootstrap
に --ignore-system
が使えなかったりします。)
パッケージのインストール先を変更したい場合は $HOME/.jhbuildrc
の496行目辺りにある記述を変更します($HOME/.jhbuildrc-custom
でもできるかも)。以下の例ではインストール先を /opt/gtk
に変更しています(実際には /opt
への書込権限が必要になるので下準備が必要です)。
<feff><feff># Source and installation locations. # # #_root = os.path.expanduser("~/gtk") _root = os.path.expanduser("/opt/gtk")
MacPorts と競合しないようにシェルのプロファイルにエイリアスを設定しておきます。
alias jhbuild="$HOME/.local/bin:$HOME/gtk/inst/bin:/usr/bin:/bin:/usr/sbin:/sbin jhbuild"
以下のパッケージをインストールします。
jhbuild bootstrap --ignore-system
jhbuild build meta-gtk-osx-bootstrap
jhbuild build meta-gtk-osx-core
jhbuild build meta-gtk-osx-gtkmm
jhbuild build meta-gtk-osx-themes
jhbuild build shared-mime-info
fftw-3 などは JHBuild にありませんので MacPorts を使ってインストールして下さい。
RawTherapee のビルド
ここでは MacPorts 版の GCC 4.7 を用いてビルドする方法を説明します。
CMake ではソース外ビルドが推奨されているのでビルドディレクトリを作成して作業していきます。-DCMAKE_<LANG>_COMPILER
などは CC
や CXX
変数で指定することもできます。
# macosx ブランチのみをクローン hg clone https://code.google.com/r/mattintosh4-rt4-mac/ # ビルドディレクトリの作成 mkdir build cd build # Cコンパイラに gcc-mp-4.7、C++ コンパイラに g++-mp-4.7 を指定して cmake を実行 cmake -DCMAKE_C_COMPILER=gcc-mp-4.7 -DCMAKE_CXX_COMPILER=g++-mp-4.7 ../mattintosh4-rt4-mac make install make macosx_bundle
JHBuild を使用してビルドする場合は cmake を実行する前に、pkg-config の環境変数を変更します。
# PATH を JHBuild のディレクトリ優先に設定 export PATH=$HOME/gtk/inst/bin:$PATH # pc ファイルの検索パスに MacPorts のディレクトリを追加 export PKG_CONFIG_PATH=$HOME/gtk/inst/lib/pkgconfig:/opt/local/lib/pkgconfig
各 pkg-config に設定されている pc ファイルの検索パス(PKG_CONFIG_LIBDIR
?)は以下のように調べることができます。
/opt/local/bin/pkg-config --variable pc_path pkg-config
gcc|g++-mp-4.7 使用時の注意次項
現在の公式のソースでは MacPorts の /opt/local/lib/libstdc++.6.dylib
とシステムの /usr/lib/libstdc++.6.dylib
が競合するため、実行ファイル単体で起動しようとすると失敗します。これに関していくつかの回避策が考えられます。
※これらの方法は試験中です
1. リンカフラグに -weak_library
を使用する
実行ファイルのリンクに -Wl,-weak_library,/usr/lib/libstdc++.6.dylib
を追加することで /usr/lib/libstdc++.6.dylib
を先に読み込ませることができます。
LDFLAGS="-Wl,-weak_library,/usr/lib/libstdc++.6.dylib"
cmake 時に設定する場合は CMAKE_EXE_LINKER_FLAGS
が使用できます。
-DCMAKE_EXE_LINKER_FLAGS="-Wl,-weak_library,/usr/lib/libstdc++.6.dylib"
2. DYLD_INSERT_LIBRARIES
と DYLD_FORCE_FLAT_NAMESPACE
を使用する
DYLD_INSERT_LIBRARIES
で指定のライブラリの割り込みができます。DYLD_FORCE_FLAT_NAMESPACE
は変数の宣言のみでかまいません。
DYLD_INSERT_LIBRARIES=/usr/lib/libstdc++.6.dylib DYLD_FORCE_FLAT_NAMESPACE= rawtherapee
ビルド時に -Wl,-flat_namespace
付きでビルドしている場合は DYLD_FORCE_FLAT_NAMESPACE
は必要ありません。
3. DYLD_LIBRARY_PATH
を使用する
DYLD_LIBRARY_PATH=/opt/local/lib/gcc47 rawtherapee