Skip to content

Commit b68f2a6

Browse files
committed
Add config opts and patch for aarch64_android build of Qt
1 parent 9c4cb01 commit b68f2a6

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

depends/packages/packages.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ protobuf_packages = protobuf
66
qt_packages = qrencode zlib
77

88
qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig
9+
qt_android_packages=qt
910

1011
rapidcheck_packages = rapidcheck
1112

depends/packages/qt.mk

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ $(package)_dependencies=openssl zlib
88
$(package)_linux_dependencies=freetype fontconfig libxcb
99
$(package)_build_subdir=qtbase
1010
$(package)_qt_libs=corelib network widgets gui plugins testlib
11-
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_configure_mac.patch fix_no_printer.patch fix_rcc_determinism.patch fix_riscv64_arch.patch xkb-default.patch no-xlib.patch
11+
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_configure_mac.patch fix_no_printer.patch fix_rcc_determinism.patch fix_riscv64_arch.patch xkb-default.patch no-xlib.patch fix_android_qmake_conf.patch
1212

1313
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
1414
$(package)_qttranslations_sha256_hash=fb5a47799754af73d3bf501fe513342cfe2fc37f64e80df5533f6110e804220c
@@ -19,6 +19,8 @@ $(package)_qttools_sha256_hash=a97556eb7b2f30252cdd8a598c396cfce2b2f79d2bae883af
1919
$(package)_extra_sources = $($(package)_qttranslations_file_name)
2020
$(package)_extra_sources += $($(package)_qttools_file_name)
2121

22+
$(package)_config_opts_aarch64_android = -xplatform android-clang -android-sdk $(ANDROID_SDK) -android-ndk $(ANDROID_NDK) -android-ndk-platform android-$(ANDROID_API_LEVEL) -device-option CROSS_COMPILE="$(host)-" -egl -qpa xcb -no-eglfs -opengl es2 -qt-freetype -no-fontconfig -L $(host_prefix)/lib -I $(host_prefix)/include
23+
2224
define $(package)_set_vars
2325
$(package)_config_opts_release = -release
2426
$(package)_config_opts_debug = -debug
@@ -127,6 +129,19 @@ $(package)_config_opts_x86_64_linux = -xplatform linux-g++-64
127129
$(package)_config_opts_aarch64_linux = -xplatform linux-aarch64-gnu-g++
128130
$(package)_config_opts_riscv64_linux = -platform linux-g++ -xplatform bitcoin-linux-g++
129131
$(package)_config_opts_mingw32 = -no-opengl -xplatform win32-g++ -device-option CROSS_COMPILE="$(host)-"
132+
$(package)_config_opts_aarch64_android = -xplatform android-clang
133+
$(package)_config_opts_aarch64_android += -android-sdk $(ANDROID_SDK)
134+
$(package)_config_opts_aarch64_android += -android-ndk $(ANDROID_NDK)
135+
$(package)_config_opts_aarch64_android += -android-ndk-platform android-$(ANDROID_API_LEVEL)
136+
$(package)_config_opts_aarch64_android += -device-option CROSS_COMPILE="$(host)-"
137+
$(package)_config_opts_aarch64_android += -egl
138+
$(package)_config_opts_aarch64_android += -qpa xcb
139+
$(package)_config_opts_aarch64_android += -no-eglfs
140+
$(package)_config_opts_aarch64_android += -opengl es2
141+
$(package)_config_opts_aarch64_android += -qt-freetype
142+
$(package)_config_opts_aarch64_android += -no-fontconfig
143+
$(package)_config_opts_aarch64_android += -L $(host_prefix)/lib
144+
$(package)_config_opts_aarch64_android += -I $(host_prefix)/include
130145
$(package)_build_env = QT_RCC_TEST=1
131146
$(package)_build_env += QT_RCC_SOURCE_DATE_OVERRIDE=1
132147
endef
@@ -169,6 +184,7 @@ define $(package)_preprocess_cmds
169184
patch -p1 -i $($(package)_patch_dir)/fix_no_printer.patch &&\
170185
patch -p1 -i $($(package)_patch_dir)/fix_rcc_determinism.patch &&\
171186
patch -p1 -i $($(package)_patch_dir)/xkb-default.patch &&\
187+
patch -p1 -i $($(package)_patch_dir)/fix_android_qmake_conf.patch &&\
172188
echo "!host_build: QMAKE_CFLAGS += $($(package)_cflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
173189
echo "!host_build: QMAKE_CXXFLAGS += $($(package)_cxxflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
174190
echo "!host_build: QMAKE_LFLAGS += $($(package)_ldflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
--- old/qtbase/mkspecs/android-clang/qmake.conf
2+
+++ new/qtbase/mkspecs/android-clang/qmake.conf
3+
@@ -30,7 +30,7 @@
4+
QMAKE_CFLAGS += -target mips64el-none-linux-android
5+
6+
QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH
7+
-QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a
8+
+QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -nostdlib++
9+
QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \
10+
-isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \
11+
-isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \
12+
@@ -40,7 +40,7 @@
13+
ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH
14+
15+
ANDROID_STDCPP_PATH = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so
16+
-ANDROID_CXX_STL_LIBS = -lc++
17+
+ANDROID_CXX_STL_LIBS = -lc++_shared
18+
19+
QMAKE_ARM_CFLAGS_RELEASE = -Oz
20+
QMAKE_ARM_CFLAGS_RELEASE_WITH_DEBUGINFO = -g -Oz

0 commit comments

Comments
 (0)