|
30 | 30 | DRY_RUN= |
31 | 31 | fi |
32 | 32 |
|
| 33 | +if [ "$1" = "-d" -o "$1" = "--dsym" ] ; then |
| 34 | + DOWNLOAD_DSYM=1 |
| 35 | + shift |
| 36 | +else |
| 37 | + DOWNLOAD_DSYM= |
| 38 | +fi |
| 39 | + |
33 | 40 | URL_BASE="https://buildbot.libretro.com/nightly/apple" |
34 | 41 |
|
35 | 42 | if [ "$PLATFORM_FAMILY_NAME" = "tvOS" -o "$1" = "tvos" -o "$1" = "--tvos" ] ; then |
@@ -96,10 +103,44 @@ function update_dylib() { |
96 | 103 | if [ "${#URL_PLATFORMS[@]}" != 1 ] ; then |
97 | 104 | lipo -create -output "$dylib" "$dylib".* |
98 | 105 | fi |
| 106 | + |
| 107 | + # Download dSYM if requested |
| 108 | + if [ -n "$DOWNLOAD_DSYM" ] ; then |
| 109 | + for urlp in "${URL_PLATFORMS[@]}" ; do |
| 110 | + debug curl $CURL_DEBUG -o "$dylib".dSYM.zip "$URL_BASE"/"$urlp"/latest/dSYM/"$dylib".dSYM.zip |
| 111 | + curl $CURL_DEBUG -o "$dylib".dSYM.zip "$URL_BASE"/"$urlp"/latest/dSYM/"$dylib".dSYM.zip |
| 112 | + if [ -f "$dylib".dSYM.zip ] ; then |
| 113 | + debug unzip $UNZIP_DEBUG "$dylib".dSYM.zip |
| 114 | + unzip $UNZIP_DEBUG "$dylib".dSYM.zip |
| 115 | + rm -f "$dylib".dSYM.zip |
| 116 | + |
| 117 | + # macos app store needs universal binaries - merge dSYMs |
| 118 | + if [ "${#URL_PLATFORMS[@]}" != 1 ] ; then |
| 119 | + mv "$dylib".dSYM "$dylib".dSYM.$(basename "$urlp") |
| 120 | + fi |
| 121 | + fi |
| 122 | + done |
| 123 | + if [ "${#URL_PLATFORMS[@]}" != 1 ] ; then |
| 124 | + # Merge dSYMs for universal binary if we have multiple architectures |
| 125 | + if ls "$dylib".dSYM.* >/dev/null 2>&1 ; then |
| 126 | + lipo -create -output "$dylib".dSYM.tmp $(find . -name "$dylib".dSYM.*/Contents/Resources/DWARF/"$dylib" -o -name "$dylib".dSYM.*/Contents/Resources/DWARF/$(basename "$dylib" .dylib)) |
| 127 | + # Reconstruct dSYM bundle structure |
| 128 | + mkdir -p "$dylib".dSYM/Contents/Resources/DWARF |
| 129 | + mv "$dylib".dSYM.tmp "$dylib".dSYM/Contents/Resources/DWARF/$(basename "$dylib" .dylib) |
| 130 | + rm -rf "$dylib".dSYM.* |
| 131 | + fi |
| 132 | + fi |
| 133 | + fi |
| 134 | + |
99 | 135 | popd >/dev/null |
100 | 136 | if [ -f "$dylib".tmp/"$dylib" ] ; then |
101 | 137 | printf "${GREEN}Download ${dylib} success!${NC}\n" |
102 | 138 | mv "$dylib".tmp/"$dylib" "$dylib" |
| 139 | + # Move dSYM if it exists (only when --dsym flag was used) |
| 140 | + if [ -n "$DOWNLOAD_DSYM" ] && [ -d "$dylib".tmp/"$dylib".dSYM ] ; then |
| 141 | + rm -rf "$dylib".dSYM |
| 142 | + mv "$dylib".tmp/"$dylib".dSYM "$dylib".dSYM |
| 143 | + fi |
103 | 144 | fi |
104 | 145 | rm -rf "$dylib".tmp |
105 | 146 | ) & |
|
263 | 304 | if [ "$1" = "all" ] ; then |
264 | 305 | dylibs=(${allcores[*]}) |
265 | 306 | elif [ "$1" = "appstore" ] ; then |
| 307 | + DOWNLOAD_DSYM=1 |
266 | 308 | exports=(${appstore_cores[*]}) |
267 | 309 | if [ "$PLATFORM" = "osx" ] ; then |
268 | 310 | exports+=( |
|
0 commit comments