[CMake] CMake, iPhone & XCode

bmueller63 at me.com bmueller63 at me.com
Thu Dec 3 09:50:08 EST 2009


Hello,

I am trying to build a project for iPhone using XCode.
The basic stuff works if I use the makefile generator I get my test.app.

Switching wo XCode with -GXcode creates the problem:

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CMake Error at /Applications/CMake 2.8-0.app/Contents/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:50 (MESSAGE):
 The C compiler
 "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2" is not
 able to compile a simple test program.

 It fails with the following output:

  Change Dir: /Users/sk/Programming/project-template/build/CMakeFiles/CMakeTmp

 Run Build Command:/Applications/CMake\ 2.8-0.app/Contents/bin/cmakexbuild
 -project CMAKE_TRY_COMPILE.xcodeproj build -target cmTryCompileExec
 -configuration Debug

 === BUILD NATIVE TARGET cmTryCompileExec OF PROJECT CMAKE_TRY_COMPILE WITH
 CONFIGURATION Debug ===

 Check dependencies

 target specifies product type 'com.apple.product-type.tool', but there's no
 such product type for the 'iphoneos' platform

 target specifies product type 'com.apple.product-type.tool', but there's no
 such product type for the 'iphoneos' platform

 ** BUILD FAILED **
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

The problem is that CMakeTestCCompiler.cmake invokes try_compile. The XCode-Project is build but 
not with add_executable(... MACOSX_BUNDLE ...) which creates a tool instead of an app bundle.
But iPhone only allows app bundles....

I guess the only way to get around this is to create my own version of CMakeTestCCompiler.cmake which
uses try_compile with my own subproject in which the MACOSX_BUNDLE is set.

Or is there a simpler solution?

Can I set the property MACOSX_BUNDLE for all executables to be built?

Greetins
Bernhard M.






More information about the CMake mailing list