From c17da4e811e7f3d98d8f83e00d3e0b5dc84ca744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Kwas=CC=81niewski?= Date: Wed, 7 Aug 2024 06:53:37 -0700 Subject: [PATCH] fix: minor fixes for hermes scripts (#45841) Summary: This PR fixes few issues with Hermes scripts: - Set visionOS vendored frameworks - Fail if env variables are not set ## Changelog: [INTERNAL] [FIXED] - Hermes script should fail when no deployment target is set Pull Request resolved: https://github.com/facebook/react-native/pull/45841 Test Plan: Try to build Hermes Reviewed By: blakef Differential Revision: D60901886 Pulled By: cipolleschi fbshipit-source-id: b9ff470ac6c07e1bd5abc7410ac0c366d66016c5 --- .../sdks/hermes-engine/hermes-engine.podspec | 1 + .../hermes-engine/utils/build-apple-framework.sh | 15 ++++++++++++--- .../hermes-engine/utils/build-ios-framework.sh | 2 -- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/react-native/sdks/hermes-engine/hermes-engine.podspec b/packages/react-native/sdks/hermes-engine/hermes-engine.podspec index 3f106d1edd3..78492a964ab 100644 --- a/packages/react-native/sdks/hermes-engine/hermes-engine.podspec +++ b/packages/react-native/sdks/hermes-engine/hermes-engine.podspec @@ -36,6 +36,7 @@ Pod::Spec.new do |spec| spec.ios.vendored_frameworks = "destroot/Library/Frameworks/ios/hermes.framework" spec.osx.vendored_frameworks = "destroot/Library/Frameworks/macosx/hermes.framework" + spec.visionos.vendored_frameworks = "destroot/Library/Frameworks/xros/hermes.framework" if HermesEngineSourceType::isPrebuilt(source_type) then diff --git a/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh b/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh index e8cbb496453..85cbb0e4ea5 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-apple-framework.sh @@ -31,20 +31,29 @@ function use_env_var_or_ruby_prop { fi } +function use_env_var { + if [[ -n "$1" ]]; then + echo "$1" + else + echo "error: Missing $2 environment variable" + exit 1 + fi +} + function get_release_version { use_env_var_or_ruby_prop "${RELEASE_VERSION}" "version" } function get_ios_deployment_target { - use_env_var_or_ruby_prop "${IOS_DEPLOYMENT_TARGET}" "deployment_target('ios')" + use_env_var "${IOS_DEPLOYMENT_TARGET}" "IOS_DEPLOYMENT_TARGET" } function get_visionos_deployment_target { - use_env_var_or_ruby_prop "${XROS_DEPLOYMENT_TARGET}" "deployment_target('visionos')" + use_env_var "${XROS_DEPLOYMENT_TARGET}" "XROS_DEPLOYMENT_TARGET" } function get_mac_deployment_target { - use_env_var_or_ruby_prop "${MAC_DEPLOYMENT_TARGET}" "deployment_target('osx')" + use_env_var "${MAC_DEPLOYMENT_TARGET}" "MAC_DEPLOYMENT_TARGET" } # Build host hermes compiler for internal bytecode diff --git a/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh b/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh index 225cb55b02c..e44a1a1468b 100755 --- a/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh +++ b/packages/react-native/sdks/hermes-engine/utils/build-ios-framework.sh @@ -59,8 +59,6 @@ function build_universal_framework { # this is used to preserve backward compatibility function create_framework { if [ ! -d destroot/Library/Frameworks/universal/hermes.xcframework ]; then - ios_deployment_target=$(get_ios_deployment_target) - build_framework "iphoneos" build_framework "iphonesimulator" build_framework "catalyst"