Release glog and DoubleConversion with different names

Summary: This releases glog and DoubleConversion under "Flipper" preappended name as it solves the issues with Flipper integration with RN under use_frameworks!  keyword.

Reviewed By: passy

Differential Revision: D19392941

fbshipit-source-id: ebdcdc23fcce45cec9bfc6d4f18c14a734caf24f
This commit is contained in:
Pritesh Nandgaonkar
2020-01-14 10:53:42 -08:00
committed by Facebook Github Bot
parent a96931c43f
commit 4530eb9235
10 changed files with 136 additions and 18 deletions

View File

@@ -26,5 +26,5 @@ Pod::Spec.new do |spec|
spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
"ARCHS" => "${ARCHS_STANDARD_64_BIT}", "ARCHS" => "${ARCHS_STANDARD_64_BIT}",
"CLANG_CXX_LANGUAGE_STANDARD" => "c++14", "CLANG_CXX_LANGUAGE_STANDARD" => "c++14",
"HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/Flipper-RSocket\" \"$(PODS_ROOT)/DoubleConversion\"" } "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/Flipper-RSocket\" \"$(PODS_ROOT)/Flipper-DoubleConversion\"" }
end end

View File

@@ -40,7 +40,7 @@ Pod::Spec.new do |spec|
# by other FlipperKit source files # by other FlipperKit source files
ss.private_header_files = 'iOS/FlipperKit/CppBridge/**/*.h' ss.private_header_files = 'iOS/FlipperKit/CppBridge/**/*.h'
ss.preserve_path = 'iOS/FlipperKit/CppBridge/**/*.h' ss.preserve_path = 'iOS/FlipperKit/CppBridge/**/*.h'
header_search_paths = "\"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/FlipperKit/iOS/**/\"" header_search_paths = "\"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/Flipper-DoubleConversion\" \"$(PODS_ROOT)/FlipperKit/iOS/**/\""
ss.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", ss.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
"ONLY_ACTIVE_ARCH": "YES", "ONLY_ACTIVE_ARCH": "YES",
"DEFINES_MODULE" => "YES", "DEFINES_MODULE" => "YES",
@@ -55,7 +55,7 @@ Pod::Spec.new do |spec|
# We set these files as private headers since they only need to be accessed # We set these files as private headers since they only need to be accessed
# by other FlipperKit source files # by other FlipperKit source files
ss.private_header_files = 'iOS/FlipperKit/FBCxxFollyDynamicConvert/**/*.h' ss.private_header_files = 'iOS/FlipperKit/FBCxxFollyDynamicConvert/**/*.h'
header_search_paths = "\"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/DoubleConversion\"" header_search_paths = "\"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/Flipper-DoubleConversion\""
ss.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", ss.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
"ONLY_ACTIVE_ARCH": "YES", "ONLY_ACTIVE_ARCH": "YES",
"DEFINES_MODULE" => "YES", "DEFINES_MODULE" => "YES",

View File

@@ -138,8 +138,8 @@ target 'MyApp' do
# it's dependencies to be built as a static library and all other pods to # it's dependencies to be built as a static library and all other pods to
# be dynamic. # be dynamic.
# $static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly', # $static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly',
# 'CocoaAsyncSocket', 'ComponentKit', 'DoubleConversion', # 'CocoaAsyncSocket', 'ComponentKit', 'Flipper-DoubleConversion',
# 'glog', 'Flipper-PeerTalk', 'Flipper-RSocket', 'Yoga', 'YogaKit', # 'Flipper-Glog', 'Flipper-PeerTalk', 'Flipper-RSocket', 'Yoga', 'YogaKit',
# 'CocoaLibEvent', 'OpenSSL-Universal', 'boost-for-react-native'] # 'CocoaLibEvent', 'OpenSSL-Universal', 'boost-for-react-native']
# #
# pre_install do |installer| # pre_install do |installer|
@@ -201,8 +201,8 @@ target 'MyApp' do
# it's dependencies to be built as a static library and all other pods to # it's dependencies to be built as a static library and all other pods to
# be dynamic. # be dynamic.
# $static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly', # $static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly',
# 'CocoaAsyncSocket', 'ComponentKit', 'DoubleConversion', # 'CocoaAsyncSocket', 'ComponentKit', 'Flipper-DoubleConversion',
# 'glog', 'Flipper-PeerTalk', 'Flipper-RSocket', 'Yoga', 'YogaKit', # 'Flipper-Glog', 'Flipper-PeerTalk', 'Flipper-RSocket', 'Yoga', 'YogaKit',
# 'CocoaLibEvent', 'OpenSSL-Universal', 'boost-for-react-native'] # 'CocoaLibEvent', 'OpenSSL-Universal', 'boost-for-react-native']
# #
# pre_install do |installer| # pre_install do |installer|

View File

@@ -0,0 +1,22 @@
# Copyright (c) Facebook, Inc. and its affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
Pod::Spec.new do |spec|
spec.name = 'Flipper-DoubleConversion'
spec.version = '1.1.7'
spec.license = { :type => 'MIT' }
spec.homepage = 'https://github.com/google/double-conversion'
spec.summary = 'Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles'
spec.authors = 'Google'
spec.prepare_command = 'mv src double-conversion'
spec.source = { :git => 'https://github.com/google/double-conversion.git',
:tag => "v1.1.6" }
spec.module_name = 'DoubleConversion'
spec.header_dir = 'double-conversion'
spec.source_files = 'double-conversion/*.{h,cc}'
spec.compiler_flags = '-Wno-unreachable-code'
spec.platforms = { :ios => "8.0", :tvos => "8.0" }
end

View File

@@ -5,7 +5,7 @@
Pod::Spec.new do |spec| Pod::Spec.new do |spec|
spec.name = 'Flipper-Folly' spec.name = 'Flipper-Folly'
spec.version = '2.1.0' spec.version = '2.1.1'
spec.license = { :type => 'Apache License, Version 2.0' } spec.license = { :type => 'Apache License, Version 2.0' }
spec.homepage = 'https://github.com/facebook/folly' spec.homepage = 'https://github.com/facebook/folly'
spec.summary = 'An open-source C++ library developed and used at Facebook.' spec.summary = 'An open-source C++ library developed and used at Facebook.'
@@ -14,8 +14,8 @@ Pod::Spec.new do |spec|
:tag => "v2019.03.25.00"} :tag => "v2019.03.25.00"}
spec.module_name = 'folly' spec.module_name = 'folly'
spec.dependency 'boost-for-react-native' spec.dependency 'boost-for-react-native'
spec.dependency 'DoubleConversion' spec.dependency 'Flipper-Glog'
spec.dependency 'glog' spec.dependency 'Flipper-DoubleConversion'
spec.dependency 'OpenSSL-Universal', '1.0.2.19' spec.dependency 'OpenSSL-Universal', '1.0.2.19'
spec.dependency 'CocoaLibEvent', '~> 1.0' 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 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
@@ -90,8 +90,7 @@ Pod::Spec.new do |spec|
spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
"ARCHS" => "${ARCHS_STANDARD_64_BIT}", "ARCHS" => "${ARCHS_STANDARD_64_BIT}",
"CLANG_CXX_LANGUAGE_STANDARD" => "c++11", "CLANG_CXX_LANGUAGE_STANDARD" => "c++11",
"HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/DoubleConversion\"" "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)\" \"$(PODS_ROOT)/boost-for-react-native\" \"$(PODS_ROOT)/Flipper-DoubleConversion\""
} }
# Pinning to the same version as React.podspec.
spec.platforms = { :ios => "8.0"} spec.platforms = { :ios => "8.0"}
end end

View File

@@ -0,0 +1,38 @@
# Copyright (c) Facebook, Inc. and its affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
Pod::Spec.new do |spec|
spec.name = 'Flipper-Glog'
spec.version = '0.3.6'
spec.license = { :type => 'Google', :file => 'COPYING' }
spec.homepage = 'https://github.com/google/glog'
spec.summary = 'Google logging module'
spec.authors = 'Google'
spec.prepare_command = File.read("./scripts/ios-configure-glog.sh")
spec.source = { :git => 'https://github.com/google/glog.git',
:tag => "v0.3.5" }
spec.module_name = 'glog'
spec.header_dir = 'glog'
spec.source_files = 'src/glog/*.h',
'src/demangle.cc',
'src/logging.cc',
'src/raw_logging.cc',
'src/signalhandler.cc',
'src/symbolize.cc',
'src/utilities.cc',
'src/vlog_is_on.cc'
# workaround for https://github.com/facebook/react-native/issues/14326
spec.preserve_paths = 'src/*.h',
'src/base/*.h'
spec.exclude_files = "src/windows/**/*"
spec.libraries = "stdc++"
spec.compiler_flags = '-Wno-shorten-64-to-32'
spec.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
"HEADER_SEARCH_PATHS" => "$(PODS_TARGET_SRCROOT)/src" }
spec.platforms = { :ios => "8.0", :tvos => "8.0" }
end

View File

@@ -0,0 +1,63 @@
#!/bin/bash
# Copyright (c) Facebook, Inc. and its affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
set -e
PLATFORM_NAME="${PLATFORM_NAME:-iphoneos}"
CURRENT_ARCH="${CURRENT_ARCH}"
if [ -z "$CURRENT_ARCH" ] || [ "$CURRENT_ARCH" == "undefined_arch" ]; then
# Xcode 10 beta sets CURRENT_ARCH to "undefined_arch", this leads to incorrect linker arg.
# it's better to rely on platform name as fallback because architecture differs between simulator and device
if [[ "$PLATFORM_NAME" == *"simulator"* ]]; then
CURRENT_ARCH="x86_64"
else
CURRENT_ARCH="armv7"
fi
fi
export CC="$(xcrun -find -sdk $PLATFORM_NAME cc) -arch $CURRENT_ARCH -isysroot $(xcrun -sdk $PLATFORM_NAME --show-sdk-path)"
export CXX="$CC"
# Remove automake symlink if it exists
if [ -h "test-driver" ]; then
rm test-driver
fi
./configure --host arm-apple-darwin
# Fix build for tvOS
cat << EOF >> src/config.h
/* Add in so we have Apple Target Conditionals */
#ifdef __APPLE__
#include <TargetConditionals.h>
#include <Availability.h>
#endif
/* Special configuration for AppleTVOS */
#if TARGET_OS_TV
#undef HAVE_SYSCALL_H
#undef HAVE_SYS_SYSCALL_H
#undef OS_MACOSX
#endif
/* Special configuration for ucontext */
#undef HAVE_UCONTEXT_H
#undef PC_FROM_UCONTEXT
#if defined(__x86_64__)
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__rip
#elif defined(__i386__)
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__eip
#endif
EOF
# Prepare exported header include
EXPORTED_INCLUDE_DIR="exported/glog"
mkdir -p exported/glog
cp -f src/glog/log_severity.h "$EXPORTED_INCLUDE_DIR/"
cp -f src/glog/logging.h "$EXPORTED_INCLUDE_DIR/"
cp -f src/glog/raw_logging.h "$EXPORTED_INCLUDE_DIR/"
cp -f src/glog/stl_logging.h "$EXPORTED_INCLUDE_DIR/"
cp -f src/glog/vlog_is_on.h "$EXPORTED_INCLUDE_DIR/"

View File

@@ -410,7 +410,6 @@
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
"-l\"c++\"", "-l\"c++\"",
"-l\"glog\"",
"-l\"stdc++\"", "-l\"stdc++\"",
"-framework", "-framework",
"\"CFNetwork\"", "\"CFNetwork\"",
@@ -503,7 +502,6 @@
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
"-l\"c++\"", "-l\"c++\"",
"-l\"glog\"",
"-l\"stdc++\"", "-l\"stdc++\"",
"-framework", "-framework",
"\"CFNetwork\"", "\"CFNetwork\"",

View File

@@ -362,7 +362,6 @@
"-l\"event_core\"", "-l\"event_core\"",
"-l\"event_extra\"", "-l\"event_extra\"",
"-l\"event_pthreads\"", "-l\"event_pthreads\"",
"-l\"glog\"",
"-l\"ssl\"", "-l\"ssl\"",
"-l\"stdc++\"", "-l\"stdc++\"",
"-framework", "-framework",
@@ -415,7 +414,6 @@
"-l\"event_core\"", "-l\"event_core\"",
"-l\"event_extra\"", "-l\"event_extra\"",
"-l\"event_pthreads\"", "-l\"event_pthreads\"",
"-l\"glog\"",
"-l\"ssl\"", "-l\"ssl\"",
"-l\"stdc++\"", "-l\"stdc++\"",
"-framework", "-framework",

View File

@@ -18,8 +18,8 @@ target 'Tutorial' do
# it's dependencies to be static and all other pods to # it's dependencies to be static and all other pods to
# be dynamic. # be dynamic.
$static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly', $static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly',
'CocoaAsyncSocket', 'ComponentKit', 'DoubleConversion', 'CocoaAsyncSocket', 'ComponentKit', 'Flipper-DoubleConversion',
'glog', 'Flipper-PeerTalk', 'Flipper-RSocket', 'Yoga', 'YogaKit', 'Flipper-Glog', 'Flipper-PeerTalk', 'Flipper-RSocket', 'Yoga', 'YogaKit',
'CocoaLibEvent', 'OpenSSL-Universal', 'boost-for-react-native'] 'CocoaLibEvent', 'OpenSSL-Universal', 'boost-for-react-native']
pre_install do |installer| pre_install do |installer|