1#!/bin/bash
2
3PPSSPP="${1}"
4PPSSPPSDL="${PPSSPP}/Contents/MacOS/PPSSPPSDL"
5
6if [ ! -f "${PPSSPPSDL}" ]; then
7  echo "No such file: ${PPSSPPSDL}!"
8  exit 0
9fi
10
11SDL=$(otool -L "${PPSSPPSDL}" | grep -v @executable_path | grep -Eo /.+libSDL.+dylib)
12if [ "${SDL}" != "" ]; then
13  if [ ! -f "${SDL}" ]; then
14    echo "Cannot locate SDL: ${SDL}!"
15    exit 0
16  fi
17
18  echo "Installing SDL from ${SDL}..."
19
20  SDLNAME=$(basename "${SDL}")
21  mkdir -p "${PPSSPP}/Contents/Frameworks" || exit 0
22  cp -r "$SDL" "${PPSSPP}/Contents/Frameworks" || exit 0
23  install_name_tool -change "${SDL}" "@executable_path/../Frameworks/${SDLNAME}" "${PPSSPPSDL}" || exit 0
24elif [ "$(otool -L "${PPSSPPSDL}" | grep @rpath/SDL)" != "" ]; then
25  cd "$(dirname "$0")"
26  RPATH="$(pwd)/macOS"
27  cd -
28  SDL="${RPATH}/SDL2.framework"
29  if [ ! -d "${SDL}" ]; then
30    echo "Cannot locate SDL.framework: ${SDL}!"
31    exit 0
32  fi
33
34  rm -rf "${PPSSPP}/Contents/Frameworks/SDL2.framework" || exit 0
35  mkdir -p "${PPSSPP}/Contents/Frameworks" || exit 0
36  cp -a "$SDL" "${PPSSPP}/Contents/Frameworks" || exit 0
37  install_name_tool -rpath "${RPATH}" "@executable_path/../Frameworks" "${PPSSPPSDL}" || echo "Already patched."
38fi
39
40GIT_VERSION_LINE=$(grep "PPSSPP_GIT_VERSION = " "$(dirname "${0}")/../git-version.cpp")
41echo "Setting version to ${GIT_VERSION_LINE}..."
42SHORT_VERSION_MATCH='.*"v([0-9\.]+(-[0-9]+)?).*";'
43LONG_VERSION_MATCH='.*"v(.*)";'
44if [[ "${GIT_VERSION_LINE}" =~ ^${SHORT_VERSION_MATCH}$ ]]; then
45	plutil -replace CFBundleShortVersionString -string $(echo ${GIT_VERSION_LINE} | perl -pe "s/${SHORT_VERSION_MATCH}/\$1/g") ${PPSSPP}/Contents/Info.plist
46	plutil -replace CFBundleVersion            -string $(echo ${GIT_VERSION_LINE} | perl -pe "s/${LONG_VERSION_MATCH}/\$1/g")  ${PPSSPP}/Contents/Info.plist
47else
48	plutil -replace CFBundleShortVersionString -string "" ${PPSSPP}/Contents/Info.plist
49	plutil -replace CFBundleVersion            -string "" ${PPSSPP}/Contents/Info.plist
50fi
51
52# AdHoc codesign is required for Apple Silicon.
53codesign -fs - --deep "${PPSSPP}" || exit 1
54