Fixed zoom issue Fixed Fabric (new arch) compile issues on both platforms Fixed included broken codegen lib code Fixed broken .h import paths to avoid setting custom build settings Fixed potential memory issue by disabling view recycling Added Fabric (new arch) support for camera view component Added RN 0.81 for example Added RN 0.79 for main lib Added helper for re-running codegen Added gitignore for Android codegen making a podspec Added support for scanThrottleDelay on Android Added includesGeneratedCode to package.json to indicate changes Rewrote optional int props to use -1 instead due to RN bug Moved to Obj-C with C++ support (.mm) to avoid C++ compile issues
114 lines
5.4 KiB
Ruby
114 lines
5.4 KiB
Ruby
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||
#
|
||
# This source code is licensed under the MIT license found in the
|
||
# LICENSE file in the root directory of this source tree.
|
||
|
||
version = "0.79.0"
|
||
source = { :git => 'https://github.com/facebook/react-native.git' }
|
||
if version == '1000.0.0'
|
||
# This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
|
||
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
||
else
|
||
source[:tag] = "v#{version}"
|
||
end
|
||
|
||
use_frameworks = ENV['USE_FRAMEWORKS'] != nil
|
||
folly_compiler_flags = Helpers::Constants.folly_config[:compiler_flags]
|
||
boost_compiler_flags = Helpers::Constants.boost_config[:compiler_flags]
|
||
|
||
header_search_paths = [
|
||
"\"$(PODS_ROOT)/boost\"",
|
||
"\"$(PODS_ROOT)/RCT-Folly\"",
|
||
"\"$(PODS_ROOT)/DoubleConversion\"",
|
||
"\"$(PODS_ROOT)/fast_float/include\"",
|
||
"\"$(PODS_ROOT)/fmt/include\"",
|
||
"\"${PODS_ROOT}/Headers/Public/ReactCodegen/react/renderer/components\"",
|
||
"\"$(PODS_ROOT)/Headers/Private/React-Fabric\"",
|
||
"\"$(PODS_ROOT)/Headers/Private/React-RCTFabric\"",
|
||
"\"$(PODS_ROOT)/Headers/Private/Yoga\"",
|
||
"\"$(PODS_TARGET_SRCROOT)\"",
|
||
]
|
||
framework_search_paths = []
|
||
|
||
if use_frameworks
|
||
ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-Fabric", "React_Fabric", ["react/renderer/components/view/platform/cxx"])
|
||
.concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-FabricImage", "React_FabricImage", []))
|
||
.concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-graphics", "React_graphics", ["react/renderer/graphics/platform/ios"]))
|
||
.concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "ReactCommon", "ReactCommon", ["react/nativemodule/core"]))
|
||
.concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-NativeModulesApple", "React_NativeModulesApple", []))
|
||
.concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-RCTFabric", "RCTFabric", []))
|
||
.concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-debug", "React_debug", []))
|
||
.concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-rendererdebug", "React_rendererdebug", []))
|
||
.concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-utils", "React_utils", []))
|
||
.concat(ReactNativePodsUtils.create_header_search_path_for_frameworks("PODS_CONFIGURATION_BUILD_DIR", "React-featureflags", "React_featureflags", []))
|
||
.each { |search_path|
|
||
header_search_paths << "\"#{search_path}\""
|
||
}
|
||
end
|
||
|
||
Pod::Spec.new do |s|
|
||
s.name = "ReactCodegen"
|
||
s.version = version
|
||
s.summary = 'Temp pod for generated files for React Native'
|
||
s.homepage = 'https://facebook.com/'
|
||
s.license = 'Unlicense'
|
||
s.authors = 'Facebook'
|
||
s.compiler_flags = "#{folly_compiler_flags} #{boost_compiler_flags} -Wno-nullability-completeness -std=c++20"
|
||
s.source = { :git => '' }
|
||
s.header_mappings_dir = './'
|
||
s.platforms = min_supported_versions
|
||
s.source_files = "**/*.{h,mm,cpp}"
|
||
s.exclude_files = "RCTAppDependencyProvider.{h,mm}" # these files are generated in the same codegen path but needs to belong to a different pod
|
||
s.pod_target_xcconfig = {
|
||
"HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
|
||
"FRAMEWORK_SEARCH_PATHS" => framework_search_paths,
|
||
"OTHER_CPLUSPLUSFLAGS" => "$(inherited) #{folly_compiler_flags} #{boost_compiler_flags}"
|
||
}
|
||
|
||
s.dependency "React-jsiexecutor"
|
||
s.dependency "RCT-Folly"
|
||
s.dependency "RCTRequired"
|
||
s.dependency "RCTTypeSafety"
|
||
s.dependency "React-Core"
|
||
s.dependency "React-jsi"
|
||
s.dependency "ReactCommon/turbomodule/bridging"
|
||
s.dependency "ReactCommon/turbomodule/core"
|
||
s.dependency "React-NativeModulesApple"
|
||
s.dependency "glog"
|
||
s.dependency "DoubleConversion"
|
||
s.dependency 'React-graphics'
|
||
s.dependency 'React-rendererdebug'
|
||
s.dependency 'React-Fabric'
|
||
s.dependency 'React-FabricImage'
|
||
s.dependency 'React-debug'
|
||
s.dependency 'React-utils'
|
||
s.dependency 'React-featureflags'
|
||
s.dependency 'React-RCTAppDelegate'
|
||
|
||
depend_on_js_engine(s)
|
||
|
||
s.script_phases = {
|
||
'name' => 'Generate Specs',
|
||
'execution_position' => :before_compile,
|
||
'input_files' => ["${PODS_ROOT}/../../../src/specs/CameraNativeComponent.ts",
|
||
"${PODS_ROOT}/../../../src/specs/NativeCameraKitModule.ts"],
|
||
'show_env_vars_in_log' => true,
|
||
'output_files' => ["${DERIVED_FILE_DIR}/react-codegen.log"],
|
||
'script': <<-SCRIPT
|
||
pushd "$PODS_ROOT/../" > /dev/null
|
||
RCT_SCRIPT_POD_INSTALLATION_ROOT=$(pwd)
|
||
popd >/dev/null
|
||
|
||
export RCT_SCRIPT_RN_DIR="$RCT_SCRIPT_POD_INSTALLATION_ROOT/../../node_modules/react-native"
|
||
export RCT_SCRIPT_APP_PATH="$RCT_SCRIPT_POD_INSTALLATION_ROOT/../.."
|
||
export RCT_SCRIPT_OUTPUT_DIR="$RCT_SCRIPT_POD_INSTALLATION_ROOT"
|
||
export RCT_SCRIPT_TYPE="withCodegenDiscovery"
|
||
|
||
SCRIPT_PHASES_SCRIPT="$RCT_SCRIPT_RN_DIR/scripts/react_native_pods_utils/script_phases.sh"
|
||
WITH_ENVIRONMENT="$RCT_SCRIPT_RN_DIR/scripts/xcode/with-environment.sh"
|
||
/bin/sh -c "$WITH_ENVIRONMENT $SCRIPT_PHASES_SCRIPT"
|
||
SCRIPT
|
||
}
|
||
|
||
end
|