Use modern Android libc++ in Yoga and React Native OSS (#39795)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39795 X-link: https://github.com/facebook/yoga/pull/1412 Android NDK 25 uses a version of libc++ that is more than three years old, missing a lot of basic features of C++ 20. This is rectified in NDK 26 (latest LTS NDK), which brings us up to date with latest Clang (17, released this year), and adds a new policy where future NDK versions will bump libc++ as part of bumping LLVM/Clang. This requires an a beta AGP version (and corresponding Android Studio Preview). Based on how far we are historically, it wouldn't be a surprise if we see the stable release this month (well before the RN 0.74/Yoga 3.0 cut, even in the worse case). Changelog: [Android][Changed] - Use NDK 26 Reviewed By: yungsters Differential Revision: D49895949 fbshipit-source-id: 37bb4d1fdf81137be7f14f6675b4e079c6f861e4
This commit is contained in:
Родитель
aefefdbbba
Коммит
9ce7b56413
|
@ -30,7 +30,7 @@ version =
|
|||
group = "com.facebook.react"
|
||||
|
||||
val ndkPath by extra(System.getenv("ANDROID_NDK"))
|
||||
val ndkVersion by extra(System.getenv("ANDROID_NDK_VERSION") ?: "25.1.8937393")
|
||||
val ndkVersion by extra(System.getenv("ANDROID_NDK_VERSION") ?: "26.0.10792818")
|
||||
val sonatypeUsername = findProperty("SONATYPE_USERNAME")?.toString()
|
||||
val sonatypePassword = findProperty("SONATYPE_PASSWORD")?.toString()
|
||||
|
||||
|
@ -106,11 +106,11 @@ if (project.findProperty("react.internal.useHermesNightly")?.toString()?.toBoole
|
|||
"""
|
||||
********************************************************************************
|
||||
INFO: You're using Hermes from nightly as you set
|
||||
|
||||
|
||||
react.internal.useHermesNightly=true
|
||||
|
||||
|
||||
in the ./gradle.properties file.
|
||||
|
||||
|
||||
That's fine for local development, but you should not commit this change.
|
||||
********************************************************************************
|
||||
"""
|
||||
|
|
|
@ -525,7 +525,6 @@ android {
|
|||
"-DREACT_BUILD_DIR=$buildDir",
|
||||
"-DANDROID_STL=c++_shared",
|
||||
"-DANDROID_TOOLCHAIN=clang",
|
||||
"-DANDROID_PLATFORM=android-21",
|
||||
// Due to https://github.com/android/ndk/issues/1693 we're losing Android
|
||||
// specific compilation flags. This can be removed once we moved to NDK 25/26
|
||||
"-DANDROID_USE_LEGACY_TOOLCHAIN_FILE=ON"
|
||||
|
|
|
@ -11,6 +11,7 @@ add_compile_options(
|
|||
-O2
|
||||
-Wno-unused-function
|
||||
-Wno-unneeded-internal-declaration
|
||||
-Wno-array-parameter # Fixed in 2.2.1 (not yet released)
|
||||
-std=c11)
|
||||
|
||||
add_library(event
|
||||
|
|
|
@ -352,7 +352,7 @@ CommitStatus ShadowTree::commit(
|
|||
const CommitOptions& commitOptions) const {
|
||||
SystraceSection s("ShadowTree::commit");
|
||||
|
||||
int attempts = 0;
|
||||
[[maybe_unused]] int attempts = 0;
|
||||
|
||||
while (true) {
|
||||
attempts++;
|
||||
|
|
|
@ -5,7 +5,7 @@ targetSdk = "34"
|
|||
compileSdk = "34"
|
||||
buildTools = "34.0.0"
|
||||
# Dependencies versions
|
||||
agp = "8.1.1"
|
||||
agp = "8.2.0-beta06"
|
||||
androidx-annotation = "1.6.0"
|
||||
androidx-appcompat = "1.6.1"
|
||||
androidx-autofill = "1.1.0"
|
||||
|
|
|
@ -6,7 +6,7 @@ buildscript {
|
|||
minSdkVersion = 23
|
||||
compileSdkVersion = 34
|
||||
targetSdkVersion = 34
|
||||
ndkVersion = "25.1.8937393"
|
||||
ndkVersion = "26.0.10792818"
|
||||
kotlinVersion = "1.8.0"
|
||||
}
|
||||
repositories {
|
||||
|
|
Загрузка…
Ссылка в новой задаче