mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-01-12 22:50:10 +08:00
Upgrade folly to v2018.10.22.00 for Android (#21977)
Summary: Fixes #20302 (For Android) Note: ------ 1. New folly will have build break for a gcc-4.9 and gcc-4.9 seems to be deprecated for latest folly. As we only use partial folly implementations, I just fixed the build break part. To support building RN on Windows, the patches are written by gradle ReplaceTokens. 2. The change for glog copying header into exported/ is to prevent build break for folly. `folly/detail/Demangle.h` will try to use libstdc++'s demangle.h. Unfortunately, glog also has a demangle.h in source code. So I copy exported headers and only search headers in exported/ folder during build. Pull Request resolved: https://github.com/facebook/react-native/pull/21977 Reviewed By: hramos Differential Revision: D12818133 Pulled By: fkgozali fbshipit-source-id: 2c1f6f012663204581a86141d0c9ed0eb9d8c698
This commit is contained in:
committed by
Facebook Github Bot
parent
1eedf05651
commit
a316dc6ec3
@@ -86,6 +86,17 @@ task prepareFolly(dependsOn: dependenciesPath ? [] : [downloadFolly], type: Copy
|
||||
include "folly-${FOLLY_VERSION}/folly/**/*", 'Android.mk'
|
||||
eachFile {fname -> fname.path = (fname.path - "folly-${FOLLY_VERSION}/")}
|
||||
includeEmptyDirs = false
|
||||
|
||||
// Patch for folly build break on gcc 4.9 and could be removed after build by clang
|
||||
filesMatching('**/container/detail/F14Policy.h') {
|
||||
filter(ReplaceTokens, tokens: [
|
||||
'ObjectHolder(Args&&... args) : value_{std::forward<Args>(args)...} {}': 'ObjectHolder(Args&&... args) : value_({std::forward<Args>(args)...}) {}',
|
||||
'ObjectHolder(Args&&... args) : T{std::forward<Args>(args)...} {}': 'ObjectHolder(Args&&... args) : T({std::forward<Args>(args)...}) {}',
|
||||
],
|
||||
beginToken: '',
|
||||
endToken: '')
|
||||
}
|
||||
|
||||
into "$thirdPartyNdkDir/folly"
|
||||
}
|
||||
|
||||
@@ -124,6 +135,14 @@ task prepareGlog(dependsOn: dependenciesPath ? [] : [downloadGlog], type: Copy)
|
||||
it.path = (it.name - '.in')
|
||||
}
|
||||
into "$thirdPartyNdkDir/glog"
|
||||
|
||||
doLast {
|
||||
copy {
|
||||
from fileTree(dir: "$thirdPartyNdkDir/glog", includes: ["stl_logging.h", "logging.h", "raw_logging.h", "vlog_is_on.h", "**/glog/log_severity.h"]).files
|
||||
includeEmptyDirs = false
|
||||
into "$thirdPartyNdkDir/glog/exported/glog"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task downloadJSCHeaders(type: Download) {
|
||||
|
||||
@@ -17,5 +17,5 @@ OKHTTP_VERSION=3.11.0
|
||||
|
||||
BOOST_VERSION=1_63_0
|
||||
DOUBLE_CONVERSION_VERSION=1.1.6
|
||||
FOLLY_VERSION=2016.10.31.00
|
||||
FOLLY_VERSION=2018.10.22.00
|
||||
GLOG_VERSION=0.3.5
|
||||
|
||||
@@ -2,20 +2,35 @@ LOCAL_PATH:= $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_SRC_FILES:= \
|
||||
folly/json.cpp \
|
||||
folly/Unicode.cpp \
|
||||
folly/Conv.cpp \
|
||||
folly/Demangle.cpp \
|
||||
folly/detail/MallocImpl.cpp \
|
||||
folly/StringBase.cpp \
|
||||
folly/dynamic.cpp \
|
||||
folly/json.cpp \
|
||||
folly/Unicode.cpp \
|
||||
folly/Conv.cpp \
|
||||
folly/Demangle.cpp \
|
||||
folly/memory/detail/MallocImpl.cpp \
|
||||
folly/String.cpp \
|
||||
folly/dynamic.cpp \
|
||||
folly/Format.cpp \
|
||||
folly/json_pointer.cpp \
|
||||
folly/lang/ColdClass.cpp \
|
||||
folly/detail/Demangle.cpp \
|
||||
folly/hash/SpookyHashV2.cpp \
|
||||
folly/container/detail/F14Table.cpp \
|
||||
folly/ScopeGuard.cpp \
|
||||
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)
|
||||
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
|
||||
|
||||
LOCAL_CFLAGS += -fexceptions -fno-omit-frame-pointer -frtti
|
||||
LOCAL_CFLAGS += -fexceptions -fno-omit-frame-pointer -frtti -Wno-sign-compare
|
||||
|
||||
FOLLY_FLAGS := \
|
||||
-DFOLLY_NO_CONFIG=1 \
|
||||
-DFOLLY_HAVE_CLOCK_GETTIME=1 \
|
||||
-DFOLLY_HAVE_MEMRCHR=1 \
|
||||
|
||||
# If APP_PLATFORM in Application.mk targets android-23 above, please comment this line.
|
||||
# NDK uses GNU style stderror_r() after API 23.
|
||||
FOLLY_FLAGS += -DFOLLY_HAVE_XSI_STRERROR_R=1
|
||||
|
||||
FOLLY_FLAGS := -DFOLLY_NO_CONFIG=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -DFOLLY_HAVE_MEMRCHR=1
|
||||
LOCAL_CFLAGS += $(FOLLY_FLAGS)
|
||||
|
||||
LOCAL_EXPORT_CPPFLAGS := $(FOLLY_FLAGS)
|
||||
|
||||
@@ -13,7 +13,7 @@ LOCAL_SRC_FILES := \
|
||||
|
||||
LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/.. $(LOCAL_PATH)/glog-0.3.5/src/
|
||||
|
||||
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/.. $(LOCAL_PATH)/glog-0.3.5/src/
|
||||
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/exported
|
||||
|
||||
LOCAL_CFLAGS += \
|
||||
-Wwrite-strings \
|
||||
@@ -28,4 +28,4 @@ LOCAL_CFLAGS += \
|
||||
|
||||
LOCAL_MODULE := glog
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
Reference in New Issue
Block a user