Hello,

On 10/11/15 16:22, Bartosz Kosiorek wrote:
> My name is Bartosz Kosiorek and I'm TomTom developer and Open Source 
> enthusiast.

I'm Gregor a part time contributor to CMake. During the last months I
mostly worked on Xcode support.

> Last time in our products, we notice that cmake is not creating correct iOS 
> Frameworks Bundle.
> For iOS Frameworks, not versioned Bundle is needed, eg.:
> 
>   iOSFramework.framework/
>       iOSFramework
>       Info.plist
>       Headers
> 
> 
> 
> Unfortunately with current version of CMake (3.4.0), it produces OS X 
> Framework Bundle, with versions inside, eg.:
> 
>   MyFramework.framework/
>     MyFramework -> Versions/Current/MyFramework
>     Resources -> Versions/Current/Resources
>     Versions/
>         A/
>             MyFramework
>             Headers
>             Resources/
>                  Info.plist
>         Current -> A
> 
> 
> 
> You could test it with my example project in attachment 
> (cmake_shared_ios_framework.zip).

Unfortunately I cannot reproduce the problem. Could you please write
down the exact steps you took to compile the example in the zip file?
Please also Xcode and cmake version.

That's what I see (cmake master, Xcode generator and Xcode 7.1):

$ find _build/shared_empty/mul/Debug-iphonesimulator/mul.framework
_build/shared_empty/mul/Debug-iphonesimulator/mul.framework
_build/shared_empty/mul/Debug-iphonesimulator/mul.framework/Headers
_build/shared_empty/mul/Debug-iphonesimulator/mul.framework/Headers/mul.h
_build/shared_empty/mul/Debug-iphonesimulator/mul.framework/Info.plist
_build/shared_empty/mul/Debug-iphonesimulator/mul.framework/Modules
_build/shared_empty/mul/Debug-iphonesimulator/mul.framework/Modules/module.modulemap
_build/shared_empty/mul/Debug-iphonesimulator/mul.framework/mul

> The iOS Application Bundle was already fixed in CMake 3.4.0. Unfortunately 
> still iOS Frameworks are not produced correctly (Xcode refuses to sign such 
> Frameworks if you would like to push it into iOS device).
> 
> In attachment I added solution to produce correct iOS Framework (for OSX 
> Frameworks will be produced normally).
> 
> 
> 
> Could you please give some comment about that?
> 
> Do you think architecture of that solution is correct?

I'd go for an early return from cmOSXBundleGenerator::CreateFramework if
we're building for iOS. The code of CreateIOSFramework is just too similar.

> I would like to do next:
> 
> - Refactor code, to have more explicitly names (OSX, iOS or Apple)
> 
> - Update documentation
> 
> - add some unit tests for creating iOS Frameworks

I would like to see a test for that topic. If you'd like to try please
have a look at:
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=744e6c497c01cb3a3129ca66d1cabfa83e17dbd4
https://cmake.org/gitweb?p=cmake.git;a=tree;f=Tests/RunCMake/XcodeProject;hb=HEAD
https://cmake.org/gitweb?p=cmake.git;a=blob;f=Tests/RunCMake/README.rst;hb=HEAD

You need to build cmake via the Xcode generator and run the tests.
During development you can filter just for the XcodeProject tests:

bin/Debug/ctest -R RunCMake.XcodeProject --verbose

Thanks,
Gregor
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to