Cocotronは、AppleのCocoaランタイムに似たObjective-Cのランタイム実装です。 他の一般的なオープンランタイムであるGNUstepとは、目的と実装の両方でまったく異なります。
Cocotronは、OSXプラットフォームからWin32へのコードの移植に最適です。 もちろん、APIの実装は理想とはほど遠いですが、実践が示すように、開発者は常に問題を迅速に解決します。
当初、CocotronはXcodeとmingw-toolchainに基づくクロスアセンブリにのみ使用されていました。 クロスビルドは、Windows、Linux、およびSolarisでの展開に使用できます。
もちろん、このアプローチは、開発チェーンの中で最も困難で高価な段階であるOSX(最適には元のハードウェア上)を残しました。 この依存関係のため、プラットフォームとしてのCocotronの能力を完全に開示することはできませんでした。
Cocotronは、異なるランタイムObjective-Cを使用する元のGCCでは動作しません。 このため、GCCはAppleのパッチを使用してコンパイルする必要があります。これは、とりわけ、バニラGCCの言語から言語を少し拡張します。
GCCのインストールプロセスは非常に伝統的なもので、最初にソースツリーをダウンロードする必要があります:
svn checkout http://cocotron-tools-gpl3.googlecode.com/svn/trunk/gcc cocotron-gcc
そしてそれをコンパイルします:
mkdir gcc-build
cd gcc-build
../cocotron-gcc/configure --prefix = / opt / objc --with-gnu-as --with-gnu-ld --without-newlib --disable-multilib \
--disable-libssp --disable-nls --disable-libobjc --enable-libffi --enable-objc-gc \
--enable-languages = c、objc、c ++、obj-c ++ --enable-checking = release
make -j2
sudo make install
ここでは、GCCとCocotronに/ opt / objcプレフィックスを使用します。
オプションとして、新しく到着したhabrovchanin
pfactumによって親切に提供された、組み立てられた
debパッケージを使用できます。
これで、Cocotronの特定のアセンブリに進むことができます。 現在、ネイティブビルドはLinux、OpenBSD(およびおそらくFreeBSD)、およびDarwin(つまりOSX)でサポートされています。 ビルドするには、githubで公式ツリーのフォークを取得する必要があります。
git clone git://github.com/farcaller/cocotron.git
cd cocotron
git checkout origin / native-build -b native-build
(ちなみに、masterブランチは自動的に公式のsvnと同期されるため、誰かがソースを "選択"し、gitを好む場合は歓迎します)。
ビルドシステムはCMakeに基づいており、少なくとも2.6:
mkdirビルド
cdビルド
cmake -DCMAKE_C_COMPILER = / opt / objc / bin / gcc \
-DCMAKE_CXX_COMPILER = / opt / objc / bin / g ++ \
-DCMAKE_INSTALL_PREFIX = / opt / objc ..
作る
sudo make install
現在のところ、Foundationのみが収集され、AppKitビルドスクリプトの作業が進行中です。
組み立てられたライブラリはテストできます:
cat> test.m << EOF
#import <Foundation / Foundation.h>
int main(int argc、char * argv [])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog(@ "Hello、Objective-C World!");
[プールの排水口];
0を返します。
}
Eof
/ opt / objc / bin / gcc test.m -o test -I / opt / objc / include -L / opt / objc / lib \
-lFoundation -lpthread -ldl
Cocotronの開発が新しい開発者を引き付け、非常に興味深いプログラミング言語であるObjective-Cの人気が高まることを期待しています。