[cmake-developers] [CMake 0012506]: install( TARGET ) does not work for iOS targets

Mantis Bug Tracker mantis at public.kitware.com
Sun Oct 9 18:01:36 EDT 2011


The following issue has been SUBMITTED. 
====================================================================== 
http://www.cmake.org/Bug/view.php?id=12506 
====================================================================== 
Reported By:                Geoff Beier
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   12506
Category:                   CMake
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2011-10-09 18:01 EDT
Last Modified:              2011-10-09 18:01 EDT
====================================================================== 
Summary:                    install( TARGET ) does not work for iOS targets
Description: 
As of CMake 2.8.6, build products are generated into Release-iphoneos,
Debug-iphoneos, etc. When using install(TARGET ...) cmake_install.cmake contains
blocks that test for

"${CMAKE_INSTALL_CONFIG_NAME}" MATCHES "^([Rr][Ee][Ll][Ee][Aa][Ss][Ee])$"

and the like, then attempt to find the files in
cmake-build/Release$(EFFECTIVE_PLATFORM_NAME)...

There is no way (with 2.8.6) to have the test for CMAKE_INSTALL_CONFIG_NAME
match and have the source path be correct. Whether or not
CMAKE_XCODE_EFFECTIVE_PLATFORMS is set, build products land in directories
containing the platform name. If CMAKE_XCODE_EFFECTIVE_PLATFORMS is set, the
CMAKE_INSTALL_CONFIG_NAME test never matches, and the file copy is never
attempted.

This is mostly a problem when building iOS libraries, but can be easily
reproduced using the iOSNavApp from the Tests shipped with cmake 2.8.6.

Steps to Reproduce: 
1. Append the line
INSTALL( TARGETS NavApp3 BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT
Runtime )
to Tests/iOSNavApp/CMakeLists.txt

2. Generate xcode build files using
cmake -G Xcode -DCMAKE_INSTALL_PREFIX=/Users/Shared/ios-staging ..

3. xcodebuild -target install -configuration Release

Expected Result: NavApp3.app copied to ${CMAKE_INSTALL_PREFIX}
Actual Result: No copy occurs

Additional Information: 
The main reason we want to get the install feature working is so that we can
install development libraries. This was working in 2.8.4, but I think that was
just luck because we weren't setting CMAKE_XCODE_EFFECTIVE_PLATFORMS and cmake
wasn't automatically putting the build products into a "-iphoneos" location.

I've attached the modified CMakeLists.txt for iOSNavApp that demonstrates this
issue.
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-10-09 18:01 Geoff Beier    New Issue                                    
2011-10-09 18:01 Geoff Beier    File Added: CMakeLists.txt                    
======================================================================




More information about the cmake-developers mailing list