[iOS] Add `LibTorch-Lite-Nightly` pod (#63239)
authorHanton Yang <hantonyang@fb.com>
Fri, 13 Aug 2021 23:20:22 +0000 (16:20 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Fri, 13 Aug 2021 23:21:41 +0000 (16:21 -0700)
Summary:
D30090760 (https://github.com/pytorch/pytorch/commit/e182b459d94fe77c1d9f623c94fc2621c8cc55de) was reverted by D30303292 because of a lint issue in `LibTorch-Lite-Nightly.podspec.template`. Resubmit the diff after fixing the issue.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/63239

Test Plan: Imported from OSS

Reviewed By: xta0

Differential Revision: D30315690

Pulled By: hanton

fbshipit-source-id: f0fa719ffc3b8181ab28c123584ae5c1da8992c0

.circleci/scripts/binary_ios_test.sh
.circleci/scripts/binary_ios_upload.sh
ios/LibTorch-Lite-Nightly.podspec.template [new file with mode: 0644]

index 7038b89..5280b62 100644 (file)
@@ -26,4 +26,4 @@ if ! [ -x "$(command -v xcodebuild)" ]; then
     exit 1
 fi
 PROFILE=PyTorch_CI_2021
-ruby ${PROJ_ROOT}/scripts/xcode_build.rb -i ${PROJ_ROOT}/build_ios/install -x ${PROJ_ROOT}/ios/TestApp/TestApp.xcodeproj -p ${IOS_PLATFORM} -c ${PROFILE} -t ${IOS_DEV_TEAM_ID} -f Accelerate,MetalPerformanceShaders
+ruby ${PROJ_ROOT}/scripts/xcode_build.rb -i ${PROJ_ROOT}/build_ios/install -x ${PROJ_ROOT}/ios/TestApp/TestApp.xcodeproj -p ${IOS_PLATFORM} -c ${PROFILE} -t ${IOS_DEV_TEAM_ID} -f Accelerate,MetalPerformanceShaders,CoreML
index c4d4475..b0b0fe1 100644 (file)
@@ -28,12 +28,13 @@ cp ${PROJ_ROOT}/ios/LibTorch-Lite.h ${ZIP_DIR}/src/
 cp ${PROJ_ROOT}/LICENSE ${ZIP_DIR}/
 # zip the library
 export DATE="$(date -u +%Y%m%d)"
-# libtorch_lite_ios_nightly_1.10.0dev20210810.zip
-ZIPFILE="libtorch_lite_ios_nightly_1.10.0.dev$DATE.zip"
+export IOS_NIGHTLY_BUILD_VERSION="1.10.0.${DATE}"
+# libtorch_lite_ios_nightly_1.10.0.20210810.zip
+ZIPFILE="libtorch_lite_ios_nightly_${IOS_NIGHTLY_BUILD_VERSION}.zip"
 cd ${ZIP_DIR}
 #for testing
 touch version.txt
-echo "$DATE" > version.txt
+echo "${IOS_NIGHTLY_BUILD_VERSION}" > version.txt
 zip -r ${ZIPFILE} install src version.txt LICENSE
 # upload to aws
 # Install conda then 'conda install' awscli
@@ -50,3 +51,14 @@ set +x
 # echo "AWS KEY: ${AWS_ACCESS_KEY_ID}"
 # echo "AWS SECRET: ${AWS_SECRET_ACCESS_KEY}"
 aws s3 cp ${ZIPFILE} s3://ossci-ios-build/ --acl public-read
+
+# create a new LibTorch-Lite-Nightly.podspec from the template
+echo "cp ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec.template ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec"
+cp ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec.template ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec
+
+# update pod version
+sed -i '' -e "s/IOS_NIGHTLY_BUILD_VERSION/${IOS_NIGHTLY_BUILD_VERSION}/g" ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec
+cat ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec
+
+# push the new LibTorch-Lite-Nightly.podspec to CocoaPods
+pod trunk push --verbose --allow-warnings --use-libraries --skip-import-validation ${PROJ_ROOT}/ios/LibTorch-Lite-Nightly.podspec
diff --git a/ios/LibTorch-Lite-Nightly.podspec.template b/ios/LibTorch-Lite-Nightly.podspec.template
new file mode 100644 (file)
index 0000000..dc99c9e
--- /dev/null
@@ -0,0 +1,37 @@
+Pod::Spec.new do |s|
+    s.name             = 'LibTorch-Lite-Nightly'
+    s.version          = 'IOS_NIGHTLY_BUILD_VERSION'
+    s.authors          = 'PyTorch Team'
+    s.license          = { :type => 'BSD' }
+    s.homepage         = 'https://github.com/pytorch/pytorch'
+    s.source           = { :http => "https://ossci-ios-build.s3.amazonaws.com/libtorch_lite_ios_nightly_#{s.version}.zip" }
+    s.summary          = 'The nightly build version of PyTorch C++ library for iOS'
+    s.description      = <<-DESC
+        The nightly build version of PyTorch C++ library for iOS.
+    DESC
+    s.ios.deployment_target = '12.0'
+    s.default_subspec = 'Core'
+    s.subspec 'Core' do |ss|
+        ss.dependency 'LibTorch-Lite-Nightly/Torch'
+        ss.source_files = 'src/*.{h,cpp,c,cc}'
+        ss.public_header_files = ['src/LibTorch-Lite.h']
+    end
+    s.subspec 'Torch' do |ss|
+        ss.header_mappings_dir = 'install/include/'
+        ss.preserve_paths = 'install/include/**/*.{h,cpp,cc,c}'
+        ss.vendored_libraries = 'install/lib/*.a'
+        ss.libraries = ['c++', 'stdc++']
+    end
+    s.user_target_xcconfig = {
+        'HEADER_SEARCH_PATHS' => '$(inherited) "$(PODS_ROOT)/LibTorch-Lite-Nightly/install/include/"',
+        'OTHER_LDFLAGS' => '-force_load "$(PODS_ROOT)/LibTorch-Lite-Nightly/install/lib/libtorch.a" -force_load "$(PODS_ROOT)/LibTorch-Lite-Nightly/install/lib/libtorch_cpu.a"',
+        'CLANG_CXX_LANGUAGE_STANDARD' => 'c++14',
+        'CLANG_CXX_LIBRARY' => 'libc++'
+    }
+    s.pod_target_xcconfig = {
+        'HEADER_SEARCH_PATHS' => '$(inherited) "$(PODS_ROOT)/LibTorch-Lite-Nightly/install/include/"',
+        'VALID_ARCHS' => 'x86_64 arm64'
+    }
+    s.library = ['c++', 'stdc++']
+    s.frameworks = 'Accelerate', 'MetalPerformanceShaders', 'CoreML'
+end