From c6dea489a9eb47b212c47f2d64dc6080f31e599b Mon Sep 17 00:00:00 2001 From: Julian Rex Date: Mon, 12 Nov 2018 22:12:47 -0500 Subject: [ios] Test scripts for bundling map files with framework --- platform/ios/ios.xcodeproj/project.pbxproj | 45 ++++++++++++++++++++++++++++++ platform/ios/scripts/package.sh | 18 ++++++++++++ 2 files changed, 63 insertions(+) diff --git a/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/ios.xcodeproj/project.pbxproj index 2f7ac3b663..8d892bbbac 100644 --- a/platform/ios/ios.xcodeproj/project.pbxproj +++ b/platform/ios/ios.xcodeproj/project.pbxproj @@ -2603,6 +2603,7 @@ DA8847CE1CBAF91600AB86E3 /* Frameworks */, DA8847CF1CBAF91600AB86E3 /* Headers */, DA8847D01CBAF91600AB86E3 /* Resources */, + CA2E8248219A17B600ACE173 /* Copy Map Files */, ); buildRules = ( ); @@ -2636,6 +2637,7 @@ DAA4E4101CBB71D400178DFB /* Frameworks */, DAA4E4111CBB71D400178DFB /* CopyFiles */, DABFB85C1CBE99DE00D62B32 /* Headers */, + CA32BF04219A780C007351BB /* Copy Map Files */, ); buildRules = ( ); @@ -2847,6 +2849,45 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + CA2E8248219A17B600ACE173 /* Copy Map Files */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Copy Map Files"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "for ARCH in ${ARCHS}; do\n cp \"${TARGET_TEMP_DIR}/${PRODUCT_NAME}-LinkMap-${CURRENT_VARIANT}-${ARCH}.txt\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}-LinkMap-${CURRENT_VARIANT}-${ARCH}.txt\"\ndone\n"; + }; + CA32BF04219A780C007351BB /* Copy Map Files */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Copy Map Files"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "for ARCH in ${ARCHS}; do\n cp \"${TARGET_TEMP_DIR}/${PRODUCT_NAME}-LinkMap-${CURRENT_VARIANT}-${ARCH}.txt\" \"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}-LinkMap-${CURRENT_VARIANT}-${ARCH}.txt\"\ndone\n"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 16376B031FFD9DAF0000563E /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -3733,6 +3774,7 @@ ); INFOPLIST_FILE = framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_GENERATE_MAP_FILE = YES; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; OTHER_CFLAGS = "-fvisibility=hidden"; OTHER_CPLUSPLUSFLAGS = ( @@ -3775,6 +3817,7 @@ ); INFOPLIST_FILE = framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_GENERATE_MAP_FILE = YES; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; LLVM_LTO = YES; OTHER_CFLAGS = "-fvisibility=hidden"; @@ -3832,6 +3875,7 @@ "$(mbgl_core_INCLUDE_DIRECTORIES)", "$(mbgl_filesource_INCLUDE_DIRECTORIES)", ); + LD_GENERATE_MAP_FILE = YES; OTHER_CFLAGS = "-fvisibility=hidden"; OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", @@ -3864,6 +3908,7 @@ "$(mbgl_core_INCLUDE_DIRECTORIES)", "$(mbgl_filesource_INCLUDE_DIRECTORIES)", ); + LD_GENERATE_MAP_FILE = YES; LLVM_LTO = YES; OTHER_CFLAGS = "-fvisibility=hidden"; OTHER_CPLUSPLUSFLAGS = ( diff --git a/platform/ios/scripts/package.sh b/platform/ios/scripts/package.sh index 2506540910..ed0dc04a4d 100755 --- a/platform/ios/scripts/package.sh +++ b/platform/ios/scripts/package.sh @@ -13,6 +13,7 @@ LOG_PATH=build/xcodebuild-$(date +"%Y-%m-%d_%H%M%S").log BUILDTYPE=${BUILDTYPE:-Debug} BUILD_FOR_DEVICE=${BUILD_DEVICE:-true} SYMBOLS=${SYMBOLS:-YES} +VARIANT=normal FORMAT=${FORMAT:-dynamic} BUILD_DYNAMIC=true @@ -98,6 +99,17 @@ fi LIBS=(Mapbox.a) +function copy_map_files { + MAP_FILE_ARCHS='armv7 arm64' + for ARCH in ${MAP_FILE_ARCHS}; do + MAP_FILE="${PRODUCTS}/${BUILDTYPE}-iphoneos/${NAME}-LinkMap-${VARIANT}-${ARCH}.txt" + if [[ -e ${MAP_FILE} ]]; then + step "Copying map file for ${ARCH}" + cp ${MAP_FILE} ${OUTPUT}/dynamic/ + fi + done +} + # https://medium.com/@syshen/create-an-ios-universal-framework-148eb130a46c if [[ ${BUILD_FOR_DEVICE} == true ]]; then if [[ ${BUILD_STATIC} == true ]]; then @@ -110,6 +122,8 @@ if [[ ${BUILD_FOR_DEVICE} == true ]]; then `cmake -LA -N ${DERIVED_DATA} | grep MASON_PACKAGE_icu_LIBRARIES | cut -d= -f2` cp -rv ${PRODUCTS}/${BUILDTYPE}-iphoneos/${NAME}.bundle ${OUTPUT}/static + + copy_map_files fi if [[ ${BUILD_DYNAMIC} == true ]]; then @@ -132,6 +146,8 @@ if [[ ${BUILD_FOR_DEVICE} == true ]]; then fi fi + copy_map_files + step "Merging simulator dynamic library into device dynamic library…" lipo \ ${PRODUCTS}/${BUILDTYPE}-iphoneos/${NAME}.framework/${NAME} \ @@ -164,6 +180,8 @@ else fi fi + copy_map_files + cp -rv platform/ios/app/Settings.bundle ${OUTPUT} fi -- cgit v1.2.1