----- On Dec 11, 2015, at 11:44 AM, Bartosz Kosiorek <gan...@poczta.onet.pl> 
wrote: 

> Hi

> Because there is difference between OS X and iOS Bundles directory structure
> (see: Apple specification
> https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html
> ),
> in trunk (In CMake 3.5) RESOURCE property create corresponding directory
> structure.
> I have already fix that with:
> https://public.kitware.com/Bug/view.php?id=15848

Ok. I hadn't been following all your work. 
Also, I didn't see a toggle in the CMake code you sent to choose an iOS bundle 
instead of OS X bundles. How is that toggled? 

> So RESOURCE gives you a level of abstraction:
> For OSX:
> it will create "Resource" directory

> For iOS it will create "flat" directory structure.

> In your example "Resource" directory will be created in both cases (for OSX 
> and
> iOS).
> Which is wrong:
> For OSX: it should create "Resource" directory
> For iOS it will create "flat" directory structure.

> I could provide patch to fix that issue, if you agree with that.
> What do you think about that?
> Do you think the same should be applied to "Headers"?

I think the abstraction seems reasonable, as well as what you are proposing. 
However, I'm not an Apple guru. 
I wonder if there are other Apple experts that can weigh in this if better 
feedback is needed. 

Clint 

> Best Regards
> Bartosz

> 2015-12-11 19:06 GMT+01:00 Clinton Stimpson < clin...@elemtech.com > :

>> On Friday, December 11, 2015 05:01:41 PM Bartosz Kosiorek wrote:
>> > Thanks Clint

>> > Unfortunately MACOSX_PACKAGE_LOCATION is not working correctly with 
>> > RESOURCE
>> > property. For every resource which is marked as RESOURCE, will be placed in
>> > root "Resources" directory.

>> > The CMake code below create following directory structure for OS X:

>> > ── mul.framework
>> > ├── Headers -> Versions/Current/Headers
>> > ├── Resources -> Versions/Current/Resources
>> > ├── Versions
>> > │ ├── A
>> > │ │ ├── Headers
>> > │ │ │ └── mul.h
>> > │ │ ├── Modules
>> > │ │ │ └── module.modulemap
>> > │ │ ├── Resources
>> > │ │ │ ├── Info.plist
>> > │ │ │ ├── mulres.txt
>> > │ │ │ ├── pl.txt
>> > │ │ │ └── resourcefile.txt
>> > │ │ ├── lang
>> > │ │ │ └── en.txt
>> > │ │ └── mul
>> > │ └── Current -> A
>> > └── mul -> Versions/Current/mul


>> > As you can see eveything which is marked as "RESOURCE" will be placed in
>> > Versions/A/ directory My expectation will be that lang/pl.txt and
>> > lang/en.txt should be in Resources/lang/ directory. Here is complete
>> > directory structure:

>> > ── mul.framework
>> > ├── Headers -> Versions/Current/Headers
>> > ├── Resources -> Versions/Current/Resources
>> > ├── Versions
>> > │ ├── A
>> > │ │ ├── Headers
>> > │ │ │ └── mul.h
>> > │ │ ├── Modules
>> > │ │ │ └── module.modulemap
>> > │ │ ├── Resources
>> > │ │ │ ├── Info.plist
>> > │ │ │ ├── mulres.txt
>> > │ │ │ ├── lang
>> > │ │ │ │ └── pl.txt
>> > │ │ │ │ └── en.txt
>> > │ │ │ └── resourcefile.txt
>> > │ │ ├── lang
>> > │ │ │ └── en.txt
>> > │ │ └── mul
>> > │ └── Current -> A
>> > └── mul -> Versions/Current/mul


>> > What do you think about that?

>> > Here is the source code:

>> > set_property(SOURCE module.modulemap
>> > PROPERTY MACOSX_PACKAGE_LOCATION "Modules")

>> > set_property(
>> > SOURCE lang/en.txt lang/pl.txt
>> > PROPERTY MACOSX_PACKAGE_LOCATION "lang")

>> > set(RESLIST
>> > mulres.txt
>> > lang/pl.txt
>> > resourcefile.txt
>> > )

>> > add_library(mul SHARED
>> > mul.c
>> > mul.h
>> > module.modulemap
>> > lang/pl.txt
>> > lang/en.txt
>> > resourcefile.txt
>> > mulres.txt)

>> > # Create an iOS Framework bundle
>> > set_target_properties(mul PROPERTIES
>> > FRAMEWORK TRUE
>> > MACOSX_FRAMEWORK_IDENTIFIER org.cmake.mul
>> > MACOSX_FRAMEWORK_SHORT_VERSION_STRING 42
>> > MACOSX_FRAMEWORK_BUNDLE_VERSION 3.2.10
>> > XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
>> > PUBLIC_HEADER mul.h
>> > RESOURCE "${RESLIST}"
>> > )

>> Here is a CMakeLists.txt that will give you the desired layout.
>> I also see that MACOSX_PACKAGE_LOCATION doesn't work with RESOURCE.

>> set_property(SOURCE module.modulemap
>> PROPERTY MACOSX_PACKAGE_LOCATION "Modules")

>> set_property(
>> SOURCE lang/pl.txt lang/en.txt
>> PROPERTY MACOSX_PACKAGE_LOCATION "Resources/lang")

>> set(RESLIST
>> mulres.txt
>> resourcefile.txt
>> )

>> add_library(mul SHARED
>> mul.c
>> mul.h
>> module.modulemap
>> lang/pl.txt
>> lang/en.txt
>> resourcefile.txt
>> mulres.txt)

>> # Create an iOS Framework bundle
>> set_target_properties(mul PROPERTIES
>> FRAMEWORK TRUE
>> MACOSX_FRAMEWORK_IDENTIFIER org.cmake.mul
>> MACOSX_FRAMEWORK_SHORT_VERSION_STRING 42
>> MACOSX_FRAMEWORK_BUNDLE_VERSION 3.2.10
>> XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
>> PUBLIC_HEADER mul.h
>> RESOURCE "${RESLIST}"
>> )

>> Now I'm wondering what does the RESOURCE target property do that
>> MACOSX_PACKAGE_LOCATION doesn't already support?

>> Clint
>> --

>> 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
-- 

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