mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-05 14:06:27 -05:00
build, test, doc: Temporarily remove Android-related stuff
Previously, our Android builds were geared towards generating APKs, which relied on Qt. However, after migrating to C++20, compiling for Android became unfeasible due to Qt 5.15's compatibility limitations with NDK only up to r25, which includes an outdated embedded libc++. All removed stuff will be reinstated after migrating the build system to CMake and upgrading Qt to version 6.x."
This commit is contained in:
parent
00ac1b963d
commit
5deb0b024e
27 changed files with 4 additions and 329 deletions
|
@ -70,8 +70,6 @@ AC_DEFUN([BITCOIN_QT_INIT],[
|
|||
[qt_lib_suffix= ]); bitcoin_qt_want_version=qt5],
|
||||
[qt_lib_suffix= ])
|
||||
|
||||
AS_CASE([$host], [*android*], [qt_lib_suffix=_$ANDROID_ARCH])
|
||||
|
||||
AC_ARG_WITH([qt-incdir],[AS_HELP_STRING([--with-qt-incdir=INC_DIR],[specify qt include path (overridden by pkgconfig)])], [qt_include_path=$withval], [])
|
||||
AC_ARG_WITH([qt-libdir],[AS_HELP_STRING([--with-qt-libdir=LIB_DIR],[specify qt lib path (overridden by pkgconfig)])], [qt_lib_path=$withval], [])
|
||||
AC_ARG_WITH([qt-plugindir],[AS_HELP_STRING([--with-qt-plugindir=PLUGIN_DIR],[specify qt plugin path (overridden by pkgconfig)])], [qt_plugin_path=$withval], [])
|
||||
|
@ -80,19 +78,10 @@ AC_DEFUN([BITCOIN_QT_INIT],[
|
|||
|
||||
AC_ARG_WITH([qtdbus],
|
||||
[AS_HELP_STRING([--with-qtdbus],
|
||||
[enable DBus support (default is yes if qt is enabled and QtDBus is found, except on Android)])],
|
||||
[enable DBus support (default is yes if qt is enabled and QtDBus is found)])],
|
||||
[use_dbus=$withval],
|
||||
[use_dbus=auto])
|
||||
|
||||
dnl Android doesn't support D-Bus and certainly doesn't use it for notifications
|
||||
case $host in
|
||||
*android*)
|
||||
if test "$use_dbus" != "yes"; then
|
||||
use_dbus=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(QT_TRANSLATION_DIR,$qt_translation_path)
|
||||
])
|
||||
|
||||
|
@ -132,16 +121,11 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
|
|||
if test -d "$qt_plugin_path/accessible"; then
|
||||
QT_LIBS="$QT_LIBS -L$qt_plugin_path/accessible"
|
||||
fi
|
||||
if test -d "$qt_plugin_path/platforms/android"; then
|
||||
QT_LIBS="$QT_LIBS -L$qt_plugin_path/platforms/android -lqtfreetype -lEGL"
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_DEFINE([QT_STATICPLUGIN], [1], [Define this symbol if qt plugins are static])
|
||||
if test "$TARGET_OS" != "android"; then
|
||||
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QMinimalIntegrationPlugin], [-lqminimal])
|
||||
AC_DEFINE([QT_QPA_PLATFORM_MINIMAL], [1], [Define this symbol if the minimal qt platform exists])
|
||||
fi
|
||||
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QMinimalIntegrationPlugin], [-lqminimal])
|
||||
AC_DEFINE([QT_QPA_PLATFORM_MINIMAL], [1], [Define this symbol if the minimal qt platform exists])
|
||||
if test "$TARGET_OS" = "windows"; then
|
||||
dnl Linking against wtsapi32 is required. See #17749 and
|
||||
dnl https://bugreports.qt.io/browse/QTBUG-27097.
|
||||
|
@ -160,9 +144,6 @@ AC_DEFUN([BITCOIN_QT_CONFIGURE],[
|
|||
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QCocoaIntegrationPlugin], [-lqcocoa])
|
||||
_BITCOIN_QT_CHECK_STATIC_PLUGIN([QMacStylePlugin], [-lqmacstyle])
|
||||
AC_DEFINE([QT_QPA_PLATFORM_COCOA], [1], [Define this symbol if the qt platform is cocoa])
|
||||
elif test "$TARGET_OS" = "android"; then
|
||||
QT_LIBS="-Wl,--export-dynamic,--undefined=JNI_OnLoad -lplugins_platforms_qtforandroid${qt_lib_suffix} -ljnigraphics -landroid -lqtfreetype${qt_lib_suffix} $QT_LIBS"
|
||||
AC_DEFINE([QT_QPA_PLATFORM_ANDROID], [1], [Define this symbol if the qt platform is android])
|
||||
fi
|
||||
fi
|
||||
CPPFLAGS=$TEMP_CPPFLAGS
|
||||
|
@ -357,9 +338,6 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
|
|||
PKG_CHECK_MODULES([QT_SERVICE], [${qt_lib_prefix}ServiceSupport${qt_lib_suffix}], [QT_LIBS="$QT_SERVICE_LIBS $QT_LIBS"])
|
||||
elif test "$TARGET_OS" = "windows"; then
|
||||
PKG_CHECK_MODULES([QT_WINDOWSUIAUTOMATION], [${qt_lib_prefix}WindowsUIAutomationSupport${qt_lib_suffix}], [QT_LIBS="$QT_WINDOWSUIAUTOMATION_LIBS $QT_LIBS"])
|
||||
elif test "$TARGET_OS" = "android"; then
|
||||
PKG_CHECK_MODULES([QT_EGL], [${qt_lib_prefix}EglSupport${qt_lib_suffix}], [QT_LIBS="$QT_EGL_LIBS $QT_LIBS"])
|
||||
PKG_CHECK_MODULES([QT_SERVICE], [${qt_lib_prefix}ServiceSupport${qt_lib_suffix}], [QT_LIBS="$QT_SERVICE_LIBS $QT_LIBS"])
|
||||
fi
|
||||
])
|
||||
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright (c) 2019-present The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
export LC_ALL=C.UTF-8
|
||||
|
||||
export HOST=aarch64-linux-android
|
||||
export PACKAGES="unzip openjdk-8-jdk gradle"
|
||||
export CONTAINER_NAME=ci_android
|
||||
export CI_IMAGE_NAME_TAG="docker.io/amd64/ubuntu:22.04"
|
||||
|
||||
export RUN_UNIT_TESTS=false
|
||||
export RUN_FUNCTIONAL_TESTS=false
|
||||
|
||||
export ANDROID_API_LEVEL=28
|
||||
export ANDROID_BUILD_TOOLS_VERSION=28.0.3
|
||||
export ANDROID_NDK_VERSION=23.2.8568313
|
||||
export ANDROID_TOOLS_URL=https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip
|
||||
export ANDROID_HOME="${DEPENDS_DIR}/SDKs/android"
|
||||
export ANDROID_NDK_HOME="${ANDROID_HOME}/ndk/${ANDROID_NDK_VERSION}"
|
||||
export DEP_OPTS="ANDROID_SDK=${ANDROID_HOME} ANDROID_NDK=${ANDROID_NDK_HOME} ANDROID_API_LEVEL=${ANDROID_API_LEVEL} ANDROID_TOOLCHAIN_BIN=${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/"
|
||||
|
||||
export BITCOIN_CONFIG="--disable-tests --enable-gui-tests --disable-bench --disable-fuzz-binary --without-utils --without-libs --without-daemon"
|
|
@ -86,14 +86,4 @@ if [ -n "$XCODE_VERSION" ] && [ ! -d "${DEPENDS_DIR}/SDKs/${OSX_SDK_BASENAME}" ]
|
|||
tar -C "${DEPENDS_DIR}/SDKs" -xf "$OSX_SDK_PATH"
|
||||
fi
|
||||
|
||||
if [ -n "$ANDROID_HOME" ] && [ ! -d "$ANDROID_HOME" ]; then
|
||||
ANDROID_TOOLS_PATH=${DEPENDS_DIR}/sdk-sources/android-tools.zip
|
||||
if [ ! -f "$ANDROID_TOOLS_PATH" ]; then
|
||||
${CI_RETRY_EXE} curl --location --fail "${ANDROID_TOOLS_URL}" -o "$ANDROID_TOOLS_PATH"
|
||||
fi
|
||||
mkdir -p "$ANDROID_HOME"
|
||||
unzip -o "$ANDROID_TOOLS_PATH" -d "$ANDROID_HOME"
|
||||
yes | "${ANDROID_HOME}"/cmdline-tools/bin/sdkmanager --sdk_root="${ANDROID_HOME}" --install "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" "platform-tools" "platforms;android-31" "platforms;android-${ANDROID_API_LEVEL}" "ndk;${ANDROID_NDK_VERSION}"
|
||||
fi
|
||||
|
||||
git config --global ${CFG_DONE} "true"
|
||||
|
|
|
@ -26,7 +26,6 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
|
|||
docker volume create "${CONTAINER_NAME}_ccache" || true
|
||||
docker volume create "${CONTAINER_NAME}_depends" || true
|
||||
docker volume create "${CONTAINER_NAME}_depends_sources" || true
|
||||
docker volume create "${CONTAINER_NAME}_depends_SDKs_android" || true
|
||||
docker volume create "${CONTAINER_NAME}_previous_releases" || true
|
||||
|
||||
if [ -n "${RESTART_CI_DOCKER_BEFORE_RUN}" ] ; then
|
||||
|
@ -52,7 +51,6 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
|
|||
--mount "type=volume,src=${CONTAINER_NAME}_ccache,dst=$CCACHE_DIR" \
|
||||
--mount "type=volume,src=${CONTAINER_NAME}_depends,dst=$DEPENDS_DIR/built" \
|
||||
--mount "type=volume,src=${CONTAINER_NAME}_depends_sources,dst=$DEPENDS_DIR/sources" \
|
||||
--mount "type=volume,src=${CONTAINER_NAME}_depends_SDKs_android,dst=$DEPENDS_DIR/SDKs/android" \
|
||||
--mount "type=volume,src=${CONTAINER_NAME}_previous_releases,dst=$PREVIOUS_RELEASES_DIR" \
|
||||
--env-file /tmp/env-$USER-$CONTAINER_NAME \
|
||||
--name "$CONTAINER_NAME" \
|
||||
|
|
|
@ -110,15 +110,6 @@ fi
|
|||
ccache --zero-stats
|
||||
PRINT_CCACHE_STATISTICS="ccache --version | head -n 1 && ccache --show-stats"
|
||||
|
||||
if [ -n "$ANDROID_TOOLS_URL" ]; then
|
||||
make distclean || true
|
||||
./autogen.sh
|
||||
bash -c "./configure $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG" || ( (cat config.log) && false)
|
||||
make "${MAKEJOBS}" && cd src/qt && ANDROID_HOME=${ANDROID_HOME} ANDROID_NDK_HOME=${ANDROID_NDK_HOME} make apk
|
||||
bash -c "${PRINT_CCACHE_STATISTICS}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
BITCOIN_CONFIG_ALL="${BITCOIN_CONFIG_ALL} --enable-external-signer --prefix=$BASE_OUTDIR"
|
||||
|
||||
if [ -n "$CONFIG_SHELL" ]; then
|
||||
|
|
17
configure.ac
17
configure.ac
|
@ -778,22 +778,6 @@ case $host in
|
|||
dnl "'NSUserNotificationCenter' is deprecated: first deprecated in macOS 11.0".
|
||||
OBJCXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"
|
||||
;;
|
||||
*android*)
|
||||
dnl make sure android stays above linux for hosts like *linux-android*
|
||||
TARGET_OS=android
|
||||
case $host in
|
||||
*x86_64*)
|
||||
ANDROID_ARCH=x86_64
|
||||
;;
|
||||
*aarch64*)
|
||||
ANDROID_ARCH=arm64-v8a
|
||||
;;
|
||||
*armv7a*)
|
||||
ANDROID_ARCH=armeabi-v7a
|
||||
;;
|
||||
*) AC_MSG_ERROR([Could not determine Android arch, or it is unsupported]) ;;
|
||||
esac
|
||||
;;
|
||||
*linux*)
|
||||
TARGET_OS=linux
|
||||
;;
|
||||
|
@ -1789,7 +1773,6 @@ AC_SUBST(HAVE_O_CLOEXEC)
|
|||
AC_SUBST(HAVE_BUILTIN_PREFETCH)
|
||||
AC_SUBST(HAVE_MM_PREFETCH)
|
||||
AC_SUBST(HAVE_STRONG_GETAUXVAL)
|
||||
AC_SUBST(ANDROID_ARCH)
|
||||
AC_SUBST(HAVE_EVHTTP_CONNECTION_GET_PEER_CONST_CHAR)
|
||||
AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile share/setup.nsi share/qt/Info.plist test/config.ini])
|
||||
AC_CONFIG_FILES([contrib/devtools/split-debug.sh],[chmod +x contrib/devtools/split-debug.sh])
|
||||
|
|
|
@ -101,10 +101,6 @@ host_os+=$(findstring netbsd,$(full_host_os))
|
|||
host_os+=$(findstring openbsd,$(full_host_os))
|
||||
host_os+=$(findstring mingw32,$(full_host_os))
|
||||
|
||||
ifeq (android,$(findstring android,$(full_host_os)))
|
||||
host_os:=android
|
||||
endif
|
||||
|
||||
host_os:=$(strip $(host_os))
|
||||
ifeq ($(host_os),)
|
||||
host_os=$(full_host_os)
|
||||
|
|
|
@ -38,11 +38,8 @@ Common `host-platform-triplet`s for cross compilation are:
|
|||
- `riscv32-linux-gnu` for Linux RISC-V 32 bit
|
||||
- `riscv64-linux-gnu` for Linux RISC-V 64 bit
|
||||
- `s390x-linux-gnu` for Linux S390X
|
||||
- `armv7a-linux-android` for Android ARM 32 bit
|
||||
- `aarch64-linux-android` for Android ARM 64 bit
|
||||
- `x86_64-linux-android` for Android x86 64 bit
|
||||
|
||||
The paths are automatically configured and no other options are needed unless targeting [Android](../doc/build-android.md).
|
||||
The paths are automatically configured and no other options are needed.
|
||||
|
||||
### Install the required dependencies: Ubuntu & Debian
|
||||
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
ifeq ($(HOST),armv7a-linux-android)
|
||||
android_CXX=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)eabi$(ANDROID_API_LEVEL)-clang++
|
||||
android_CC=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)eabi$(ANDROID_API_LEVEL)-clang
|
||||
else
|
||||
android_CXX=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang++
|
||||
android_CC=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang
|
||||
endif
|
||||
|
||||
android_CFLAGS=-std=$(C_STANDARD)
|
||||
android_CXXFLAGS=-std=$(CXX_STANDARD)
|
||||
|
||||
android_AR=$(ANDROID_TOOLCHAIN_BIN)/llvm-ar
|
||||
android_RANLIB=$(ANDROID_TOOLCHAIN_BIN)/llvm-ranlib
|
||||
|
||||
android_cmake_system=Android
|
|
@ -5,12 +5,10 @@ boost_packages = boost
|
|||
libevent_packages = libevent
|
||||
|
||||
qrencode_linux_packages = qrencode
|
||||
qrencode_android_packages = qrencode
|
||||
qrencode_darwin_packages = qrencode
|
||||
qrencode_mingw32_packages = qrencode
|
||||
|
||||
qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm
|
||||
qt_android_packages=qt
|
||||
qt_darwin_packages=qt
|
||||
qt_mingw32_packages=qt
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ $(package)_patches += qttools_src.pro
|
|||
$(package)_patches += mac-qmake.conf
|
||||
$(package)_patches += fix_qt_pkgconfig.patch
|
||||
$(package)_patches += no-xlib.patch
|
||||
$(package)_patches += fix_android_jni_static.patch
|
||||
$(package)_patches += dont_hardcode_pwd.patch
|
||||
$(package)_patches += qtbase-moc-ignore-gcc-macro.patch
|
||||
$(package)_patches += rcc_hardcode_timestamp.patch
|
||||
|
@ -185,24 +184,6 @@ $(package)_config_opts_mingw32 += -pch
|
|||
ifneq ($(LTO),)
|
||||
$(package)_config_opts_mingw32 += -ltcg
|
||||
endif
|
||||
|
||||
$(package)_config_opts_android = -xplatform android-clang
|
||||
$(package)_config_opts_android += -android-sdk $(ANDROID_SDK)
|
||||
$(package)_config_opts_android += -android-ndk $(ANDROID_NDK)
|
||||
$(package)_config_opts_android += -android-ndk-platform android-$(ANDROID_API_LEVEL)
|
||||
$(package)_config_opts_android += -egl
|
||||
$(package)_config_opts_android += -no-dbus
|
||||
$(package)_config_opts_android += -opengl es2
|
||||
$(package)_config_opts_android += -qt-freetype
|
||||
$(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
|
||||
$(package)_config_opts_x86_64_android += -android-arch x86_64
|
||||
endef
|
||||
|
||||
define $(package)_fetch_cmds
|
||||
|
@ -243,7 +224,6 @@ define $(package)_preprocess_cmds
|
|||
patch -p1 -i $($(package)_patch_dir)/fix-macos-linker.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_qt_pkgconfig.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_android_jni_static.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/memory_resource.patch && \
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
--- old/qtbase/src/plugins/platforms/android/androidjnimain.cpp
|
||||
+++ new/qtbase/src/plugins/platforms/android/androidjnimain.cpp
|
||||
@@ -979,6 +979,14 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void */*reserved*/)
|
||||
__android_log_print(ANDROID_LOG_FATAL, "Qt", "registerNatives failed");
|
||||
return -1;
|
||||
}
|
||||
+
|
||||
+ const jint ret = QT_PREPEND_NAMESPACE(QtAndroidPrivate::initJNI(vm, env));
|
||||
+ if (ret != 0)
|
||||
+ {
|
||||
+ __android_log_print(ANDROID_LOG_FATAL, "Qt", "initJNI failed");
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
QWindowSystemInterfacePrivate::TabletEvent::setPlatformSynthesizesMouse(false);
|
||||
|
||||
m_javaVM = vm;
|
|
@ -45,7 +45,6 @@ The following are developer notes on how to build Bitcoin Core on your native pl
|
|||
- [FreeBSD Build Notes](build-freebsd.md)
|
||||
- [OpenBSD Build Notes](build-openbsd.md)
|
||||
- [NetBSD Build Notes](build-netbsd.md)
|
||||
- [Android Build Notes](build-android.md)
|
||||
|
||||
Development
|
||||
---------------------
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
ANDROID BUILD NOTES
|
||||
======================
|
||||
|
||||
This guide describes how to build and package the `bitcoin-qt` GUI for Android on Linux and macOS.
|
||||
|
||||
|
||||
## Dependencies
|
||||
|
||||
Before proceeding with an Android build one needs to get the [Android SDK](https://developer.android.com/studio) and use the "SDK Manager" tool to download the NDK and one or more "Platform packages" (these are Android versions and have a corresponding API level).
|
||||
|
||||
The minimum supported Android NDK version is [r23](https://github.com/android/ndk/wiki/Changelog-r23).
|
||||
|
||||
In order to build `ANDROID_API_LEVEL` (API level corresponding to the Android version targeted, e.g. Android 9.0 Pie is 28 and its "Platform package" needs to be available) and `ANDROID_TOOLCHAIN_BIN` (path to toolchain binaries depending on the platform the build is being performed on) need to be set.
|
||||
|
||||
API levels from 24 to 29 have been tested to work.
|
||||
|
||||
If the build includes Qt, environment variables `ANDROID_SDK` and `ANDROID_NDK` need to be set as well but can otherwise be omitted.
|
||||
This is an example command for a default build with no disabled dependencies:
|
||||
|
||||
ANDROID_SDK=/home/user/Android/Sdk ANDROID_NDK=/home/user/Android/Sdk/ndk-bundle make HOST=aarch64-linux-android ANDROID_API_LEVEL=28 ANDROID_TOOLCHAIN_BIN=/home/user/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin
|
||||
|
||||
|
||||
## Building and packaging
|
||||
|
||||
After the depends are built configure with one of the resulting prefixes and run `make && make apk` in `src/qt`.
|
|
@ -392,20 +392,6 @@ bitcoin_qt_clean: FORCE
|
|||
|
||||
bitcoin_qt : qt/bitcoin-qt$(EXEEXT)
|
||||
|
||||
APK_LIB_DIR = qt/android/libs/$(ANDROID_ARCH)
|
||||
QT_BASE_VERSION = $(lastword $(shell $(MOC) --version))
|
||||
QT_BASE_PATH = $(shell find ../depends/sources/ -maxdepth 1 -type f -regex ".*qtbase.*$(QT_BASE_VERSION)\.tar.xz")
|
||||
QT_BASE_TLD = $(shell tar tf $(QT_BASE_PATH) --exclude='*/*')
|
||||
|
||||
bitcoin_qt_apk: FORCE
|
||||
mkdir -p $(APK_LIB_DIR)
|
||||
cp $(dir $(lastword $(CC)))../sysroot/usr/lib/$(host_alias)/libc++_shared.so $(APK_LIB_DIR)
|
||||
tar xf $(QT_BASE_PATH) -C qt/android/src/ $(QT_BASE_TLD)src/android/jar/src --strip-components=5
|
||||
tar xf $(QT_BASE_PATH) -C qt/android/src/ $(QT_BASE_TLD)src/android/java/src --strip-components=5
|
||||
cp qt/bitcoin-qt $(APK_LIB_DIR)/libbitcoin-qt_$(ANDROID_ARCH).so
|
||||
cd qt/android && gradle wrapper --gradle-version=6.6.1
|
||||
cd qt/android && ./gradlew build
|
||||
|
||||
ui_%.h: %.ui
|
||||
@test -f $(UIC) || (echo "uic $(UIC) not found, but is required for generating ui headers"; exit 1)
|
||||
@$(MKDIR_P) $(@D)
|
||||
|
|
7
src/qt/android/.gitignore
vendored
7
src/qt/android/.gitignore
vendored
|
@ -1,7 +0,0 @@
|
|||
/.gradle
|
||||
/build
|
||||
/gradle
|
||||
/gradlew*
|
||||
/libs
|
||||
/src/org/kde
|
||||
/src/org/qtproject
|
|
@ -1,39 +0,0 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<manifest package="org.bitcoincore.qt" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
|
||||
<uses-sdk android:targetSdkVersion="24"/>
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
|
||||
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
|
||||
|
||||
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
|
||||
|
||||
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="Bitcoin Core">
|
||||
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density"
|
||||
android:name="org.bitcoincore.qt.BitcoinQtActivity"
|
||||
android:label="Bitcoin Core"
|
||||
android:icon="@drawable/bitcoin"
|
||||
android:screenOrientation="unspecified"
|
||||
android:launchMode="singleTop">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data android:name="android.app.arguments" android:value="-testnet"/>
|
||||
<meta-data android:name="android.app.lib_name" android:value="bitcoin-qt"/>
|
||||
<meta-data android:name="android.app.repository" android:value="default"/>
|
||||
<meta-data android:name="android.app.bundle_local_qt_libs" android:value="1"/>
|
||||
<meta-data android:name="android.app.use_local_qt_libs" android:value="1"/>
|
||||
<meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
|
||||
<meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/>
|
||||
<meta-data android:name="android.app.background_running" android:value="true"/>
|
||||
<meta-data android:name="android.app.auto_screen_scale_factor" android:value="true"/>
|
||||
<meta-data android:name="android.app.extract_android_style" android:value="default"/>
|
||||
<meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
</manifest>
|
|
@ -1,52 +0,0 @@
|
|||
buildscript {
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.1.0'
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion androidCompileSdkVersion.toInteger()
|
||||
|
||||
buildToolsVersion androidBuildToolsVersion
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
manifest.srcFile 'AndroidManifest.xml'
|
||||
java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
|
||||
aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
|
||||
res.srcDirs = [qt5AndroidDir + '/res', 'res']
|
||||
resources.srcDirs = ['src']
|
||||
renderscript.srcDirs = ['src']
|
||||
assets.srcDirs = ['assets']
|
||||
jniLibs.srcDirs = ['libs']
|
||||
}
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
dexOptions {
|
||||
javaMaxHeapSize '4g'
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 24
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
androidBuildToolsVersion=30.0.3
|
||||
androidCompileSdkVersion=30
|
||||
qt5AndroidDir=new File(".").absolutePath
|
||||
org.gradle.jvmargs=-Xmx4608M
|
Binary file not shown.
Before Width: | Height: | Size: 4.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.5 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 11 KiB |
Binary file not shown.
Before Width: | Height: | Size: 17 KiB |
|
@ -1,14 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<array name="load_local_libs">
|
||||
<item>
|
||||
arm64-v8a;libbitcoin-qt_arm64-v8a.so
|
||||
</item>
|
||||
<item>
|
||||
armeabi-v7a;libbitcoin-qt_armeabi-v7a.so
|
||||
</item>
|
||||
<item>
|
||||
x86_64;libbitcoin-qt_x86_64.so
|
||||
</item>
|
||||
</array>
|
||||
</resources>
|
|
@ -1,23 +0,0 @@
|
|||
package org.bitcoincore.qt;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.system.ErrnoException;
|
||||
import android.system.Os;
|
||||
|
||||
import org.qtproject.qt5.android.bindings.QtActivity;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class BitcoinQtActivity extends QtActivity
|
||||
{
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
final File bitcoinDir = new File(getFilesDir().getAbsolutePath() + "/.bitcoin");
|
||||
if (!bitcoinDir.exists()) {
|
||||
bitcoinDir.mkdir();
|
||||
}
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue