実機でしか動きませんのであしからず。ツッコミ大歓迎。
環境
- Mac OS X 10.6.8 Snow Leopard
- Xcode4.2
- ARC不使用
- iPad2
- iOS6.1
- mruby (2013/02/17にソース取得)
方針
armv7向けにコンパイルしたmrubyの静的ライブラリを作り、それを直接Xcodeプロジェクトにコピーして使う。build_config.rbを編集
mruby-master/build_config.rbのクロスコンパイル部分を以下のように編集します。# Define cross build settings MRuby::CrossBuild.new('32bit') do |conf| isysroot = "/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/include" conf.cc.command = "clang" conf.cc.flags << "-arch armv7" conf.cc.include_paths << isysroot conf.cc.include_paths << "#{root}/include" end
mrbconf.hを編集
mruby-master/include/mrbconf.hを編集します。#define DISABLE_STDIO /* use of stdio */ #define ENABLE_DEBUG /* hooks for debugger */STDIOを無効にします。
有効のままでも動きましたが、putsを使ったら落ちました。
DEBUGを有効にします。
これは、スクリプトの実行を中断するのに使っています。
make
コマンドライン上でmruby-masterに移動し、makeします。途中でRakeが落ちますが、
mruby-master/build/32bit/lib/libmruby.a
が生成されているのでOKとします。(そのうちrake勉強せな)
プロジェクトを新規作成、必要ファイルをコピー
Xcodeで新しいプロジェクト(project_name)を作成し、mrubyのファイルをFinder上でコピーします。mruby-master/include/をフォルダごとコピーして、そこにlibmruby.aを追加する感じです。
includeのままだと分かりにくいので、mrubyにリネームしました。
project_name/ |--project_name.xcodeproj |--project_name/ |--mruby/ | |--mrbconf.h | |--mruby.h | |--libmruby.a | |--mruby/ | |--array.h | |--class.h | . | . | |--value.h | |--variable.h |--viewController.h |--viewController.m | . | .Finder上でコピーしたあと、Xcode上の左ペインにドラッグ・アンド・ドロップして、プロジェクトに追加します。
パスの設定
Build SettingsのHeader Search PathとLibrary Search Pathに"$(SRCROOT)/project_name/mruby"を追加します。
Recursiveはなしで。
以上で、iOSアプリでmrubyを使う準備は完了です。
0 件のコメント:
コメントを投稿