blob: 095bf9d13a46d468a508f2ae7bbc8f710186df8f [file] [log] [blame]
Pod::Spec.new do |s|
s.name = 'TensorFlowLiteObjC'
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.ios.deployment_target = '11.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*]' => 'arm64'
}
# TODO: Remove this after adding support for arm64 simulator.
s.user_target_xcconfig = {
'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64'
}
s.default_subspec = 'Core'
s.subspec 'Core' do |core|
core.public_header_files = objc_dir + 'apis/*.h'
core.source_files = [
objc_dir + '{apis,sources}/*.{h,m,mm}',
tfl_dir + 'builtin_ops.h',
tfl_dir + 'c/c_api.h',
tfl_dir + 'c/c_api_experimental.h',
tfl_dir + 'c/c_api_types.h',
tfl_dir + 'c/common.h',
tfl_dir + 'delegates/xnnpack/xnnpack_delegate.h',
]
core.exclude_files = [
objc_dir + '{apis,sources}/TFL{Metal,CoreML}Delegate.{h,m}',
]
core.dependency 'TensorFlowLiteC', "#{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 'TensorFlowLiteC/CoreML', "#{s.version}"
coreml.dependency 'TensorFlowLiteObjC/Core', "#{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 'TensorFlowLiteC/Metal', "#{s.version}"
metal.dependency 'TensorFlowLiteObjC/Core', "#{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