Update to Android NDK r28 (#710)

This commit is contained in:
rocka 2025-04-07 00:14:39 +08:00 committed by GitHub
parent d819a914a0
commit cbf7682bb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
30 changed files with 59 additions and 77 deletions

View File

@ -90,6 +90,11 @@ jobs:
(.versionCode = $versionCode) |=
(.commit = \"$commitHash\")
" $metadata
# TODO: remove this afterwards
# https://github.com/orgs/community/discussions/26676
yq -i ".Builds[0] |=
(.commit = \"${{ github.event.pull_request.head.sha }}\")
" $metadata
prebuiltTreeURL=$(curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ github.token }}" \

View File

@ -7,22 +7,17 @@ on:
jobs:
develop:
strategy:
matrix:
os:
- ubuntu-24.04
- macos-14
runs-on: ${{ matrix.os }}
runs-on: ubuntu-24.04
steps:
- name: Fetch source code
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- uses: cachix/install-nix-action@v30
- uses: cachix/install-nix-action@v31
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
- uses: cachix/cachix-action@v15
- uses: cachix/cachix-action@v16
with:
name: fcitx5-android
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"

View File

@ -32,7 +32,7 @@ jobs:
- name: Setup Android environment
uses: android-actions/setup-android@v3
with:
packages: cmake;3.22.1
packages: cmake;3.31.6
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

View File

@ -37,7 +37,7 @@ jobs:
- name: Install Android NDK
run: |
sdkmanager --install "cmake;3.22.1"
sdkmanager --install "cmake;3.31.6"
- name: Install system dependencies (Ubuntu)
if: ${{ startsWith(matrix.os, 'ubuntu') }}

1
.gitmodules vendored
View File

@ -4,6 +4,7 @@
[submodule "lib/fcitx5/src/main/cpp/prebuilt"]
path = lib/fcitx5/src/main/cpp/prebuilt
url = https://github.com/fcitx5-android/prebuilt.git
shallow = true
[submodule "lib/fcitx5-lua/src/main/cpp/fcitx5-lua"]
path = lib/fcitx5-lua/src/main/cpp/fcitx5-lua
url = https://github.com/fcitx/fcitx5-lua.git

View File

@ -21,9 +21,9 @@ Builds:
sudo:
- apt-get update
- apt-get install -y g++ libtool make automake gettext bzip2 xz-utils zstd pkg-config
cmake extra-cmake-modules ninja-build libfmt-dev libboost-all-dev libfcitx5utils-dev opencc
ghc cabal-install libghc-shake-dev libghc-aeson-pretty-dev libghc-js-flot-data
haskell-js-dgtable-utils fcitx5-modules python-is-python3
cmake extra-cmake-modules ninja-build libfmt-dev libsystemd-dev libboost-all-dev
ghc cabal-install libghc-shake-dev libghc-aeson-pretty-dev libghc-js-flot-data haskell-js-dgtable-utils
python-is-python3 opencc
gradle:
- yes
binary: https://jenkins.fcitx-im.org/job/android/job/fcitx5-android/lastSuccessfulBuild/artifact/out/org.fcitx.fcitx5.android-%v-%abi-release.apk
@ -32,7 +32,7 @@ Builds:
rm:
- lib/fcitx5/src/main/cpp/prebuilt
prebuild:
- sdkmanager 'cmake;3.22.1'
- sdkmanager 'cmake;3.31.6'
- sed -i -e '/ImportQualifiedPost/d' $$fcitx5-android-prebuilder$$/src/Main.hs
- sed -i -e 's/import \(.*\) qualified as/import qualified \1 as/g' $$fcitx5-android-prebuilder$$/src/*.hs
- sed -i -e 's|https://maven.pkg.github.com|https://jitpack.io|g' ../build-logic/convention/build.gradle.kts
@ -43,12 +43,11 @@ Builds:
- build-logic/convention/build
build:
- pushd $$fcitx5-android-prebuilder$$
- ABI=%abi ANDROID_NDK_ROOT=$$NDK$$ CMAKE_VERSION=3.22.1 ANDROID_PLATFORM=23
COMP_SPELL_DICT=/usr/lib/x86_64-linux-gnu/fcitx5/libexec/comp-spell-dict
./build-cabal -j spell-dict fmt libuv libintl-lite boost marisa opencc libime lua chinese-addons-data zstd
- ABI=%abi ANDROID_NDK_ROOT=$$NDK$$ CMAKE_VERSION=3.31.6 ANDROID_PLATFORM=23
./build-cabal -j app
- popd
- mv $$fcitx5-android-prebuilder$$/build ../lib/fcitx5/src/main/cpp/prebuilt
ndk: 25.2.9519653
ndk: 28.0.13004108
gradleprops:
- buildABI=%abi
- buildTimestamp=%ts

View File

@ -31,10 +31,6 @@ add_subdirectory(androidfrontend)
add_subdirectory(androidkeyboard)
add_subdirectory(androidnotification)
# prebuilt fmt
set(fmt_DIR "${PREBUILT_DIR}/fmt/${ANDROID_ABI}/lib/cmake/fmt")
find_package(fmt)
# prebuilt libuv
set(libuv_DIR "${PREBUILT_DIR}/libuv/${ANDROID_ABI}/lib/cmake/libuv")
find_package(libuv)
@ -46,7 +42,7 @@ find_package(Boost 1.86.0 REQUIRED COMPONENTS headers iostreams CONFIG)
set(CHINESE_ADDONS_PINYIN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../../lib/fcitx5-chinese-addons/src/main/cpp/fcitx5-chinese-addons/im/pinyin")
add_library(pinyin-customphrase STATIC "${CHINESE_ADDONS_PINYIN_DIR}/customphrase.cpp")
target_include_directories(pinyin-customphrase INTERFACE "${CHINESE_ADDONS_PINYIN_DIR}")
target_link_libraries(pinyin-customphrase PRIVATE fmt::fmt-header-only Fcitx5::Utils LibIME::Core)
target_link_libraries(pinyin-customphrase PRIVATE Fcitx5::Utils LibIME::Core)
add_library(native-lib SHARED native-lib.cpp)
target_link_libraries(native-lib

View File

@ -12,8 +12,8 @@ object Versions {
const val minSdk = 23
const val targetSdk = 35
const val defaultCMake = "3.22.1"
const val defaultNDK = "25.2.9519653"
const val defaultCMake = "3.31.6"
const val defaultNDK = "28.0.13004108"
const val defaultBuildTools = "35.0.1"
// NOTE: increase this value to bump version code

18
flake.lock generated
View File

@ -3,11 +3,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
@ -21,11 +21,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -36,11 +36,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1730785428,
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"lastModified": 1743583204,
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
"type": "github"
},
"original": {

View File

@ -30,11 +30,11 @@
# Update versions here
# This should match to build-logic/convention/src/main/kotlin/Versions.kt
cmakeVersion = "3.22.1";
buildToolsVersion = "35.0.0";
cmakeVersion = "3.31.6";
buildToolsVersion = "35.0.1";
platformToolsVersion = "35.0.2";
platformVersion = "35";
ndkVersion = "25.2.9519653";
ndkVersion = "28.0.13004108";
includeNDK = true;
androidComposition = final.androidenv.composeAndroidPackages {

View File

@ -1,9 +1,9 @@
[versions]
androidGradlePlugin = "8.8.2"
kotlin = "2.1.10"
ksp = "2.1.10-1.0.31"
androidGradlePlugin = "8.9.1"
kotlin = "2.1.20"
ksp = "2.1.20-1.0.31"
lifecycle = "2.8.7"
navigation = "2.8.8"
navigation = "2.8.9"
room = "2.6.1"
splitties = "3.0.0"
aboutlibraries = "11.6.3"

View File

@ -31,13 +31,10 @@ find_package(Fcitx5ModuleLuaAddonLoader MODULE)
# dummy target to export src/main/cpp/cmake
add_custom_target(cmake)
# prebuilt fmt
set(fmt_DIR "${PREBUILT_DIR}/fmt/${ANDROID_ABI}/lib/cmake/fmt")
find_package(fmt)
# prebuilt boost
list(APPEND CMAKE_FIND_ROOT_PATH "${PREBUILT_DIR}/boost/${ANDROID_ABI}/lib/cmake")
find_package(Boost 1.86.0 REQUIRED COMPONENTS iostreams CONFIG)
find_package(Boost 1.87.0 REQUIRED COMPONENTS iostreams CONFIG)
add_compile_definitions("BOOST_ALL_NO_EMBEDDED_GDB_SCRIPTS")
# prebuilt marisa-tire, OpenCC needs it
set(marisa_DIR "${PREBUILT_DIR}/marisa/${ANDROID_ABI}/lib/cmake/marisa")

@ -1 +1 @@
Subproject commit 4e6ba3e12aa0d48fb4599030092073adbbf4070d
Subproject commit 12d6bdff68123c38d60964c7e211c7929a088a16

View File

@ -17,10 +17,6 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
# cmake/FindECM.cmake
find_package(ECM)
# prebuilt fmt
set(fmt_DIR "${PREBUILT_DIR}/fmt/${ANDROID_ABI}/lib/cmake/fmt")
find_package(fmt)
# prebuilt libintl-lite
set(LibIntl_DIR "${PREBUILT_DIR}/libintl-lite/${ANDROID_ABI}/lib/cmake")
find_package(LibIntl)

@ -1 +1 @@
Subproject commit 7745ce431ec7140a88437aa6b62ef7852d2232fa
Subproject commit b4405d70a6d58ac94b9f06a446e84f777ea5f3b7

@ -1 +1 @@
Subproject commit 498e68f9af9ce3ce4d81b337ecefa6c8f3bdfa72
Subproject commit 2936527dfd5209ee3d96fc25e6d1b1fb0673669a

View File

@ -16,13 +16,10 @@ find_package(Fcitx5Utils MODULE)
# dummy target to export src/main/cpp/cmake
add_custom_target(cmake)
# prebuilt fmt
set(fmt_DIR "${PREBUILT_DIR}/fmt/${ANDROID_ABI}/lib/cmake/fmt")
find_package(fmt)
# prebuilt boost
list(APPEND CMAKE_FIND_ROOT_PATH "${PREBUILT_DIR}/boost/${ANDROID_ABI}/lib/cmake")
find_package(Boost 1.86.0 REQUIRED COMPONENTS iostreams CONFIG)
find_package(Boost 1.87.0 REQUIRED COMPONENTS iostreams CONFIG)
add_compile_definitions("BOOST_ALL_NO_EMBEDDED_GDB_SCRIPTS")
# prebuilt zstd
set(zstd_DIR "${PREBUILT_DIR}/zstd/${ANDROID_ABI}/lib/cmake/zstd")

View File

@ -6,7 +6,9 @@ find_package(libime REQUIRED CONFIG)
if (NOT TARGET LibIME::Core)
# fix target dependency
set_target_properties(libime::IMECore PROPERTIES INTERFACE_LINK_LIBRARIES fcitx5::Fcitx5Utils)
set_target_properties(libime::IMECore PROPERTIES
INTERFACE_LINK_LIBRARIES "fcitx5::Fcitx5Utils;Boost::boost"
)
# fix target name
add_library(LibIME::Core ALIAS libime::IMECore)
endif()

View File

@ -8,7 +8,6 @@ find_package(LibIMECore MODULE)
if (NOT TARGET LibIME::Pinyin)
# fix target dependency
set_target_properties(libime::IMEPinyin PROPERTIES INTERFACE_LINK_LIBRARIES fcitx5::Fcitx5Utils)
set_target_properties(libime::IMEPinyin PROPERTIES INTERFACE_LINK_LIBRARIES libime::IMECore)
# fix target name
add_library(LibIME::Pinyin ALIAS libime::IMEPinyin)

View File

@ -8,8 +8,7 @@ find_package(LibIMECore MODULE)
if (NOT TARGET LibIME::Table)
# fix target dependency
set_target_properties(libime::IMETable PROPERTIES INTERFACE_LINK_LIBRARIES fcitx5::Fcitx5Utils)
set_target_properties(libime::IMEPinyin PROPERTIES INTERFACE_LINK_LIBRARIES libime::IMECore)
set_target_properties(libime::IMETable PROPERTIES INTERFACE_LINK_LIBRARIES libime::IMECore)
# fix target name
add_library(LibIME::Table ALIAS libime::IMETable)
endif()

@ -1 +1 @@
Subproject commit 58414fc0d42c4a59881e929f0dd8cb070b2da509
Subproject commit 020b4573ff13e7e0f474e587dd26c2f5eea55373

@ -1 +1 @@
Subproject commit bd595148534b547fc93306988dc2b4a915dd4215
Subproject commit d240b95acb16cb54fff57bae8844e2925f6fd8fc

@ -1 +1 @@
Subproject commit b935388cbae3ed9c4441bd81ff46473df5bf8faf
Subproject commit 45300f3fdbccf816ef63a2bfa90f16f694bb6cf9

View File

@ -26,13 +26,10 @@ set(CMAKE_MODULE_PATH ${FCITX5_CHINESE_ADDONS_CMAKE_MODULES} ${CMAKE_MODULE_PATH
find_package(Fcitx5ModulePunctuation MODULE)
# prebuilt fmt
set(fmt_DIR "${PREBUILT_DIR}/fmt/${ANDROID_ABI}/lib/cmake/fmt")
find_package(fmt)
# prebuilt boost
list(APPEND CMAKE_FIND_ROOT_PATH "${PREBUILT_DIR}/boost/${ANDROID_ABI}/lib/cmake")
find_package(Boost 1.86.0 REQUIRED COMPONENTS iostreams CONFIG)
find_package(Boost 1.87.0 REQUIRED COMPONENTS iostreams CONFIG)
add_compile_definitions("BOOST_ALL_NO_EMBEDDED_GDB_SCRIPTS")
# prebuilt zstd
set(zstd_DIR "${PREBUILT_DIR}/zstd/${ANDROID_ABI}/lib/cmake/zstd")

@ -1 +1 @@
Subproject commit 7ad0e426f9af2105033bd1afe52c0cb3057b127e
Subproject commit eeb43c90fa6ef38f4983b12344a6606cfcf7380d

View File

@ -34,9 +34,8 @@ set_target_properties(Rime_static PROPERTIES
# https://github.com/rime/librime/blob/1.9.0/src/rime_api.h#L663
# https://stackoverflow.com/questions/805555/ld-linker-question-the-whole-archive-option
# use $<LINK_LIBRARY:WHOLE_ARCHIVE,Rime_static> when cmake updated to 3.24+
# https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#link-features
set(RIME_TARGET "-Wl,--whole-archive" Rime_static "-Wl,--no-whole-archive")
set(RIME_TARGET $<LINK_LIBRARY:WHOLE_ARCHIVE,Rime_static>)
set(RIME_DATA_DIR "${CMAKE_INSTALL_DATADIR}/rime-data")
add_subdirectory(fcitx5-rime)

@ -1 +1 @@
Subproject commit 9155bf3ffc5bb42460d87303332d0cf5b8481ecc
Subproject commit 81c0a15b4a201a0bc17a5e1c8161696267d16dca

@ -1 +1 @@
Subproject commit 13674aadebc482e418067c1980c7f69bf4a30f90
Subproject commit 46f14a56244ddeeba173dbe5415f868cdff8ea56

@ -1 +1 @@
Subproject commit ca2953c8acf967eb87c7ea8eef8558709d7e503c
Subproject commit e8d2a893d2834f1b408c6351718428fe17f0dfba

@ -1 +1 @@
Subproject commit 3157f28506e15a04a6e4a28bf6afaba8f1f0b418
Subproject commit 5130b0f48981242d9934ea5369a3fdaece48f446