I\'m trying to use CMake to generate an Xcode configuration for the iPhone by manually setting certain attributes. (Is this even the right way to go about this?) My CMake file l
This info may also be useful:
This project provides a simple iOS toolchain file that may be used with CMake to build libraries and setup applications. A couple of sample projects are included.
http://code.google.com/p/ios-cmake/
As far as I can tell, there are two ways. The one most likely, you are nearly there, is to use CMAKE_OSX_SYSROOT
to set the XCode SDKROOT. There is also the variable CMAKE_OSX_ARCHITECTURES
, which maps to ARCHS in XCode.
The alternative is to use CMake's cross compiling support. I've not used it for the iphone, but I have done so for other ARM processors. You need to set up a toolchain file that would look something like this:
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR arm-elf)
set(CMAKE_C_COMPILER /path/to/complier/bin/arm-elf-gcc)
set(CMAKE_FIND_ROOT_PATH /path/to/compiler)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
And then when you run cmake, set the CMAKE_TOOLCHAIN_FILE
variable to the name of your toolchain file. Or if you only compile to one architecture, you can hard-code the value in the CMakeLists.txt file. But I imagine you would need to cross compile for the iphone simulator and for the actual iphone itself, right? So you would run one of these, probably having a couple of build variants:
cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/my/iphone-sim.cmake .
cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/my/iphone-real.cmake .
Where the sim/real files define the environment for the simulator or real iphone compiler tools.
Some other links that may help are this bug report and this mailing list conversation.