From 719a929354be4d4c511cbc76223524c03176cb1f Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Mon, 13 Oct 2025 09:34:29 +0200 Subject: [PATCH 1/4] Support 16KB-aligned pages with NDK 27+ --- .changeset/early-tips-reply.md | 5 +++++ android/build.gradle | 2 ++ tests/android/build.gradle | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/early-tips-reply.md diff --git a/.changeset/early-tips-reply.md b/.changeset/early-tips-reply.md new file mode 100644 index 0000000..a64d789 --- /dev/null +++ b/.changeset/early-tips-reply.md @@ -0,0 +1,5 @@ +--- +"@journeyapps/react-native-quick-sqlite": patch +--- + +Support 16KB page sizes when building with NDK version 27+ diff --git a/android/build.gradle b/android/build.gradle index 627f93f..3eeb699 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -76,6 +76,8 @@ android { externalNativeBuild { cmake { cppFlags "-O2", "-fexceptions", "-frtti", "-std=c++1y", "-DONANDROID" + // For 16KB-aligned pages with NDK r27: https://developer.android.com/guide/practices/page-sizes#groovy_1 + arguments "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' arguments '-DANDROID_STL=c++_shared', "-DSQLITE_FLAGS='${SQLITE_FLAGS ? SQLITE_FLAGS : ''}'", diff --git a/tests/android/build.gradle b/tests/android/build.gradle index a462e3a..ede91b6 100644 --- a/tests/android/build.gradle +++ b/tests/android/build.gradle @@ -8,7 +8,7 @@ buildscript { targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34') kotlinVersion = findProperty('android.kotlinVersion') ?: '1.9.24' - ndkVersion = "26.1.10909125" + ndkVersion = "27.3.13750724" } repositories { google() From 3fd25d6dccfad4c1c496da9fa91b39bc959316be Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Mon, 13 Oct 2025 09:42:32 +0200 Subject: [PATCH 2/4] Update actions deps --- .github/workflows/test.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index a5edcae..30ed82c 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -10,7 +10,7 @@ jobs: env: AVD_NAME: ubuntu-avd-x86_64-31 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: persist-credentials: false @@ -33,13 +33,13 @@ jobs: key: avd-31 - name: Setup NodeJS - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: 18 cache: 'yarn' - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: java-version: 17 distribution: 'adopt' @@ -90,7 +90,7 @@ jobs: name: Test iOS (Only build) runs-on: macOS-13 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: persist-credentials: false @@ -108,7 +108,7 @@ jobs: key: ${{ runner.os }}-${{ hashFiles('tests/ios/Podfile.lock') }} - name: Setup NodeJS - uses: actions/setup-node@v4 + uses: actions/setup-node@v5 with: node-version: 18 cache: 'yarn' From d127fcf9243109060db05f0fbb782af9946ea134 Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Mon, 13 Oct 2025 09:43:56 +0200 Subject: [PATCH 3/4] Skip xcode cache --- .github/workflows/test.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 30ed82c..81b8787 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -95,6 +95,7 @@ jobs: persist-credentials: false - uses: irgaly/xcode-cache@v1 + if: false # Currently broken, see e.g. https://github.com/powersync-ja/react-native-quick-sqlite/actions/runs/18458692696/job/52584961537 with: key: xcode-cache-deriveddata-${{ github.workflow }}-${{ github.sha }} restore-keys: xcode-cache-deriveddata-${{ github.workflow }}- From 55722e8f61fe19675fbc6e2afcea057258e893ed Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Mon, 13 Oct 2025 10:02:03 +0200 Subject: [PATCH 4/4] merge --- android/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 3eeb699..94f14c9 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -76,12 +76,12 @@ android { externalNativeBuild { cmake { cppFlags "-O2", "-fexceptions", "-frtti", "-std=c++1y", "-DONANDROID" - // For 16KB-aligned pages with NDK r27: https://developer.android.com/guide/practices/page-sizes#groovy_1 - arguments "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' arguments '-DANDROID_STL=c++_shared', "-DSQLITE_FLAGS='${SQLITE_FLAGS ? SQLITE_FLAGS : ''}'", - "-DUSE_HERMES=${USE_HERMES}" + "-DUSE_HERMES=${USE_HERMES}", + // For 16KB-aligned pages with NDK r27: https://developer.android.com/guide/practices/page-sizes#groovy_1 + "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" abiFilters (*reactNativeArchitectures()) } }