build-frameworks.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/bin/bash
  2. set -e
  3. set -o pipefail
  4. if [[ -z "$XCODE_VERSION_MAJOR" ]]
  5. then
  6. XCODE_VERSION_MAJOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MAJOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
  7. fi
  8. if [[ -z "$XCODE_VERSION_MINOR" ]]
  9. then
  10. XCODE_VERSION_MINOR=$(xcodebuild -showBuildSettings | awk -F= '/XCODE_VERSION_MINOR/{x=$NF; gsub(/[^0-9]/,"",x); print int(x)}')
  11. fi
  12. XCODE_MAJOR=$(($XCODE_VERSION_MAJOR / 100))
  13. XCODE_MINOR=$(($XCODE_VERSION_MINOR / 10))
  14. XCODE_MINOR=$(($XCODE_MINOR % 10))
  15. echo "XCODE_MAJOR=$XCODE_MAJOR"
  16. echo "XCODE_MINOR=$XCODE_MINOR"
  17. if [[ -z "$SRCROOT" ]]
  18. then
  19. SRCROOT=$(pwd)
  20. fi
  21. mkdir -p "${SRCROOT}/build"
  22. PLATFORMS=("iOS" "iOSSimulator" "macOS" "tvOS" "tvOSSimulator" "watchOS" "watchOSSimulator")
  23. if [ $XCODE_MAJOR -ge 11 ]
  24. then
  25. PLATFORMS+=("macCatalyst")
  26. fi
  27. if [[ ($XCODE_MAJOR -gt 15) || ($XCODE_MAJOR -eq 15 && $XCODE_MINOR -ge 2) ]]
  28. then
  29. PLATFORMS+=("visionOS")
  30. PLATFORMS+=("visionOSSimulator")
  31. fi
  32. for CURRENT_PLATFORM in "${PLATFORMS[@]}"
  33. do
  34. DESTINATION="generic/platform=${CURRENT_PLATFORM}"
  35. # macOS Catalyst
  36. if [[ $CURRENT_PLATFORM == "macCatalyst" ]]; then
  37. DESTINATION="generic/platform=macOS,variant=Mac Catalyst"
  38. fi
  39. # Simulator
  40. if [[ $CURRENT_PLATFORM == *Simulator ]]; then
  41. CURRENT_PLATFORM_OS=${CURRENT_PLATFORM%Simulator}
  42. DESTINATION="generic/platform=${CURRENT_PLATFORM_OS} Simulator"
  43. fi
  44. if [[ $MACH_O_TYPE == "staticlib" ]]; then
  45. XCCCONFIG_PATH="${SRCROOT}/Configs/Static.xcconfig"
  46. else
  47. XCCCONFIG_PATH="${SRCROOT}/Configs/Dynamic.xcconfig"
  48. fi
  49. xcodebuild build -project "SDWebImage.xcodeproj" -destination "${DESTINATION}" -scheme "SDWebImage" -configuration "Release" -xcconfig "${XCCCONFIG_PATH}" -derivedDataPath "${SRCROOT}/build/DerivedData" CONFIGURATION_BUILD_DIR="${SRCROOT}/build/${CURRENT_PLATFORM}/"
  50. done