How to build ASSIMP Library for iOS (Device and Simulator) with boost-library?

Viewed 7172

I want to use the ASSIMP library http://assimp.sourceforge.net in an iOS project. Unfortunately, I'm not very experienced with makefiles and that stuff, so I need some help.

I've downloaded the sources and first I tried to build with make (in the code-subfolder) In the makefile I've added INCLUDEFLAGS = -I/Lib because my boost header-files are in /Lib/boost Executing make static succeeds with some warnings. A static library (.a) is generated.

Then I tried to add the .a-file to my xcode-project and specified the assimp-header folder as additional include directory (Other Search Paths). Linking failed with the message that the library has not the right architecture (i386 required for the simulator)

file libassimp.a outputs: "libassimp.a: current ar archive random library"

How can I build the library for the i386 architcture and for arm6 or arm7, whatever I need on an iOS device?

Is it ok to use the boost-headers only or is it better/necessary to build boost as a library? Currently I'm using boost headers only, which should be fine since boost is a header only library?!

There is also a cmake - makefile (CMakeLists.txt). cmake is the recommended way of building the library but I don't have any experience with cmake.

Or another thought: Is it possible to build a library via xcode? The final result should be a library for i386, arm6 and arm7 architecture.

What shall I do? And how?


Edit:

I've just discovered that there are the following preprocessor checks in the file aiDefines.h:

#if defined(_MSC_VER)
    // See http://msdn.microsoft.com/en-us/library/b0084kay.
#   if defined(_M_IX86)
#       define ASSIMP_BUILD_X86_32BIT_ARCHITECTURE
#   elif defined(_M_X64)
#       define ASSIMP_BUILD_X86_64BIT_ARCHITECTURE
#   elif defined(_M_IA64)
#       define ASSIMP_BUILD_IA_64BIT_ARCHITECTURE
#   else
#       error unknown architecture
#   endif
#elif defined(__GNUC__)
    // See http://gcc.gnu.org/onlinedocs/cpp/Predefined-Macros.html.
#   if defined(__x86_32__) || defined(__i386__)
#       define ASSIMP_BUILD_X86_32BIT_ARCHITECTURE
#   elif defined(__x86_64__)
#       define ASSIMP_BUILD_X86_64BIT_ARCHITECTURE
#   elif defined(__ppc__)
#       define ASSIMP_BUILD_PPC_32BIT_ARCHITECTURE
#   else
#       error unknown architecture
#   endif
#else
#   error unknown compiler
#endif

Does this mean, it is not possible to compile the ASSIMP library for ARM architecture?

4 Answers
Related