diff --git a/packages/react-native/sdks/hermes-engine/utils/build-hermesc-xcode.sh b/packages/react-native/sdks/hermes-engine/utils/build-hermesc-xcode.sh index c777b0557cb943..4546f55f5b4920 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-hermesc-xcode.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-hermesc-xcode.sh @@ -9,6 +9,21 @@ set -x hermesc_dir_path="$1"; shift jsi_path="$1" + +# VisionOS support has been added to CMake from version 3.28.0 onwards. Error out if the version is lower. +function check_cmake_version { + required_version="3.28.0" + cmake_version=$($CMAKE_BINARY --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -n 1) + + if ! printf "%s\n%s\n" "$required_version" "$cmake_version" | sort -V | head -n 1 | grep -q "$required_version"; then + echo "error: CMake version $required_version or higher is required. Found: $cmake_version" + exit 1 + fi +} + +check_cmake_version + + # This script is supposed to be executed from Xcode "run script" phase. # Xcode sets up its build environment based on the build target. # Here we override relevant envvars to make sure that we build hermesc for macosx,