diff --git a/packages/react-native/scripts/xcode/ccache-clang++.sh b/packages/react-native/scripts/xcode/ccache-clang++.sh index 54ff8ba5816d..b4dee6cfe74b 100755 --- a/packages/react-native/scripts/xcode/ccache-clang++.sh +++ b/packages/react-native/scripts/xcode/ccache-clang++.sh @@ -11,4 +11,13 @@ REACT_NATIVE_CCACHE_CONFIGPATH=$SCRIPT_DIR/ccache.conf # Provide our config file if none is already provided export CCACHE_CONFIGPATH="${CCACHE_CONFIGPATH:-$REACT_NATIVE_CCACHE_CONFIGPATH}" -exec $CCACHE_BINARY clang++ "$@" +# Xcode does not export user-defined build settings as environment variables +# for invoked scripts, so $CCACHE_BINARY may be empty even when set in the +# project. Fall back to a PATH lookup so ccache is still used. +CCACHE_BINARY="${CCACHE_BINARY:-$(command -v ccache)}" + +if [ -n "$CCACHE_BINARY" ]; then + exec "$CCACHE_BINARY" clang++ "$@" +fi + +exec clang++ "$@" diff --git a/packages/react-native/scripts/xcode/ccache-clang.sh b/packages/react-native/scripts/xcode/ccache-clang.sh index 9b1a355c2cce..be632004cf10 100755 --- a/packages/react-native/scripts/xcode/ccache-clang.sh +++ b/packages/react-native/scripts/xcode/ccache-clang.sh @@ -11,4 +11,13 @@ REACT_NATIVE_CCACHE_CONFIGPATH=$SCRIPT_DIR/ccache.conf # Provide our config file if none is already provided export CCACHE_CONFIGPATH="${CCACHE_CONFIGPATH:-$REACT_NATIVE_CCACHE_CONFIGPATH}" -exec $CCACHE_BINARY clang "$@" +# Xcode does not export user-defined build settings as environment variables +# for invoked scripts, so $CCACHE_BINARY may be empty even when set in the +# project. Fall back to a PATH lookup so ccache is still used. +CCACHE_BINARY="${CCACHE_BINARY:-$(command -v ccache)}" + +if [ -n "$CCACHE_BINARY" ]; then + exec "$CCACHE_BINARY" clang "$@" +fi + +exec clang "$@"