From 3f43a8b9a34586fce6b3ab6dfcc1fc775998617e Mon Sep 17 00:00:00 2001 From: Hanton Yang Date: Fri, 13 Aug 2021 16:20:22 -0700 Subject: [PATCH] [iOS] Add `LibTorch-Lite-Nightly` pod (#63239) 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 | 2 +- .circleci/scripts/binary_ios_upload.sh | 18 ++++++++++++--- ios/LibTorch-Lite-Nightly.podspec.template | 37 ++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 ios/LibTorch-Lite-Nightly.podspec.template diff --git a/.circleci/scripts/binary_ios_test.sh b/.circleci/scripts/binary_ios_test.sh index 7038b89..5280b62 100644 --- a/.circleci/scripts/binary_ios_test.sh +++ b/.circleci/scripts/binary_ios_test.sh @@ -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 diff --git a/.circleci/scripts/binary_ios_upload.sh b/.circleci/scripts/binary_ios_upload.sh index c4d4475..b0b0fe1 100644 --- a/.circleci/scripts/binary_ios_upload.sh +++ b/.circleci/scripts/binary_ios_upload.sh @@ -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 index 0000000..dc99c9e --- /dev/null +++ b/ios/LibTorch-Lite-Nightly.podspec.template @@ -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 -- 2.7.4