105 lines
3.3 KiB
Plaintext
105 lines
3.3 KiB
Plaintext
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
|