Files
facebook-ios-sdk/generate-projects.sh
Jawwad Ahmad 6c04542126 Update generate-projects.sh to handle spaces in paths
Reviewed By: samodom

Differential Revision: D40518803

fbshipit-source-id: f2a0d4c90c46f30556dad712bbbacb2ebfea036e
2022-10-19 13:09:08 -07:00

64 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the license found in the
# LICENSE file in the root directory of this source tree.
EXPECTED_XCODEGEN_VERSION="2.29.0"
RESET='\033[0m'
YELLOW='\033[1;33m'
REOPEN_XCODE=false
pgrep -f '/Applications/Xcode.*\.app/Contents/MacOS/Xcode' > /dev/null
# shellcheck disable=SC2181
if [ $? -eq 0 ]; then
if [ "$1" != "--skip-closing-xcode" ]; then
echo "⚠️ ${YELLOW}Closing Xcode!${RESET}"
killall Xcode || true
REOPEN_XCODE=true
fi
fi
XCODEGEN_BINARY="xcodegen"
if [ -f internal/tools/xcodegen ]; then
CWD=$(pwd)
XCODEGEN_BINARY="${CWD}/internal/tools/xcodegen"
elif ! command -v xcodegen >/dev/null; then
echo "WARNING: Xcodegen not installed, run 'brew install xcodegen' or visit https://github.com/yonaskolb/XcodeGen"
exit 1
fi
CURRENT_XCODEGEN_VERSION=$("$XCODEGEN_BINARY" --version)
CURRENT_XCODEGEN_VERSION=${CURRENT_XCODEGEN_VERSION#"Version: "} # Strip "Version :" prefix
if [ "$CURRENT_XCODEGEN_VERSION" != "$EXPECTED_XCODEGEN_VERSION" ]; then
echo "${YELLOW}WARNING: Expected xcodegen version is $EXPECTED_XCODEGEN_VERSION. You have $CURRENT_XCODEGEN_VERSION.${RESET}"
XCODEGEN_VERSION_BYPASS_FLAG='--force-with-wrong-xcodegen'
if [ "$1" != "$XCODEGEN_VERSION_BYPASS_FLAG" ]; then
echo "${YELLOW}You may use the $XCODEGEN_VERSION_BYPASS_FLAG flag to bypass this check.${RESET}"
exit 1
else
echo "${YELLOW}Using $XCODEGEN_VERSION_BYPASS_FLAG to bypass version check. Xcode project file generation will proceed but you may encounter unexpected issues.${RESET}"
fi
fi
for KIT_DIR in FBSDKCoreKit_Basics FBAEMKit FBSDKCoreKit TestTools FBSDKLoginKit FBSDKShareKit FBSDKGamingServicesKit; do
cd $KIT_DIR || exit
# Set the env var XCODEGEN_USE_CACHE to anything to use the --use-cache flag
if [ -n "$XCODEGEN_USE_CACHE" ]; then
# Use rm -rf ~/.xcodegen/cache if you need to reset the cache
"$XCODEGEN_BINARY" generate --use-cache
else
"$XCODEGEN_BINARY" generate
fi
cd ..
done
if [ "$REOPEN_XCODE" = true ]; then
echo "${YELLOW}Reopening FacebookSDK.xcworkspace${RESET}"
open FacebookSDK.xcworkspace
fi