MacOS/jp: Difference between revisions

From RawPedia
Jump to navigation Jump to search
(Created page with "<span style="color: #000000; background: none; overflow: hidden; page-break-after: avoid; font-size: 2.0em; font-family: Georgia,Times,serif; margin-top: 1em; margin-bottom: 0...")
 
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
<span style="color: #000000; background: none; overflow: hidden; page-break-after: avoid; font-size: 2.0em; font-family: Georgia,Times,serif; margin-top: 1em; margin-bottom: 0.25em; line-height: 1.3; padding: 0; border-bottom: 1px solid #AAAAAA;">MacOS</span>
<div class="pagetitle">macOS</div>


 本項は'''macOS'''システムでRawTherapeeをコンパイルする説明をしています。[[Linux/jp|Linux]] と [[Windows/jp| Windows]] でコンパイルする説明は別項にあります。 ここにはコンパイルの際に'''何を'''、'''どうするのか'''という詳細が書かれています。'''何故'''及びこれらコマンドの説明、ディペンデンシーのリスト、CMakeオプション、その他の情報に関しては、[[Linux/jp| Linux]] を参考にして下さい。
 本項は'''macOS'''システムでRawTherapeeをコンパイルする説明をしています。[[Linux/jp|Linux]] と [[Windows/jp| Windows]] でコンパイルする説明は別項にあります。 ここにはコンパイルの際に'''何を'''、'''どうするのか'''という詳細が書かれています。'''何故'''及びこれらコマンドの説明、ディペンデンシーのリスト、CMakeオプション、その他の情報に関しては、[[Linux/jp| Linux]] を参考にして下さい。
Line 17: Line 17:


=== MacPorts ===
=== MacPorts ===
{{warning/jp|1=前提条件となるライブラリーを管理するためにHomebrewを使う場合は、MacPorts或いは<code>sudo port</code>に関わるコマンドは使用しません}}
 以下の手順はバージョン10.9及びそれ以降のOS Xでテスト済です。
 以下の手順はバージョン10.9及びそれ以降のOS Xでテスト済です。


* '''必要なもの:'''
* '''前提条件:'''
** AppleのXcode デベロッパーツール
** Xcode デベロッパーツール
** Appleのコマンドラインツール
** コマンドラインツール
** MacPorts
** MacPorts
*** MacPortsとXcode デベロッパーツールの詳細設定はMacPortsのウェブサイトで見ることが出来ます。
*** MacPortsとXcode デベロッパーツールの詳細設定は[https://www.macports.org MacPorts website]のウェブサイトで見ることが出来ます。
*** Appleが提供している専用システムコンパイリングは非常に古いものでOpenMPをサポートしていませんので使わないようにします。MacPortsの最新の安定したコンパイラを使います-その方がRawTherapeeの動作が速くなります。
*** Appleが提供している専用システムコンパイリングは非常に古いものでOpenMPをサポートしていませんので使わないようにします。MacPortsの最新の安定したコンパイラを使います-その方がRawTherapeeの動作が速くなります。
* '''MacPortsの構成:'''  
* '''MacPortsの構成:'''  
Line 29: Line 30:
:: <code>+quartz -x11 -gnome</code>
:: <code>+quartz -x11 -gnome</code>


=== libiconvパッチ ===
* '''ディペンデンシー:'''
 libiconv.2.dylibにはパッチの適用が必要です、そうしないとRawTherapeeが起動時にクラッシュします。パッチは[https://github.com/Beep6581/RawTherapee/blob/dev/tools/osx/libiconv_1.15_rt.patch <code>tools/osx/libiconv_1.15_rt.patch</code>]から入手出来ます。
: ディペンデンシーをインストールするには, ターミナルから実行します:
:: <code>sudo port install git clang-9.0 ++-mp libomp gtk3 gtkmm3 gtk-osx-application-gtk3 adwaita-icon-theme libsigcxx2 lcms2 libiptcdata fftw-3-single lensfun</code>
: Xcode 9.2上でコンパイルする場合は、以下を追加する必要があります:
:: <code>sudo port install ld64 +ld64_xcode</code>


 Libiconvのパッチ適用とコンパイルの手順は:
* '''MacPortsのコンパイルシステムの構成'''
<pre style="white-space: pre-wrap">
: <code>cmake</code> コマンドに以下のフラッグを追加:
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz
:: <code>-DLOCAL_PREFIX=PATH:"/opt"</code>
tar xf libiconv-1.15.tar.gz
cd libiconv-1.15
wget https://raw.githubusercontent.com/Beep6581/RawTherapee/dev/tools/osx/libiconv_1.15_rt.patch
patch -p1 < libiconv_1.15_rt.patch
mkdir build
cd build
buildDir="$(pwd)"
../configure --prefix=/opt/local --disable-static 'CFLAGS=-arch x86_64 -mmacosx-version-min=10.9' 'LDFLAGS=-arch x86_64 -mmacosx-version-min=10.9' CXXFLAGS="-arch x86_64 -mmacosx-version-min=10.9"
make
make DESTDIR="$buildDir" install
cd /opt/local/lib
sudo cp ./libiconv.2.dylib ./libiconv.2.dylib.backup # backup MacPorts dylib
sudo cp "${buildDir}/opt/local/lib/libiconv.2.dylib" /opt/local/lib/libiconv.2.dylib
</pre>
 
=== 5.5-devにおけるDistribution Bundle Framework Libraryのバージョン ===
{| class="wikitable"
|-
! package
! 5.5 version
! status
! 5.6 version
! status
! 5.6-dev version
! status
|-
|gtk+
| 3.22.26-168-g63f534f4b3
| on branch <code>gtk-3-22</code>
| 3.22.30
| prev. 3.24.0
| 3.24.8
|
|-
|gtkmacintegration-gtk3
| 2.0.8
|
|
|
| 2.1.3-6-g3e1d4a3
|
|-
|gdk-pixbuf
|2.36.11
|
|
|
|2.38.0-115-g0b959ad2e
|
|-
|cairo
| 1.14.8
|PATCHED[https://github.com/Beep6581/RawTherapee/issues/3882#issuecomment-311703141]
|
|
| 1.17.2
| patch applies
|-
|cairomm
| 1.12.2
|
|
|
| cairomm-1-14
|
|-
|cairo-gobject
| 1.14.10
|
|
|
| 1.17.2
|
|-
|pango
| 1.40.12
|
| 1.42.4
|
| 1.43.0
|
|-
|pangomm
| 2.40.1
|
|
|
| 2.42.0
|
|-
|gtkmm
| 3.22.2
|
|
|
| 3.24.1
|
|-
|atk
| 2.26.1
|
|
|
| ATK_2_31_92-5-ga2bff76
| master
|-
|atkmm
| 2.24.2
|
|
|
|
|
|-
|glib/gio
| 2.54.2
|
|
|
| 2.58.3
|
|-
|glibmm/giomm
| 2.54.1-15-ge9330a8e
| On branch <code>glibmm-2-54</code>
|
|
| 2.56.1
|
|-
|libsigc++-2.0
| 2.10.0
|
|
|
| 2.10.1
|
|-
|TIFF
| 4.0.9
|
|
|
|
|
|-
|pixman
| 0.34.0
|
|
|
| pixman-0.38.4
|
|-
|PNG
| 1.6.33
|
|
|
| 1.6.37
|
|-
|expat
| 2.2.4
|
|
|
| R_2_2_6-61-g5e2859f
| master
|-
|lcms2
| 2.8
|
|
|
| lcms2.9rc1-45-g65c63bf
| master
|-
|JPEG
| 9b
|
|
|
| 8.4.0-4-g6c0fcb8
| master
|-
|harfbuzz
| 1.4.7
|
|
|
| 2.4.0-3-gb292772e
|
|-
|epoxy
| 1.4.3
|
|
|
| 1.5.3-4-gd536f78
|
|-
|pcre
| 8.4.1
|
|
|
| 8.4.2
| master
|-
|lensfun
| 0.3.2.0
|
|
|
| v0.3.95-221-g8de8fbb7
| master
|-
|libiconv2
| 1.15
| [[#libiconv_patch|PATCHED]]
|
|
|
|
|-
|iptcdata
| 1.0.4
|
|
|
|
|
|-
|fontconfig
| 2.12.4
|
|
|
| 2.13.1-81-gfd2e155
| master
|-
|freetype2
| 20.0.14
|
|
|
| VER-2-10-0-15-gd74106e23
| master
|-
|libz
| 1.2.11
|
|
|
| system libz
|
|-
|graphite2
| 1.3.0.1
|
|
|
| 1.3.13
|
|-
|fftw
| 3.3.7
|
|
|
|
|
|-
|libffi
| 3.2.1
|
|
|
| v3.3-rc0-36-gd1e9b4b
|
|-
|libiomp5
| 20160808_oss[https://github.com/Beep6581/RawTherapee/issues/3971#issuecomment-315643878]
| REPLACES libomp from clang [https://github.com/Beep6581/RawTherapee/issues/3971]
|
|
|
|
|}


== コンパイル ==
== コンパイル ==
Line 355: Line 69:
       -DPROC_LABEL="generic processor" \
       -DPROC_LABEL="generic processor" \
       -DCACHE_NAME_SUFFIX="5-dev" \
       -DCACHE_NAME_SUFFIX="5-dev" \
       -DCMAKE_C_COMPILER="clang-mp-3.9" \
       -DCMAKE_C_COMPILER="clang" \
       -DCMAKE_CXX_COMPILER="clang++-mp-3.9" \
       -DCMAKE_CXX_COMPILER="clang++" \
       -DWITH_LTO="OFF" \
       -DWITH_LTO="OFF" \
       -DLENSFUNDBDIR="./share/lensfun" \
       -DLENSFUNDBDIR="./share/lensfun" \
       ..
       ..
make -j4 install
make j$(sysctl -n hw.ncpu) install
make macosx_bundle
sudp make macosx_bundle
</pre>
</pre>
<hr>
<hr>
Line 370: Line 84:
cmake  .. -DCMAKE_BUILD_TYPE="release" \
cmake  .. -DCMAKE_BUILD_TYPE="release" \
           -DPROC_TARGET_NUMBER="2" \
           -DPROC_TARGET_NUMBER="2" \
           -DCACHE_NAME_SUFFIX="5.6-dev" \
           -DCACHE_NAME_SUFFIX="5.8-dev" \
           -DCMAKE_C_COMPILER="clang"\
           -DCMAKE_C_COMPILER="clang"\
           -DCMAKE_CXX_COMPILER="clang++" \
           -DCMAKE_CXX_COMPILER="clang++" \
           -DWITH_LTO="ON" \
           -DWITH_LTO="ON" \
           -DLENSFUNDBDIR="./share/lensfun" \
           -DLENSFUNDBDIR="/Applications/RawTherapee.app/Contents/Resources/share/lensfun" \
           -DCMAKE_BUILD_TYPE=Release \
           -DCMAKE_BUILD_TYPE=Release \
           -DOpenMP_C_FLAGS=-fopenmp=libomp \
           -DOpenMP_C_FLAGS=-fopenmp=libomp \
Line 381: Line 95:
           -DOpenMP_CXX_LIB_NAMES="libomp" \
           -DOpenMP_CXX_LIB_NAMES="libomp" \
           -DOpenMP_libomp_LIBRARY="/usr/local/lib/libomp.dylib" \
           -DOpenMP_libomp_LIBRARY="/usr/local/lib/libomp.dylib" \
           -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \
           -DOpenMP_CXX_FLAGS="-Wno-pass-failed-Wno-deprecated-register-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \
           -DOpenMP_CXX_LIB_NAMES="libomp" \
           -DOpenMP_CXX_LIB_NAMES="libomp" \
           -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \
           -DOpenMP_C_FLAGS="-Wno-pass-failed-Wno-deprecated-register-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \
           -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
           -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
           -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/lib" \
           -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/lib" \
Line 391: Line 105:


=== From-Scratchでコンパイルする方法 ===
=== From-Scratchでコンパイルする方法 ===
* オプションで、この [https://raw.githubusercontent.com/Benitoite/RTdeps/master/macbuildRT.sh] 完全なコマンドリストは、from-scratch方式によるRawTherapeeのコンパイルとmacOS10.14.6/Xcode 11.1の実行に使うことが出来ます。
* オプションで、この [https://raw.githubusercontent.com/Benitoite/RTdeps/master/macbuildRT.sh] 完全なコマンドリストは、from-scratch方式によるRawTherapeeのコンパイルとmacOS10.15.3/Xcode 11.1の実行に使うことが出来ます。
* [https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html JDK]をインストールする必要があります。
* [https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html JDK]をインストールする必要があります。
* [https://developer.apple.com/xcode  Xcode 11.1] をインストールする必要があります。
* [https://developer.apple.com/xcode  Xcode 11.1+] をインストールする必要があります。
<hr>
<hr>


Line 406: Line 120:


==== macOS 10.15 ====
==== macOS 10.15 ====
* macOS 10.15 ''Catalina'' 上で実行する場合は以下が必要です:
* macOS 10.15 ''Catalina'' 上でRawTherapee5.8を実行する場合は以下が必要です:
** Appをコピーし<code>/Applications</code> フォルダーから実行します。
** Appをコピーし<code>/Applications</code> フォルダーから実行します。
** <code>/bin/sh</code>をSystem Preferences > Security & Privacy > Privacy > Full Disk Accessに追加します。プログラムを起動した最初の時だけ、自動的にこれが行われるよう要求されます。
** <code>/bin/sh</code>をSystem Preferences > Security & Privacy > Privacy > Full Disk Accessに追加します。プログラムを起動した最初の時だけ、自動的にこれが行われるよう要求されます。

Latest revision as of 01:49, 27 February 2020

macOS

 本項はmacOSシステムでRawTherapeeをコンパイルする説明をしています。Linux Windows でコンパイルする説明は別項にあります。 ここにはコンパイルの際に何をどうするのかという詳細が書かれています。何故及びこれらコマンドの説明、ディペンデンシーのリスト、CMakeオプション、その他の情報に関しては、 Linux を参考にして下さい。

 不明な点があれば、IRCに参加して、他の参加者に聞いてみて下さい。

 ソースコードのクローン作成、ブランチの選択、CMakeの構成、実際のコンパイルの手順に関しては、 Linuxの同じセクションを参照して下さい。以下の情報はそれに追加されたものです。

ディペンデンシー

 ディペンデンシーのリストはLinuxのディペンデンシーを参照して下さい。

Homebrew

 以下のコマンドでRawTherapeeに関するディペンデンシーをインストールします:

brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun wget llvm cmake expat pkgconfig libomp

MacPorts

Warning 注意: 前提条件となるライブラリーを管理するためにHomebrewを使う場合は、MacPorts或いはsudo portに関わるコマンドは使用しません

 以下の手順はバージョン10.9及びそれ以降のOS Xでテスト済です。

  • 前提条件:
    • Xcode デベロッパーツール
    • コマンドラインツール
    • MacPorts
      • MacPortsとXcode デベロッパーツールの詳細設定はMacPorts websiteのウェブサイトで見ることが出来ます。
      • Appleが提供している専用システムコンパイリングは非常に古いものでOpenMPをサポートしていませんので使わないようにします。MacPortsの最新の安定したコンパイラを使います-その方がRawTherapeeの動作が速くなります。
  • MacPortsの構成:
以下のラインを/opt/local/etc/macports/variants.confに追加します。
+quartz -x11 -gnome
  • ディペンデンシー:
ディペンデンシーをインストールするには, ターミナルから実行します:
sudo port install git clang-9.0 ++-mp libomp gtk3 gtkmm3 gtk-osx-application-gtk3 adwaita-icon-theme libsigcxx2 lcms2 libiptcdata fftw-3-single lensfun
Xcode 9.2上でコンパイルする場合は、以下を追加する必要があります:
sudo port install ld64 +ld64_xcode
  • MacPortsのコンパイルシステムの構成
cmake コマンドに以下のフラッグを追加:
-DLOCAL_PREFIX=PATH:"/opt"

コンパイル

 ソースコードの“クローン”の作り方、“ブランチ”の選び方、“CMakeの構成の仕方に関しては、手動コンパイリングを参照して下さい。但し、その中の”RawTherapeeをコンパイルする“に記述されているコードは無視して、以下の説明にあるコードを使います。

 ビルドをアップロードする、或いは第三者とシェアする場合には、以下を使う必要があります、

-DPROC_TARGET_NUMBER="1"

 そして、設定によりプロセッサラベルを手動で行います

-DPROC_LABEL="generic processor"

 自分用にコンパイルする場合は以下を使います、

-DPROC_TARGET_NUMBER="2"

 プロセッサラベルの設定は重要ではないのでスキップします。

 貴方のビルドにコードサイニングを施す場合は、CMakeコマンドに詳細を追加します:

-DCODESIGNID="Developer ID Application: Firstname Lastname (XXXXXXXXXX)"

Appと生成されたdmg (Apple Disk Image)がコードサインされます。

 貴方のコードサインしたビルドに公証を受けるため、Cmakeコマンドに貴方のappの固有の承認情報を入れます: -DNOTARY="--username user@mail.com --password abcd-efgh-ijkl-mnop" Appとdmgが公証され(悪意のあるアプリかどうかの確認)、綴じられます(公証チケットが貼り付けられます)。

RawTherapeeをコンパイルする

 これでコンパイルの準備が出来ました:

cd ~/repo-rt
rm -rf build
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE="release" \
      -DPROC_TARGET_NUMBER="1" \
      -DPROC_LABEL="generic processor" \
      -DCACHE_NAME_SUFFIX="5-dev" \
      -DCMAKE_C_COMPILER="clang" \
      -DCMAKE_CXX_COMPILER="clang++" \
      -DWITH_LTO="OFF" \
      -DLENSFUNDBDIR="./share/lensfun" \
      ..
make j$(sysctl -n hw.ncpu) install
sudp make macosx_bundle

Homebrewのディペンデンシーを使ってLiwm clan 8でコンパイルするのであれば、以下のCMakeコマンドを使います:

export PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig && \
cmake  .. -DCMAKE_BUILD_TYPE="release" \
          -DPROC_TARGET_NUMBER="2" \
          -DCACHE_NAME_SUFFIX="5.8-dev" \
          -DCMAKE_C_COMPILER="clang"\
          -DCMAKE_CXX_COMPILER="clang++" \
          -DWITH_LTO="ON" \
          -DLENSFUNDBDIR="/Applications/RawTherapee.app/Contents/Resources/share/lensfun" \
          -DCMAKE_BUILD_TYPE=Release \
          -DOpenMP_C_FLAGS=-fopenmp=libomp \
          -DOpenMP_CXX_FLAGS=-fopenmp=libomp \
          -DOpenMP_C_LIB_NAMES="libomp" \
          -DOpenMP_CXX_LIB_NAMES="libomp" \
          -DOpenMP_libomp_LIBRARY="/usr/local/lib/libomp.dylib" \
          -DOpenMP_CXX_FLAGS="-Wno-pass-failed-Wno-deprecated-register-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \
          -DOpenMP_CXX_LIB_NAMES="libomp" \
          -DOpenMP_C_FLAGS="-Wno-pass-failed-Wno-deprecated-register-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \
          -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
          -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/lib" \
          -DCMAKE_AR="/usr/local/Cellar/llvm/8.0.0/bin/llvm-ar" \
          -DCMAKE_RANLIB="/usr/local/Cellar/llvm/8.0.0/bin/llvm-ranlib"

From-Scratchでコンパイルする方法

  • オプションで、この [1] 完全なコマンドリストは、from-scratch方式によるRawTherapeeのコンパイルとmacOS10.15.3/Xcode 11.1の実行に使うことが出来ます。
  • JDKをインストールする必要があります。
  • Xcode 11.1+ をインストールする必要があります。

RawTherapeeの実行とシェア

 ビルドディレクトリーの中にディスクイメージを見つけることが出来るでしょう;これはビルドがディストリビューション用であり、前述したvariants.confで貴方が特定したアーキテクチャー要件を満たすコンピューターであればどれでもビルドを実行することが出来ます。

 RawTherapeeのプロジェクトに貴方のビルドを提供するために、dmgとAboutThisBuild.txtファイルをzipで圧縮して下さい。そして、以下のテンプレートに従ってそのzipファイルに名前を付けます:

RawTherapee_OSX_<minimum supported macOS version>_64_<RawTherapee version>.zip

 例えば、貴方のビルドがRawTherapee 5.2-dev-g1a2b3c4dのmacOS 10.12用であれば、その名前は:

RawTherapee_OSX_10.12_64_5.2-dev-g1a2b3c4d.zipとなります。

 そのzipアーカイブをhttp://filebin.net/にアップロードし、open a new issue on our GitHub pageにそのリンクを貼り付けて下さい、そうすれば私たちがウェブサイトにアップロードできます。

macOS 10.15

  • macOS 10.15 Catalina 上でRawTherapee5.8を実行する場合は以下が必要です:
    • Appをコピーし/Applications フォルダーから実行します。
    • /bin/shをSystem Preferences > Security & Privacy > Privacy > Full Disk Accessに追加します。プログラムを起動した最初の時だけ、自動的にこれが行われるよう要求されます。