mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-04-22 04:38:55 +02:00
Merge #17227: Qt: Add Android packaging support
246774e264depends: fix Qt precompiled headers bug (Igor Cota)8e7ad4146ddepends: disable Qt Vulkan support on Android (Igor Cota)ba46adaa1aCI: add Android APK build to cirrus (Igor Cota)7563720e30CI: add Android APK build script (Igor Cota)ebfb10cb75Qt: add Android packaging support (Igor Cota) Pull request description:  This PR is the third and final piece of the basic Android support puzzle - it depends on https://github.com/bitcoin/bitcoin/pull/16110 and is related to https://github.com/bitcoin/bitcoin/pull/16883. It introduces an `android` directory under `qt` and a simple way to build an Android package of `bitcoin-qt`: 1. Build depends for Android as described in the [README](https://github.com/bitcoin/bitcoin/blob/master/depends/README.md) 2. Configure with one of the resulting prefixes 3. Run `make && make apk` in `src/qt` The resulting APK files will be in `android/build/outputs/apk`. You can install them manually or with [adb](https://developer.android.com/studio/command-line/adb). One can also open the `android` directory in Android Studio for that integrated development and debugging experience. `BitcoinQtActivity` is your starting point. Under the hood makefile `apk` target: 1. Renames the `bitcoin-qt` binary to `libbitcoin-qt.so` and copies it over to a folder under `android/libs` depending on which prefix and corresponding [ABI](https://developer.android.com/ndk/guides/abis.html#sa) `bitcoin-qt` was built for 2. Takes `libc++_shared.so` from the Android NDK and puts in the same place. It [must be included](https://developer.android.com/ndk/guides/cpp-support) in the APK 3. Extracts Qt for Android Java support files from the `qtbase` archive in `depends/sources` to `android/src` There is also just a tiny bit of `ifdef`'d code to make the Qt Widgets menus usable. It's not pretty but it works and is a stepping stone towards https://github.com/bitcoin/bitcoin/pull/16883. ACKs for top commit: MarcoFalke: cr ACK246774e264laanwj: Code review ACK246774e264Tree-SHA512: ba30a746576a167545223c35a51ae60bb0838818779fc152c210f5af1413961b2a6ab6af520ff92cbc8dcd5dcb663e81ca960f021218430c1f76397ed4cead6c
This commit is contained in:
@@ -9,7 +9,7 @@ $(package)_qt_libs=corelib network widgets gui plugins testlib
|
||||
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch no-xlib.patch
|
||||
$(package)_patches+= fix_android_qmake_conf.patch fix_android_jni_static.patch dont_hardcode_pwd.patch
|
||||
$(package)_patches+= drop_lrelease_dependency.patch no_sdk_version_check.patch
|
||||
$(package)_patches+= fix_qpainter_non_determinism.patch fix_lib_paths.patch
|
||||
$(package)_patches+= fix_qpainter_non_determinism.patch fix_lib_paths.patch fix_android_pch.patch
|
||||
|
||||
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
||||
$(package)_qttranslations_sha256_hash=e1de58ed108b7e0a138815ea60fd46a2c4e1fc31396a707e5630e92de79c53de
|
||||
@@ -165,6 +165,7 @@ $(package)_config_opts_android += -no-fontconfig
|
||||
$(package)_config_opts_android += -L $(host_prefix)/lib
|
||||
$(package)_config_opts_android += -I $(host_prefix)/include
|
||||
$(package)_config_opts_android += -pch
|
||||
$(package)_config_opts_android += -no-feature-vulkan
|
||||
|
||||
$(package)_config_opts_aarch64_android += -android-arch arm64-v8a
|
||||
$(package)_config_opts_armv7a_android += -android-arch armeabi-v7a
|
||||
@@ -224,6 +225,7 @@ define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_no_printer.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_android_qmake_conf.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_android_jni_static.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_android_pch.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_qpainter_non_determinism.patch &&\
|
||||
patch -p1 -i $($(package)_patch_dir)/no_sdk_version_check.patch && \
|
||||
|
||||
10
depends/patches/qt/fix_android_pch.patch
Normal file
10
depends/patches/qt/fix_android_pch.patch
Normal file
@@ -0,0 +1,10 @@
|
||||
--- old/qtbase/mkspecs/common/android-base-head.conf
|
||||
+++ new/qtbase/mkspecs/common/android-base-head.conf
|
||||
@@ -73,6 +73,6 @@ CROSS_COMPILE = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-
|
||||
QMAKE_PCH_OUTPUT_EXT = .gch
|
||||
|
||||
QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
|
||||
-QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE}
|
||||
+QMAKE_CFLAGS_USE_PRECOMPILE = -include-pch ${QMAKE_PCH_OUTPUT}
|
||||
QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
|
||||
QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
|
||||
Reference in New Issue
Block a user