[cmake-developers] [CMake 0015329]: Cannot set CMAKE_XCODE_ATTRIBUTE_ID_PRODUCT_TYPE manually

Mantis Bug Tracker mantis at public.kitware.com
Sun Dec 28 06:35:44 EST 2014


The following issue has been SUBMITTED. 
====================================================================== 
http://www.cmake.org/Bug/view.php?id=15329 
====================================================================== 
Reported By:                patep
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   15329
Category:                   CMake
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2014-12-28 06:35 EST
Last Modified:              2014-12-28 06:35 EST
====================================================================== 
Summary:                    Cannot set CMAKE_XCODE_ATTRIBUTE_ID_PRODUCT_TYPE
manually
Description: 
This is related to:
http://www.cmake.org/Bug/view.php?id=15214

When crosscompiling for iOS I see an error:
Check dependencies
target specifies product type 'com.apple.product-type.tool', but there's no such
product type for the 'iphoneos' platform

This is during configure stage.

In that ticket above you mentioned two commits:
http://www.cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c48f6e12
http://www.cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b91020f6

The fix to id_product_type is related for some "...bundle.unit-test".

+    set(id_product_type "com.apple.product-type.tool")
     if(CMAKE_OSX_SYSROOT)
       set(id_sdkroot "SDKROOT = \"${CMAKE_OSX_SYSROOT}\";")
+      if(CMAKE_OSX_SYSROOT MATCHES "(^|/)[Ii][Pp][Hh][Oo][Nn][Ee]")
+        set(id_product_type "com.apple.product-type.bundle.unit-test")
+      endif()

At the second commit related to code signing we see:

+    if(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY)
+      set(id_code_sign_identity "CODE_SIGN_IDENTITY =
\"${CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY}\";")
+    else()
+      set(id_code_sign_identity "")
+    endif()

Can you please add such switch to id_product_type?
E.g.:
if(CMAKE_XCODE_ATTRIBUTE_ID_PRODUCT_TYPE)
  set(id_product_type "ID_PRODUCT_TYPE =
\"${CMAKE_XCODE_ATTRIBUTE_ID_PRODUCT_TYPE}\";")
else()
  ........
endif()

I'm asking this because I found the next page with different possible product
types:
https://github.com/freewizard/Xcode-Template-iOS-dylib/blob/master/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications/iPhone%20Simulator%20ProductTypes.xcspec
And when I set PRODUCT_TYPE = com.apple.product-type.application in Xcode
manually, the build works.
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2014-12-28 06:35 patep          New Issue                                    
======================================================================



More information about the cmake-developers mailing list