きりかノート 3冊め

おあそびプログラミング

RubyCocoa 今日のコミット

RubyCocoaのビルドスクリプトを調整。主として

  • configオプションの--build-universalを廃止して、--target-archsというオプションを導入。個別にアーキテクチャを指定できるようにした(r2249)
# 従来はユニバーサルバイナリにするかどうかのみを指定
% ruby install.rb config --build-universal=yes
# ターゲットのアーキテクチャを指定する形式に変更
% ruby install.rb config --target-archs="i386 ppc x86_64"
# sdkrootは明示的に指定する必要あり
% ruby install.rb config --target-archs="i386 ppc" \
    --sdkroot=/Developer/SDKs/MacOSX10.4u.sdk \
    --macosx-deployment-target=10.4

10.6になって、複数アーキテクチャで構成されるユニバーサルバイナリの組み合わせが多様化するため、自動的にOSのバージョンからひとつに組み合わせが指定されるよりも、明示的にアーキテクチャをひとつひとつ指定するほうがよいと考えたため。

install.rbを実行したrubyから初期値を提示するので、原則としてこのオプション自体はあまり使うことはないはず。

関連する箇所を調整。

  • packageタスクの構成で--target-archsを使うよう変更(r2250)
  • packageタスクでつくられる.dmg/.pkgファイルには"universal"の文字をつけない(10.5以降はユニバーサルバイナリなのがあたりまえ)(r2250)
  • RubyCocoa.frameworkのビルド時に、CFLAGSで複数アーキテクチャコンパイルをするのでなく、$ARCHSにより個別アーキテクチャコンパイル後に合体させるという、Xcode標準の手続きを利用するように変更(r2251)
  • Rakeでビルドするときに--build-universalを指定しないように(r2252)

さて、あとはコード本体だ。