From 7858926f9ab765e0d5e7bd0d4ccb8cd2b62c01fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Kwa=C5=9Bniewski?= Date: Wed, 20 Dec 2023 15:43:26 +0100 Subject: [PATCH] feat: add warning while building Hermes that at least CMake 3.28.0 is required (#63) --- .../hermes-engine/utils/build-hermesc-xcode.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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,