summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Rex <julian.rex@mapbox.com>2018-11-12 22:12:47 -0500
committerJulian Rex <julian.rex@mapbox.com>2018-11-12 22:12:47 -0500
commitc6dea489a9eb47b212c47f2d64dc6080f31e599b (patch)
tree7a2e61bcb940664485db1cd0593f4e2c1770b5cb
parenta3945bf84004ece5116861266a73a60d67beebbe (diff)
downloadqtlocation-mapboxgl-upstream/jrex/generate-linker-map-file.tar.gz
[ios] Test scripts for bundling map files with frameworkupstream/jrex/generate-linker-map-file
-rw-r--r--platform/ios/ios.xcodeproj/project.pbxproj45
-rwxr-xr-xplatform/ios/scripts/package.sh18
2 files changed, 63 insertions, 0 deletions
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