From cea7f39a9fb7f4cbe66fbe2f2719ffef45d737ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Sat, 26 Sep 2026 15:13:25 -0700 Subject: [PATCH] build: use React Native compiler options on Android --- .../react-native-nitro-modules/android/CMakeLists.txt | 3 +++ .../react-native-nitro-modules/android/build.gradle | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/react-native-nitro-modules/android/CMakeLists.txt b/packages/react-native-nitro-modules/android/CMakeLists.txt index ea389a8b0..45113d968 100644 --- a/packages/react-native-nitro-modules/android/CMakeLists.txt +++ b/packages/react-native-nitro-modules/android/CMakeLists.txt @@ -18,6 +18,9 @@ add_library(NitroModules SHARED ${android_files} ) +include("${REACT_NATIVE_DIR}/ReactCommon/cmake-utils/react-native-flags.cmake") +target_compile_reactnative_options(NitroModules PRIVATE) + set(NITRO_SANITIZER "" CACHE STRING "Native sanitizer") if(NITRO_SANITIZER STREQUAL "address") target_compile_options(NitroModules PUBLIC -fsanitize=address -fno-omit-frame-pointer) diff --git a/packages/react-native-nitro-modules/android/build.gradle b/packages/react-native-nitro-modules/android/build.gradle index f564aad07..1363e04c2 100644 --- a/packages/react-native-nitro-modules/android/build.gradle +++ b/packages/react-native-nitro-modules/android/build.gradle @@ -36,6 +36,15 @@ def getExtOrIntegerDefault(name) { return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["Nitro_" + name]).toInteger() } +def reactNativePackageOutput = providers.exec { + workingDir(rootDir) + commandLine("node", "--print", "require.resolve('react-native/package.json')") +} +def reactNativePackagePath = reactNativePackageOutput.standardOutput.asText.get() +reactNativePackagePath = reactNativePackagePath.trim() +def reactNativePackageFile = file(reactNativePackagePath) +def reactNativeDir = reactNativePackageFile.parentFile.absolutePath + logger.warn("[NitroModules] 🔥 Your app is boosted by nitro modules!") android { @@ -52,7 +61,7 @@ android { externalNativeBuild { cmake { cppFlags "-frtti -fexceptions -Wall -Wextra -fstack-protector-all" - arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON", "-DNITRO_SANITIZER=${rootProject.findProperty('nitroSanitizer') ?: ''}" + arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON", "-DNITRO_SANITIZER=${rootProject.findProperty('nitroSanitizer') ?: ''}", "-DREACT_NATIVE_DIR=${reactNativeDir}" abiFilters (*reactNativeArchitectures()) buildTypes {