Bullet Physics を iPhone で使う

iつみきで使っているライブラリのプロジェクトファイルはCMakeにこんな感じオプションを指定して作っています。
BULLET_PHYSICS.xcodeprojを開いて、LinearMath, BulletCollision, BulletDynamics あたりをビルドします。
できたライブラリは src/BulletDynamics/Debug などから適当にコピーして使います。
bc. #
$ cmake -DBUILD_SHARED_LIBS=OFF -DFRAMEWORK=OFF \
-DCMAKE_INSTALL_PREFIX=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks \
-DCMAKE_INSTALL_NAME_DIR=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks \
-DCMAKE_C_COMPILER=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 \
-DCMAKE_CXX_COMPILER=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-g++-4.2 \
-DCMAKE_OSX_SYSROOT=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/ \
-DCMAKE_OSX_ARCHITECTURES=’armv6;armv7′ \
-DCMAKE_BUILD_TYPE=RelWithDebugInfo \
-DCMAKE_CROSSCOMPILING=ON \
-DBUILD_DEMOS=OFF \
-DBUILD_EXTRAS=OFF \
-DBUILD_UNIT_TESTS=OFF \
-DUSE_GLUT=OFF \
-G Xcode
iOS5 でもビルドできることは確認しました。
なんかいらなさげなオプションも一応つけたままにしています。ちなみにiPadだとarmv6のライブラリだと警告が出ます。
なるべくなら手動で操作するところを減らしたいので Framework にしたいところですが、 iOS では shared library が使えないため、今のところ static library を使っています。
iOSのバージョンが変わった場合が気になる人は Base SDK を Latest iOS に設定する良いかもしれません。
関連情報
– http://stackoverflow.com/questions/794137/how-to-set-up-cmake-to-build-a-library-for-the-iphone
– http://stackoverflow.com/questions/822404/how-to-set-up-cmake-to-build-an-app-for-the-iphone
– http://discussions.apple.com/thread.jspa?threadID=1549084
– http://www.cmake.org/pipermail/cmake/2009-October/032661.html

Mac OSX用

$ rm CMakeCache.txt
$ cmake -DBUILD_SHARED_LIBS=ON -DFRAMEWORK=ON \
-DCMAKE_INSTALL_PREFIX=/Library/Frameworks \
-DCMAKE_INSTALL_NAME_DIR=/Library/Frameworks \
-DCMAKE_OSX_ARCHITECTURES=’i386;x86_64′ \
-DCMAKE_BUILD_TYPE=RelWithDebugInfo \
-G “Unix Makefiles”
$ make
$ make install

chmod install_manifest.txt

  • BulletDynamics
  • BulletCollision
  • LinearMath
    をビルドする