Pod::Spec.new do |s| s.name = '${POD_NAME}' s.version = '${TFL_BUILD_VERSION}' s.authors = 'Google Inc.' s.license = { :type => 'Apache' } s.homepage = 'https://github.com/tensorflow/tensorflow' s.source = { :git => 'https://github.com/tensorflow/tensorflow.git', :commit => '${SOURCE_COMMIT}' } s.summary = 'TensorFlow Lite for Objective-C' s.description = <<-DESC TensorFlow Lite is TensorFlow's lightweight solution for Objective-C developers. It enables low-latency inference of on-device machine learning models with a small binary size and fast performance supporting hardware acceleration. DESC s.cocoapods_version = '>= ${TFL_MIN_COCOAPODS_VERSION}' s.ios.deployment_target = '12.0' s.module_name = 'TFLTensorFlowLite' s.static_framework = true tfl_dir = 'tensorflow/lite/' objc_dir = tfl_dir + 'objc/' s.pod_target_xcconfig = { 'HEADER_SEARCH_PATHS' => '"${PODS_TARGET_SRCROOT}" ' + '"${PODS_TARGET_SRCROOT}/' + objc_dir + 'apis"', # TODO: Remove this after adding support for arm64 simulator. 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386', 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO', } # TODO: Remove this after adding support for arm64 simulator. s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386', 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO', } s.default_subspec = 'Core' # The privacy manifest shared by other subspecs. s.subspec 'Privacy' do |ss| ss.resource_bundles = { s.module_name => objc_dir + 'PrivacyInfo.xcprivacy' } end s.subspec 'Core' do |core| core.public_header_files = objc_dir + 'apis/*.h' core.source_files = [ objc_dir + '{apis,sources}/*.{h,m,mm}', ] core.exclude_files = [ objc_dir + '{apis,sources}/TFL{Metal,CoreML}Delegate.{h,m}', ] core.dependency "${C_POD_NAME}", "#{s.version}" core.dependency "#{s.name}/Privacy", "#{s.version}" core.test_spec 'Tests' do |ts| ts.source_files = objc_dir + 'tests/*.m' ts.exclude_files = objc_dir + 'tests/TFL{Metal,CoreML}DelegateTests.m' ts.resources = [ tfl_dir + 'testdata/add.bin', tfl_dir + 'testdata/add_quantized.bin', tfl_dir + 'testdata/multi_signatures.bin', ] end end s.subspec 'CoreML' do |coreml| coreml.source_files = [ objc_dir + '{apis,sources}/TFLCoreMLDelegate.{h,m}', ] coreml.ios.deployment_target = '12.0' coreml.dependency "${C_POD_NAME}/CoreML", "#{s.version}" coreml.dependency "#{s.name}/Core", "#{s.version}" coreml.dependency "#{s.name}/Privacy", "#{s.version}" coreml.test_spec 'Tests' do |ts| ts.source_files = objc_dir + 'tests/TFLCoreMLDelegateTests.m' ts.resources = [ tfl_dir + 'testdata/add.bin', ] end end s.subspec 'Metal' do |metal| metal.source_files = [ objc_dir + '{apis,sources}/TFLMetalDelegate.{h,m}', ] metal.dependency "${C_POD_NAME}/Metal", "#{s.version}" metal.dependency "#{s.name}/Core", "#{s.version}" metal.dependency "#{s.name}/Privacy", "#{s.version}" metal.test_spec 'Tests' do |ts| ts.source_files = objc_dir + 'tests/TFLMetalDelegateTests.m' ts.resources = [ tfl_dir + 'testdata/multi_add.bin', ] end end end