Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This will build static libraries and a test suite for the specified target. The build configuration options can be found in config/Make.rules.

Note

When building for iPhone in debug mode, make will by default build only

...

for armv7. You can specify different architecture(s) with CXXARCHFLAGS, for example:

 $ make COMPILE_FOR_IPHONE=yes CXXARCHFLAGS="-arch arm64

IceTouch supports armv7armv7s and arm64.

Info

OS X and iOS provide two C++ run time libraries, the older libstd++ and newer libc++. By default, Xcode 5 links with libc++ when targeting OS X 10.9 or iOS 7, and with libstd++ when targeting earlier versions.

The Ice Touch build system targets iOS 5.1.1 and OS X 10.7, and as a result will create by default libraries linked with with libstd++. If you want to create libraries linked with libc++, set CPP11 to yes, for example:

 $ make COMPILE_FOR_IPHONE=yes CXXARCHFLAGS="-arch arm64" CPP11=yes

The resulting libraries will carry a -libc++ suffix, such as libIceCpp-libc++.a or libIceGridCpp-libc++.a

These -libc++ libraries can be used by C++ applications that use C++11 features (--std=c++11), and also by C++ applications that do not (no --std=c++11).

 

If you built for iPhone or the iPhone simulator, you should now use Xcode to build the demos and test suite GUI located in the following subdirectories:

...

For the iPhone or iPhone simulator, the test suite runs within an iPhone application named "Test Suite". You can run it from the Xcode project located in the cpp/test/iPhone/container directory. Note that the C++ tests must be run from Xcode; they won't run if you launch the Test Suite application from the device directly.

Info

The container application has two targets:

  • container, for default builds linked with libstdc++
  • container c++11, for CPP11=yes builds linked with libc++

 

The architecture used to build the "Test Suite" application or the hello demo is specified with the "Architectures" build setting in the Xcode project. It must match the architecture used to build Ice Touch.

...