Hello, thank you for working on this. This is really hairy stuff.
On 24/09/15 11:10, Ruslan Baratov via cmake-developers wrote: > Patches help to install universal iOS (device + simulator) libraries by > triggering some extra instructions (build + fuse) after "regular" > library installation finished. This behavior controlled by CMake > variable CMAKE_IOS_INSTALL_UNIVERSAL_LIBS. some general remarks: * iOS is not the only platform where the simulator / device situation is problematic. Others are now watchOS and the upcoming tvOS (see xcodebuild -showsdks). So it would make sense to replace the ios naming in the method signatures with something more general. * Does the patches handle Bundles and Frameworks properly? * This functionality should be limited to XCODE Generator 0001- * Could you make the CMAKE_IOS_INSTALL_UNIVERSAL_LIBS a two staged property like CMAKE_INSTALL_RPATH / INSTALL_RPATH. That way one would be able to enable this behavior for only some targets 0002-CMake-module-for-universal-iOS-library-install * Could you avoid to hard-code architecture names like i386 or armv7 in the module? * In Xcode 7 (and maybe earlier) I see the following environment variables when I install for Device: > export CORRESPONDING_SIMULATOR_PLATFORM_NAME=iphonesimulator > export CORRESPONDING_SIMULATOR_SDK_NAME=iphonesimulator9.0 > export SUPPORTED_PLATFORMS="iphonesimulator iphoneos" > export SDK_NAME=iphoneos9.0 for Simulator: > export CORRESPONDING_DEVICE_PLATFORM_NAME=iphoneos > export CORRESPONDING_DEVICE_SDK_NAME=iphoneos9.0 > export SDK_NAME=iphonesimulator9.0 Could you use those variables to avoid hardcoding iphoneos/simulator in the module? > + install_universal_ios_remove_arch("${dev_libpath}" "i386") > + install_universal_ios_remove_arch("${dev_libpath}" "x86_64") Doing it the other way round (keeping only what's needed) looks saner to me. > + install_universal_ios_remove_arch("${dev_libpath}" ...) > + > + install_universal_ios_remove_arch("${sim_libpath}" ...) > + > + set(cmd lipo -create ${src} ${dst} -output ${dst}) Would it be possible to just add selected architectures from src to dst (via lipo -replace)? That way you would save some disk i/o and would make the pruning step for src superfluous. 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