build-frameworks.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/bash
  2. set -e
  3. set -o pipefail
  4. XCODE_VERSION=$(xcodebuild -version | head -n 1| awk -F ' ' '{print $2}')
  5. XCODE_VERSION_MAJOR=$(echo $XCODE_VERSION | awk -F '.' '{print $1}')
  6. XCODE_VERSION_MINOR=$(echo $XCODE_VERSION | awk -F '.' '{print $2}')
  7. XCODE_VERSION_PATCH=$(echo $XCODE_VERSION | awk -F '.' '{print $3}')
  8. if [ -z "$SRCROOT" ]
  9. then
  10. SRCROOT=$(pwd)
  11. fi
  12. mkdir -p "${SRCROOT}/build"
  13. PLATFORMS=("iOS" "iOSSimulator" "macOS" "tvOS" "tvOSSimulator" "watchOS" "watchOSSimulator")
  14. if [ $XCODE_VERSION_MAJOR -ge 11 ]
  15. then
  16. PLATFORMS+=("macCatalyst")
  17. fi
  18. if [[ ($XCODE_VERSION_MAJOR -gt 15) || ($XCODE_VERSION_MAJOR -eq 15 && $XCODE_VERSION_MINOR -ge 2) ]]
  19. then
  20. PLATFORMS+=("visionOS")
  21. PLATFORMS+=("visionOSSimulator")
  22. fi
  23. for CURRENT_PLATFORM in "${PLATFORMS[@]}"
  24. do
  25. DESTINATION="generic/platform=${CURRENT_PLATFORM}"
  26. # macOS Catalyst
  27. if [[ $CURRENT_PLATFORM == "macCatalyst" ]]; then
  28. DESTINATION="generic/platform=macOS,variant=Mac Catalyst"
  29. fi
  30. # Simulator
  31. if [[ $CURRENT_PLATFORM == *Simulator ]]; then
  32. CURRENT_PLATFORM_OS=${CURRENT_PLATFORM%Simulator}
  33. DESTINATION="generic/platform=${CURRENT_PLATFORM_OS} Simulator"
  34. fi
  35. if [[ $MACH_O_TYPE == "staticlib" ]]; then
  36. XCCCONFIG_PATH="${SRCROOT}/Configs/Static.xcconfig"
  37. else
  38. XCCCONFIG_PATH="${SRCROOT}/Configs/Dynamic.xcconfig"
  39. fi
  40. 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}/"
  41. done