From f8bd473828142f4527fa3c81da26837b7b621d2f Mon Sep 17 00:00:00 2001 From: Pritesh Nandgaonkar Date: Tue, 26 Feb 2019 04:14:36 -0800 Subject: [PATCH] Use Folly and RSocket from cocoapods (#379) Summary: I have released pods for Folly and RSocket on cocoapods. Thus we won't need to host different versions of these pods on our repository. I haven't removed those pods from `Specs` folder, as the current users of `0.16.2` would still be referring the Specs folder on the master branch. I will remove the specs folder once, all our pods are on cocoapods and we no longer need to host any pods. Pull Request resolved: https://github.com/facebook/flipper/pull/379 Reviewed By: jknoxville Differential Revision: D14185931 Pulled By: priteshrnandgaonkar fbshipit-source-id: ea285024123e41c2d110827e26f79a72ef22c008 --- .travis.yml | 8 +- iOS/FlipperKit.podspec | 2 +- iOS/Podfile | 4 +- iOS/Podspecs/Flipper-Folly.podspec | 162 ++++++++++++++++++ iOS/Podspecs/Flipper-RSocket.podspec | 54 ++++++ iOS/Sample/Sample.xcodeproj/project.pbxproj | 16 -- .../SampleSwift.xcodeproj/project.pbxproj | 12 -- xplat/Flipper/Flipper.podspec | 6 +- 8 files changed, 228 insertions(+), 36 deletions(-) create mode 100644 iOS/Podspecs/Flipper-Folly.podspec create mode 100644 iOS/Podspecs/Flipper-RSocket.podspec diff --git a/.travis.yml b/.travis.yml index 743a77ffe..6868d4072 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,6 +44,7 @@ matrix: before_install: - rm -rf iOS/Sample/Pods - rm -f iOS/Sample/Podfile.lock + - rm -f iOS/Sample/build.log - rm -f iOS/SampleSwift/Podfile.lock - pod repo update --silent @@ -56,12 +57,14 @@ matrix: script: - cd iOS/Sample - IPHONESIMULATOR=$(xcodebuild -showsdks | grep -o "iphonesimulator[0-9]\\+\\.[0-9]\\+$") - - xcodebuild clean build -workspace Sample.xcworkspace -scheme Sample -sdk $IPHONESIMULATOR -quiet + - xcodebuild clean build -workspace Sample.xcworkspace -scheme Sample -sdk $IPHONESIMULATOR -quiet > ./build.log + - tail -100 ./build.log - language: objective-c before_install: - rm -rf iOS/SampleSwift/Pods - rm -f iOS/SampleSwift/Podfile.lock + - rm -f iOS/SampleSwift/build.log - pod repo update --silent install: @@ -72,7 +75,8 @@ matrix: script: - cd iOS/SampleSwift - IPHONESIMULATOR=$(xcodebuild -showsdks | grep -o "iphonesimulator[0-9]\\+\\.[0-9]\\+$") - - xcodebuild clean build -workspace SampleSwift.xcworkspace -scheme SampleSwift -sdk $IPHONESIMULATOR -quiet + - xcodebuild clean build -workspace SampleSwift.xcworkspace -scheme SampleSwift -sdk $IPHONESIMULATOR -quiet > ./build.log + - tail -100 ./build.log - language: android os: linux android: diff --git a/iOS/FlipperKit.podspec b/iOS/FlipperKit.podspec index 219fe74c9..bf7d0d5f2 100644 --- a/iOS/FlipperKit.podspec +++ b/iOS/FlipperKit.podspec @@ -61,7 +61,7 @@ Pod::Spec.new do |spec| ss.dependency 'FlipperKit/FBCxxUtils' ss.dependency 'FlipperKit/CppBridge' ss.dependency 'FlipperKit/FKPortForwarding' - ss.dependency 'Folly', '~>1.2' + ss.dependency 'Flipper-Folly', '~>1.2' ss.dependency 'Flipper', '~>'+flipperkit_version ss.dependency 'OpenSSL-Static', '1.0.2.c1' ss.compiler_flags = folly_compiler_flags diff --git a/iOS/Podfile b/iOS/Podfile index fa69a378c..825c51915 100644 --- a/iOS/Podfile +++ b/iOS/Podfile @@ -11,10 +11,10 @@ target 'FlipperKit' do pod 'Flipper', :path => '../Flipper.podspec' # Pods for SonarKit pod 'PeerTalk', '~>0.0' - pod 'RSocket', '~>0.10' + pod 'Flipper-RSocket', '~>0.10' pod 'DoubleConversion', '~>1.1' pod 'glog', '~>0.3' - pod 'Folly', '~>1.0' + pod 'Flipper-Folly', '~>1.2' pod 'CocoaAsyncSocket', '~>7.6' end diff --git a/iOS/Podspecs/Flipper-Folly.podspec b/iOS/Podspecs/Flipper-Folly.podspec new file mode 100644 index 000000000..a9f3a9a4c --- /dev/null +++ b/iOS/Podspecs/Flipper-Folly.podspec @@ -0,0 +1,162 @@ +Pod::Spec.new do |spec| + spec.name = 'Flipper-Folly' + spec.version = '1.2.0' + spec.license = { :type => 'Apache License, Version 2.0' } + spec.homepage = 'https://github.com/facebook/folly' + spec.summary = 'An open-source C++ library developed and used at Facebook.' + spec.authors = 'Facebook' + spec.source = { :git => 'https://github.com/facebook/folly.git', + :tag => "v2019.01.14.00"} + spec.module_name = 'folly' + spec.dependency 'boost-for-react-native' + spec.dependency 'DoubleConversion' + spec.dependency 'glog' + spec.dependency 'OpenSSL-Static', '1.0.2.c1' + spec.dependency 'CocoaLibEvent', '~> 1.0' + spec.compiler_flags = '-DFOLLY_HAVE_PTHREAD=1 -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_HAVE_LIBGFLAGS=0 -DFOLLY_HAVE_LIBJEMALLOC=0 -DFOLLY_HAVE_PREADV=0 -DFOLLY_HAVE_PWRITEV=0 -DFOLLY_HAVE_TFO=0 -DFOLLY_USE_SYMBOLIZER=0 + -frtti + -fexceptions + -std=c++14 + -Wno-error + -Wno-unused-local-typedefs + -Wno-unused-variable + -Wno-sign-compare + -Wno-comment + -Wno-return-type + -Wno-global-constructors' + spec.source_files = "folly/system/*.cpp", + "folly/portability/Config.h", + "folly/Executor.h", + "folly/Function.h", + "folly/Utility.h", + "folly/Portability.h", + "folly/Traits.h", + "folly/functional/Invoke.h", + "folly/CPortability.h", + "folly/dynamic.h", + "folly/json_pointer.h", + "folly/Expected.h", + "folly/Preprocessor.h", + "folly/Optional.h", + "folly/Unit.h", + "folly/Utility.h", + "folly/lang/ColdClass.h", + "folly/CppAttributes.h", + "folly/json.h", + "folly/Range.h", + "folly/hash/SpookyHashV2.h", + "folly/lang/Exception.h", + "folly/portability/Constexpr.h", + "folly/CpuId.h", + "folly/Likely.h", + "folly/detail/RangeCommon.h", + "folly/detail/RangeSse42.h", + "folly/portability/String.h", + "folly/dynamic-inl.h", + "folly/Conv.h", + "folly/Demangle.h", + "folly/FBString.h", + "folly/hash/Hash.h", + "folly/memory/Malloc.h", + "folly/io/async/AsyncTimeout.h", + "folly/**/*.h", + "folly/memory/detail/MallocImpl.h", + "folly/String.h", + "folly/*.h", + "folly/portability/PThread.h", + "folly/futures/*.h", + "folly/futures/detail/*.h", + "folly/Executor.cpp", + "folly/memory/detail/MallocImpl.cpp", + "folly/String.cpp", + "folly/*.cpp", + "folly/net/*.cpp", + "folly/detail/*.cpp", + "folly/hash/*.cpp", + "folly/portability/*.cpp", + "folly/ScopeGuard.h", + "folly/lang/ColdClass.cpp", + "folly/lang/Assume.h", + "folly/lang/Assume.cpp", + "folly/io/async/*.cpp", + "folly/io/async/ssl/*.cpp", + "folly/io/*.cpp", + "folly/synchronization/*.cpp", + "folly/lang/*.cpp", + "folly/memory/*.cpp", + "folly/futures/*.cpp", + "folly/futures/detail/*.cpp", + "folly/experimental/hazptr/*.cpp", + "folly/executors/*.cpp", + "folly/concurrency/*.cpp", + "folly/ssl/*.cpp", + "folly/ssl/detail/*.cpp", + "folly/container/detail/*.cpp" + # workaround for https://github.com/facebook/react-native/issues/14326 + spec.preserve_paths = 'folly/*.h', + 'folly/portability/*.h', + 'folly/lang/*.h', + 'folly/functional/*.h', + 'folly/detail/*.h', + 'folly/hash/*.h', + 'folly/memory/*.h', + 'folly/**/*.h', + 'folly/futures/detail/*.h', + 'folly/futures/*.h' + + spec.header_mappings_dir = 'folly' + spec.header_dir = 'folly' + spec.libraries = "stdc++" + spec.private_header_files = "folly/portability/Stdlib.h", + "folly/portability/Stdio.h" + + spec.public_header_files = "folly/portability/Config.h", + "folly/Executor.h", + "folly/Function.h", + "folly/Utility.h", + "folly/Portability.h", + "folly/Traits.h", + "folly/functional/Invoke.h", + "folly/CPortability.h", + "folly/dynamic.h", + "folly/json_pointer.h", + "folly/Expected.h", + "folly/Preprocessor.h", + "folly/Optional.h", + "folly/Unit.h", + "folly/Utility.h", + "folly/lang/ColdClass.h", + "folly/CppAttributes.h", + "folly/json.h", + "folly/Range.h", + "folly/hash/SpookyHashV2.h", + "folly/lang/Exception.h", + "folly/portability/Constexpr.h", + "folly/CpuId.h", + "folly/Likely.h", + "folly/detail/RangeCommon.h", + "folly/detail/RangeSse42.h", + "folly/portability/String.h", + "folly/dynamic-inl.h", + "folly/Conv.h", + "folly/Demangle.h", + "folly/FBString.h", + "folly/hash/Hash.h", + "folly/memory/Malloc.h", + "folly/io/async/AsyncTimeout.h", + "folly/**/*.h", + "folly/memory/detail/MallocImpl.h", + "folly/String.h", + "folly/*.h", + "folly/portability/PThread.h", + "folly/futures/*.h", + "folly/futures/detail/*.h" + + spec.pod_target_xcconfig = { "USE_HEADERMAP": "NO", + "ONLY_ACTIVE_ARCH": "YES", + "CLANG_CXX_LANGUAGE_STANDARD": "c++11", + "HEADER_SEARCH_PATHS": "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/DoubleConversion\"" + } + # Pinning to the same version as React.podspec. + spec.platforms = { :ios => "8.0"} +end diff --git a/iOS/Podspecs/Flipper-RSocket.podspec b/iOS/Podspecs/Flipper-RSocket.podspec new file mode 100644 index 000000000..3d87ce93a --- /dev/null +++ b/iOS/Podspecs/Flipper-RSocket.podspec @@ -0,0 +1,54 @@ +Pod::Spec.new do |spec| + spec.name = 'Flipper-RSocket' + spec.version = '0.10.1' + spec.license = { :type => 'MIT' } + spec.homepage = 'https://github.com/rsocket/rsocket-cpp' + spec.summary = 'C++ implementation of RSocket' + spec.authors = 'Facebook' + spec.source = { :git => 'https://github.com/rsocket/rsocket-cpp.git', :branch => "master"} + spec.module_name = 'RSocket' + spec.static_framework = true + spec.source_files = 'rsocket/benchmarks/*', + 'rsocket/framing/*', + 'rsocket/internal/*', + 'rsocket/statemachine/*', + 'rsocket/transports/*', + 'rsocket/transports/**/*', + 'yarpl/observable/*', + 'yarpl/flowable/*', + 'rsocket/*' + + spec.libraries = "stdc++" + spec.compiler_flags = '-std=c++1y' + spec.dependency 'Flipper-Folly', '~>1.2' + spec.compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_HAVE_LIBGFLAGS=0 -DFOLLY_HAVE_LIBJEMALLOC=0 -DFOLLY_HAVE_PREADV=0 -DFOLLY_HAVE_PWRITEV=0 -DFOLLY_HAVE_TFO=0 -DFOLLY_USE_SYMBOLIZER=0 -frtti + -fexceptions + -std=c++14 + -Wno-error + -Wno-unused-local-typedefs + -Wno-unused-variable + -Wno-sign-compare + -Wno-comment + -Wno-return-type + -Wno-global-constructors' + spec.preserve_paths = 'rsocket/benchmarks/*.h', + 'rsocket/framing/*.h', + 'rsocket/internal/*.h', + 'rsocket/statemachine/*.h', + 'rsocket/transports/*.h', + 'rsocket/*.h', + 'yarpl/flowable/*.h', + 'yarpl/observable/*.h', + 'yarpl/perf/*.h', + 'yarpl/single/*.h', + 'yarpl/utils/*.h', + 'yarpl/*.h', + '**/*.h' + spec.header_mappings_dir = './' + spec.header_dir = './' + spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", + "CLANG_CXX_LANGUAGE_STANDARD" => "c++14", + "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\"/** \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/glog\" \"$(PODS_ROOT)/DoubleConversion\"/**" } + spec.platforms = { :ios => "8.0" } + +end diff --git a/iOS/Sample/Sample.xcodeproj/project.pbxproj b/iOS/Sample/Sample.xcodeproj/project.pbxproj index 995bd34e4..14ecc1c5f 100644 --- a/iOS/Sample/Sample.xcodeproj/project.pbxproj +++ b/iOS/Sample/Sample.xcodeproj/project.pbxproj @@ -401,14 +401,6 @@ OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", - "-l\"CocoaAsyncSocket\"", - "-l\"ComponentKit\"", - "-l\"DoubleConversion\"", - "-l\"Folly\"", - "-l\"PeerTalk\"", - "-l\"Flipper\"", - "-l\"FlipperKit\"", - "-l\"Yoga\"", "-l\"c++\"", "-l\"glog\"", "-l\"stdc++\"", @@ -498,14 +490,6 @@ OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", - "-l\"CocoaAsyncSocket\"", - "-l\"ComponentKit\"", - "-l\"DoubleConversion\"", - "-l\"Folly\"", - "-l\"PeerTalk\"", - "-l\"Flipper\"", - "-l\"FlipperKit\"", - "-l\"Yoga\"", "-l\"c++\"", "-l\"glog\"", "-l\"stdc++\"", diff --git a/iOS/SampleSwift/SampleSwift.xcodeproj/project.pbxproj b/iOS/SampleSwift/SampleSwift.xcodeproj/project.pbxproj index ef7c009a8..f9f2e618d 100644 --- a/iOS/SampleSwift/SampleSwift.xcodeproj/project.pbxproj +++ b/iOS/SampleSwift/SampleSwift.xcodeproj/project.pbxproj @@ -357,13 +357,7 @@ OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", - "-l\"CocoaAsyncSocket\"", - "-l\"DoubleConversion\"", - "-l\"Folly\"", "-l\"PeerTalk\"", - "-l\"RSocket\"", - "-l\"Flipper\"", - "-l\"FlipperKit\"", "-l\"crypto\"", "-l\"event\"", "-l\"event_core\"", @@ -417,13 +411,7 @@ OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", - "-l\"CocoaAsyncSocket\"", - "-l\"DoubleConversion\"", - "-l\"Folly\"", "-l\"PeerTalk\"", - "-l\"RSocket\"", - "-l\"Flipper\"", - "-l\"FlipperKit\"", "-l\"crypto\"", "-l\"event\"", "-l\"event_core\"", diff --git a/xplat/Flipper/Flipper.podspec b/xplat/Flipper/Flipper.podspec index 170859435..602e7d607 100644 --- a/xplat/Flipper/Flipper.podspec +++ b/xplat/Flipper/Flipper.podspec @@ -12,13 +12,13 @@ Pod::Spec.new do |spec| spec.public_header_files = 'xplat/Flipper/*.h','xplat/utils/*.h' spec.source_files = 'xplat/Flipper/*.{h,cpp,m,mm}','xplat/Flipper/utils/*.{h,cpp,m,mm}' spec.libraries = "stdc++" - spec.dependency 'Folly', '~>1.2' - spec.dependency 'RSocket', '~>0.10' + spec.dependency 'Flipper-Folly', '~>1.2' + spec.dependency 'Flipper-RSocket', '~>0.10' spec.compiler_flags = '-DFLIPPER_OSS=1 -DFB_SONARKIT_ENABLED=1 -DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_HAVE_LIBGFLAGS=0 -DFOLLY_HAVE_LIBJEMALLOC=0 -DFOLLY_HAVE_PREADV=0 -DFOLLY_HAVE_PWRITEV=0 -DFOLLY_HAVE_TFO=0 -DFOLLY_USE_SYMBOLIZER=0 -Wall -std=c++14 -Wno-global-constructors' spec.platforms = { :ios => "8.0" } spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", "CLANG_CXX_LANGUAGE_STANDARD" => "c++14", - "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/RSocket\" \"$(PODS_ROOT)/DoubleConversion\"" } + "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/Flipper-RSocket\" \"$(PODS_ROOT)/DoubleConversion\"" } end