Merge "embedded: remove sleep wait loop" into emu-master-dev
diff --git a/android/build/cmake/config/emu-qt5-config.cmake b/android/build/cmake/config/emu-qt5-config.cmake
index 278d363..2272cb5 100644
--- a/android/build/cmake/config/emu-qt5-config.cmake
+++ b/android/build/cmake/config/emu-qt5-config.cmake
@@ -361,40 +361,38 @@
${PREBUILT_ROOT}/plugins/imageformats/libqwbmp${QT_LIBINFIX}.so>lib64/qt/plugins/imageformats/libqwbmp${QT_LIBINFIX}.so
)
- if(NOT LINUX_AARCH64)
+ list(APPEND QT5_SHARED_DEPENDENCIES
+ ${PREBUILT_ROOT}/plugins/platforms/libqxcb${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqxcb${QT_LIBINFIX}.so;
+ ${PREBUILT_ROOT}/plugins/platforms/libqlinuxfb${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqlinuxfb${QT_LIBINFIX}.so;
+ ${PREBUILT_ROOT}/plugins/platforms/libqminimal${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqminimal${QT_LIBINFIX}.so;
+ ${PREBUILT_ROOT}/plugins/platforms/libqoffscreen${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqoffscreen${QT_LIBINFIX}.so;
+ ${PREBUILT_ROOT}/plugins/platforms/libqvnc${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqvnc${QT_LIBINFIX}.so;
+ ${PREBUILT_ROOT}/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin${QT_LIBINFIX}.so>lib64/qt/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin${QT_LIBINFIX}.so;
+ ${PREBUILT_ROOT}/plugins/platforminputcontexts/libibusplatforminputcontextplugin${QT_LIBINFIX}.so>lib64/qt/plugins/platforminputcontexts/libibusplatforminputcontextplugin${QT_LIBINFIX}.so;
+ ${PREBUILT_ROOT}/lib/libQt${QT_VERSION_MAJOR}XcbQpa${QT_LIBINFIX}.so.6>lib64/qt/lib/libQt${QT_VERSION_MAJOR}XcbQpa${QT_LIBINFIX}.so.6;
+ ${PREBUILT_ROOT}/lib/libfreetype.so.6>lib64/qt/lib/libfreetype.so.6;
+ ${PREBUILT_ROOT}/lib/libxkbcommon.so.0>lib64/qt/lib/libxkbcommon.so.0;
+ ${PREBUILT_ROOT}/lib/libX11-xcb.so.1>lib64/qt/lib/libX11-xcb.so.1;
+ ${PREBUILT_ROOT}/lib/libXau.so.6>lib64/qt/lib/libXau.so.6;
+ ${PREBUILT_ROOT}/lib/libXdmcp.so.6>lib64/qt/lib/libXdmcp.so.6;
+ ${PREBUILT_ROOT}/lib/libxcb-xkb.so.1>lib64/qt/lib/libxcb-xkb.so.1;
+ ${PREBUILT_ROOT}/lib/libxcb-cursor.so.0>lib64/qt/lib/libxcb-cursor.so.0;
+ ${PREBUILT_ROOT}/lib/libxcb-icccm.so.4>lib64/qt/lib/libxcb-icccm.so.4;
+ ${PREBUILT_ROOT}/lib/libxcb-image.so.0>lib64/qt/lib/libxcb-image.so.0;
+ ${PREBUILT_ROOT}/lib/libxcb-keysyms.so.1>lib64/qt/lib/libxcb-keysyms.so.1;
+ ${PREBUILT_ROOT}/lib/libxcb-randr.so.0>lib64/qt/lib/libxcb-randr.so.0;
+ ${PREBUILT_ROOT}/lib/libxcb-render-util.so.0>lib64/qt/lib/libxcb-render-util.so.0;
+ ${PREBUILT_ROOT}/lib/libxcb-render.so.0>lib64/qt/lib/libxcb-render.so.0;
+ ${PREBUILT_ROOT}/lib/libxcb-shape.so.0>lib64/qt/lib/libxcb-shape.so.0;
+ ${PREBUILT_ROOT}/lib/libxcb-shm.so.0>lib64/qt/lib/libxcb-shm.so.0;
+ ${PREBUILT_ROOT}/lib/libxcb-sync.so.1>lib64/qt/lib/libxcb-sync.so.1;
+ ${PREBUILT_ROOT}/lib/libxcb-util.so.1>lib64/qt/lib/libxcb-util.so.1;
+ ${PREBUILT_ROOT}/lib/libxcb-xfixes.so.0>lib64/qt/lib/libxcb-xfixes.so.0;
+ ${PREBUILT_ROOT}/lib/libxkbcommon-x11.so.0>lib64/qt/lib/libxkbcommon-x11.so.0;
+ ${PREBUILT_ROOT}/lib/libfontconfig.so.1>lib64/qt/lib/libfontconfig.so.1)
+ if(QTWEBENGINE)
list(APPEND QT5_SHARED_DEPENDENCIES
- ${PREBUILT_ROOT}/plugins/platforms/libqxcb${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqxcb${QT_LIBINFIX}.so;
- ${PREBUILT_ROOT}/plugins/platforms/libqlinuxfb${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqlinuxfb${QT_LIBINFIX}.so;
- ${PREBUILT_ROOT}/plugins/platforms/libqminimal${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqminimal${QT_LIBINFIX}.so;
- ${PREBUILT_ROOT}/plugins/platforms/libqoffscreen${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqoffscreen${QT_LIBINFIX}.so;
- ${PREBUILT_ROOT}/plugins/platforms/libqvnc${QT_LIBINFIX}.so>lib64/qt/plugins/platforms/libqvnc${QT_LIBINFIX}.so;
- ${PREBUILT_ROOT}/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin${QT_LIBINFIX}.so>lib64/qt/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin${QT_LIBINFIX}.so;
- ${PREBUILT_ROOT}/plugins/platforminputcontexts/libibusplatforminputcontextplugin${QT_LIBINFIX}.so>lib64/qt/plugins/platforminputcontexts/libibusplatforminputcontextplugin${QT_LIBINFIX}.so;
- ${PREBUILT_ROOT}/lib/libQt${QT_VERSION_MAJOR}XcbQpa${QT_LIBINFIX}.so.6>lib64/qt/lib/libQt${QT_VERSION_MAJOR}XcbQpa${QT_LIBINFIX}.so.6;
- ${PREBUILT_ROOT}/lib/libfreetype.so.6>lib64/qt/lib/libfreetype.so.6;
- ${PREBUILT_ROOT}/lib/libxkbcommon.so.0>lib64/qt/lib/libxkbcommon.so.0;
- ${PREBUILT_ROOT}/lib/libX11-xcb.so.1>lib64/qt/lib/libX11-xcb.so.1;
- ${PREBUILT_ROOT}/lib/libXau.so.6>lib64/qt/lib/libXau.so.6;
- ${PREBUILT_ROOT}/lib/libXdmcp.so.6>lib64/qt/lib/libXdmcp.so.6;
- ${PREBUILT_ROOT}/lib/libxcb-xkb.so.1>lib64/qt/lib/libxcb-xkb.so.1;
- ${PREBUILT_ROOT}/lib/libxcb-cursor.so.0>lib64/qt/lib/libxcb-cursor.so.0;
- ${PREBUILT_ROOT}/lib/libxcb-icccm.so.4>lib64/qt/lib/libxcb-icccm.so.4;
- ${PREBUILT_ROOT}/lib/libxcb-image.so.0>lib64/qt/lib/libxcb-image.so.0;
- ${PREBUILT_ROOT}/lib/libxcb-keysyms.so.1>lib64/qt/lib/libxcb-keysyms.so.1;
- ${PREBUILT_ROOT}/lib/libxcb-randr.so.0>lib64/qt/lib/libxcb-randr.so.0;
- ${PREBUILT_ROOT}/lib/libxcb-render-util.so.0>lib64/qt/lib/libxcb-render-util.so.0;
- ${PREBUILT_ROOT}/lib/libxcb-render.so.0>lib64/qt/lib/libxcb-render.so.0;
- ${PREBUILT_ROOT}/lib/libxcb-shape.so.0>lib64/qt/lib/libxcb-shape.so.0;
- ${PREBUILT_ROOT}/lib/libxcb-shm.so.0>lib64/qt/lib/libxcb-shm.so.0;
- ${PREBUILT_ROOT}/lib/libxcb-sync.so.1>lib64/qt/lib/libxcb-sync.so.1;
- ${PREBUILT_ROOT}/lib/libxcb-util.so.1>lib64/qt/lib/libxcb-util.so.1;
- ${PREBUILT_ROOT}/lib/libxcb-xfixes.so.0>lib64/qt/lib/libxcb-xfixes.so.0;
- ${PREBUILT_ROOT}/lib/libxkbcommon-x11.so.0>lib64/qt/lib/libxkbcommon-x11.so.0;
- ${PREBUILT_ROOT}/lib/libfontconfig.so.1>lib64/qt/lib/libfontconfig.so.1)
- if(QTWEBENGINE)
- list(APPEND QT5_SHARED_DEPENDENCIES
- ${PREBUILT_ROOT}/lib/libpcre2-16.so.0>lib64/qt/lib/libpcre2-16.so.0)
- endif()
+ ${PREBUILT_ROOT}/lib/libpcre2-16.so.0>lib64/qt/lib/libpcre2-16.so.0)
endif()
set(QT5_SHARED_PROPERTIES
diff --git a/android/build/docker/darwin-aarch64/qt6-linux-aarch64/Dockerfile b/android/build/docker/darwin-aarch64/qt6-linux-aarch64/Dockerfile
new file mode 100644
index 0000000..887483a
--- /dev/null
+++ b/android/build/docker/darwin-aarch64/qt6-linux-aarch64/Dockerfile
@@ -0,0 +1,83 @@
+# Copyright (C) 2024 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This docker image is for build Qt 6.5.3 for linux-aarch64 on an arm mac.
+# We want to build on arm mac so we can use an arm linux image.
+#
+# To build the docker image for arm architecture:
+# > docker build -t <image_name> .
+# > docker run --mount type=bind,source="/Volumes/android/emu-prebuilts",target="/emu" -dt <image_name>
+# > docker exec -it <container_id> bash
+# $ cd emu && tools/buildSrc/servers/build_tools.py --out_dir /emu/out-prebuilts --dist_dir /emu/dist-prebuilts/12345678 --build-id 12345678 --prebuilts
+FROM ubuntu:focal-20200423
+
+# tzdata complains when running apt-get install below, so we need to set the timezone.
+ENV TZ=America/Los_Angeles
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+RUN apt update
+# Install necessary utilities
+RUN apt install -y software-properties-common curl git
+
+# Install python 3.10, ninja
+RUN add-apt-repository -y ppa:deadsnakes/ppa
+RUN apt install -y python3.10 python3.10-distutils pip ninja-build
+
+# Install deps for building Qt
+RUN apt -y install \
+ patchelf \
+ libfontconfig1-dev \
+ libfreetype6-dev \
+ libx11-dev \
+ libx11-xcb-dev \
+ libxext-dev \
+ libxfixes-dev \
+ libxi-dev \
+ libxrender-dev \
+ libxcb-cursor-dev \
+ libxcb-glx0-dev \
+ libxcb-keysyms1-dev \
+ libxcb-image0-dev \
+ libxcb-shm0-dev \
+ libxcb-icccm4-dev \
+ libxcb-sync-dev \
+ libxcb-xfixes0-dev \
+ libxcb-shape0-dev \
+ libxcb-randr0-dev \
+ libxcb-render-util0-dev \
+ libxcb-util-dev \
+ libxcb-xinerama0-dev \
+ libxcb-xkb-dev \
+ libxkbcommon-dev \
+ libxkbcommon-x11-dev \
+ libsm-dev \
+ libice-dev \
+ libdbus-1-dev \
+ libxcomposite-dev \
+ libxcursor-dev \
+ libxrandr-dev \
+ libxshmfence-dev \
+ libcupsfilters-dev \
+ libegl1-mesa-dev \
+ libglib2.0-dev \
+ libcups2-dev \
+ libnss3-dev \
+ libxtst-dev \
+ libxkbfile-dev \
+ libdrm-dev
+
+# Install cmake >= 3.19; apt version is 3.16
+RUN curl -L https://github.com/Kitware/CMake/releases/download/v3.29.3/cmake-3.29.3-linux-aarch64.tar.gz > /cmake-3.29.3-linux-aarch64.tar.gz
+RUN tar -xvf /cmake-3.29.3-linux-aarch64.tar.gz
+ENV PATH=/cmake-3.29.3-linux-aarch64/bin:$PATH
diff --git a/android/build/python/aemu/prebuilts/qt.py b/android/build/python/aemu/prebuilts/qt.py
index 4b098b5..874a7f7 100644
--- a/android/build/python/aemu/prebuilts/qt.py
+++ b/android/build/python/aemu/prebuilts/qt.py
@@ -32,6 +32,7 @@
AOSP_ROOT = Path(__file__).resolve().parents[7]
HOST_OS = platform.system().lower()
+HOST_ARCH = platform.machine().lower()
QT_VERSION = "6.5.3"
QT_SUBMODULES = [
@@ -81,22 +82,25 @@
logging.info(">> Checking Ninja >= 1.7.2")
deps_common.checkNinjaVersion(min_vers=(1, 7, 2))
- # Need node.js version 12 or later for QtWebEngine
- logging.info(">> Checking for node.js version >= 12")
- deps_common.checkNodeJsVersion(min_vers=(12, 0))
+ if HOST_OS == "linux" and HOST_ARCH == "aarch64":
+ logging.info("Skipping QtWebEngine dependency check for linux-aarch64")
+ else:
+ # Need node.js version 12 or later for QtWebEngine
+ logging.info(">> Checking for node.js version >= 12")
+ deps_common.checkNodeJsVersion(min_vers=(12, 0))
- # QtWebEngine needs python html5lib package
- logging.info(">> Checking for python package html5lib")
- deps_common.checkPythonPackage("html5lib")
+ # QtWebEngine needs python html5lib package
+ logging.info(">> Checking for python package html5lib")
+ deps_common.checkPythonPackage("html5lib")
- # QtWebEngine requires GNUWin32 dependencies gperf, bison, flex
- # TODO(joshuaduong): Locally I installed bison from https://gnuwin32.sourceforge.net/packages.html, but maybe we use chocolatey on the buildbot.
- logging.info(">> Checking for gperf")
- deps_common.checkGperfVersion()
- logging.info(">> Checking for bison")
- deps_common.checkBisonVersion()
- logging.info(">> Checking for flex")
- deps_common.checkFlexVersion()
+ # QtWebEngine requires GNUWin32 dependencies gperf, bison, flex
+ # TODO(joshuaduong): Locally I installed bison from https://gnuwin32.sourceforge.net/packages.html, but maybe we use chocolatey on the buildbot.
+ logging.info(">> Checking for gperf")
+ deps_common.checkGperfVersion()
+ logging.info(">> Checking for bison")
+ deps_common.checkBisonVersion()
+ logging.info(">> Checking for flex")
+ deps_common.checkFlexVersion()
if HOST_OS == "windows":
# - Visual Studio 2019 v16.11+
@@ -109,7 +113,7 @@
elif HOST_OS == "darwin":
# MacOS sdk >= 13
deps_mac.checkMacOsSDKVersion(min_vers=(12, 0))
- elif HOST_OS == "linux":
+ elif HOST_OS == "linux" and HOST_ARCH != "aarch64":
pkgconfig_libs = [
("xrender", [0, 9, 0]),
("xcb-render", [1, 11]),
@@ -240,25 +244,29 @@
if HOST_OS == "windows":
conf_args += ["-platform", "win32-msvc"]
elif HOST_OS == "linux":
- if crosscompile_target == "linux_aarch64":
+ if HOST_ARCH == "aarch64" or crosscompile_target == "linux_aarch64":
# Cross-compiling requires a host installation of Qt, so we must build Qt for
# linux-x86_64 prior to cross-compiling to linux_aarch64.
- if not qt_host_path:
- logging.fatal(f"No Qt host path was provided for {crosscompile_target} cross-compilation.")
- conf_args += ["-platform", "linux-aarch64-gnu-g++",
+ conf_args += ["-platform", "linux-aarch64-gnu-g++"]
+ if crosscompile_target:
+ if not qt_host_path:
+ logging.fatal(f"No Qt host path was provided for {crosscompile_target} cross-compilation.")
+ # We have to disable a lot of things for cross-compilation without a full sysroot.
+ logging.warning("GUI support is not supported in cross-compilation.")
+ conf_args += [
"-device-option", "CROSS_COMPILE=aarch64-linux-gnu-",
"-no-glib", "-qt-host-path", qt_host_path, "-qt-pcre", "-qt-zlib",
"-qt-doubleconversion", "-qt-freetype", "-qt-harfbuzz",
"-no-feature-gssapi", "-no-feature-brotli", "-no-xcb", "-no-xkbcommon",
"-qt-webp", "-no-libudev", "-no-mtdev", "-no-linuxfb"]
- os.environ["CC"] = "aarch64-linux-gnu-gcc"
- os.environ["CXX"] = "aarch64-linux-gnu-g++"
+ conf_args += ["--", "-DCMAKE_SYSTEM_NAME=Linux", "-DCMAKE_SYSTEM_PROCESSOR=arm",
+ f"-DQT_HOST_PATH={qt_host_path}", "-DCMAKE_LINKER_FLAGS=-Wl,--as-needed"]
+ os.environ["CC"] = "aarch64-linux-gnu-gcc"
+ os.environ["CXX"] = "aarch64-linux-gnu-g++"
extra_cflags = "-march=armv8-a"
extra_cxxflags = "-march=armv8-a"
os.environ["CFLAGS"] = extra_cflags
os.environ["CXXFLAGS"] = extra_cxxflags
- conf_args += ["--", "-DCMAKE_SYSTEM_NAME=Linux", "-DCMAKE_SYSTEM_PROCESSOR=arm",
- f"-DQT_HOST_PATH={qt_host_path}", "-DCMAKE_LINKER_FLAGS=-Wl,--as-needed"]
else:
conf_args += ["-linker", "lld",
"-platform", "linux-clang-libc++",
@@ -281,7 +289,11 @@
toolchain_dir = Path(builddir) / "toolchain"
os.makedirs(Path(builddir) / "toolchain")
- clang_dir = deps_common.getClangDirectory()
+ if HOST_ARCH == "aarch64":
+ clang_dir = "/usr"
+ else:
+ clang_dir = deps_common.getClangDirectory()
+
with open(toolchain_dir / "clang", 'x') as f:
f.write(f"#!/bin/sh\n{clang_dir}/bin/clang {extra_cflags} $@")
os.chmod(toolchain_dir / "clang", 0o777)
@@ -298,8 +310,6 @@
f.write(f"#!/bin/sh\n{clang_dir}/bin/lld $@")
os.chmod(toolchain_dir / "lld", 0o777)
- # Add path to libc++.so.1 as some binaries (syncqt) that require it are ran during the
- # configure step.
os.environ["LD_LIBRARY_PATH"] = str(deps_common.getClangDirectory() / "lib")
addToSearchPath(str(toolchain_dir))
@@ -421,15 +431,19 @@
def linux_postInstall(installdir, target, is_webengine):
# Install prebuilt clang's libc++.so.1 and libc++abi.so.1 to lib/ as Qt's compiler
# tools (moc, rcc, uic) depends on it.
- clang_libs = ["libc++.so.1", "libc++abi.so.1"]
- for lib in clang_libs:
- src_lib = deps_common.getClangDirectory() / "lib" / lib
- dst_lib = f"{installdir}/lib/{lib}"
- logging.info(f"Copy {src_lib} ==> {dst_lib}")
- shutil.copyfile(src_lib, dst_lib)
+ if HOST_ARCH == "aarch64":
+ sysroot_dir = Path("/lib/aarch64-linux-gnu")
+ else:
+ clang_libs = ["libc++.so.1", "libc++abi.so.1"]
+ clang_dir = deps_common.getClangDirectory()
+ sysroot_dir = Path("/lib/x86_64-linux-gnu")
+ for lib in clang_libs:
+ src_lib = clang_dir / "lib" / lib
+ dst_lib = f"{installdir}/lib/{lib}"
+ logging.info(f"Copy {src_lib} ==> {dst_lib}")
+ shutil.copyfile(src_lib, dst_lib)
# We also need additional libraries from the sysroot for linux
- sysroot_dir = Path("/lib/x86_64-linux-gnu")
sysroot_libs = [
"libpcre2-16.so.0",
"libfreetype.so.6",
@@ -454,13 +468,33 @@
"libfontconfig.so.1"]
if target == "linux" and is_webengine:
sysroot_libs += ["libjpeg.so.8"]
+ if target == "linux" and HOST_ARCH == "aarch64":
+ # Need additional libraries to build emulator
+ sysroot_libs += [
+ "libxcb.so.1",
+ "libX11.so.6",
+ "libz.so.1",
+ "libpng16.so.16",
+ "libexpat.so.1",
+ "libuuid.so.1",
+ "libdbus-1.so.3",
+ "libsystemd.so.0",
+ "liblzma.so.5",
+ "liblz4.so.1",
+ "libgcrypt.so.20",
+ "libgpg-error.so.0",
+ "libbsd.so.0"]
for lib in sysroot_libs:
src_lib = sysroot_dir / lib
dst_lib = f"{installdir}/lib/{lib}"
logging.info(f"Copy {src_lib} ==> {dst_lib}")
shutil.copyfile(src_lib, dst_lib)
+ if target == "linux" and HOST_ARCH == "aarch64":
+ # These symlinks are needed to make emulator build compile
+ os.symlink("libX11.so.6", f"{installdir}/lib/libX11.so")
+ os.symlink("libXau.so.6", f"{installdir}/lib/libXau.so")
- if target != "linux_aarch64":
+ if target != "linux_aarch64" and HOST_ARCH != "aarch64":
# need libunwind.so.1 for syncqt
src_libunwind = AOSP_ROOT / "prebuilts" / "android-emulator-build" / "common" / "libunwind" \
/ "linux-x86_64" / "lib" / "libunwind.so"
@@ -503,10 +537,14 @@
logging.fatal(f"[{vcvarsall}] does not exist")
exit(-1)
deps_win.inheritSubprocessEnv([vcvarsall, "amd64", ">NUL", "2>&1"])
- # Use cmake from our prebuilts
- addToSearchPath(CMAKE_PATH)
- # Use ninja from our prebuilts
- addToSearchPath(NINJA_PATH)
+
+ if HOST_OS == "linux" and HOST_ARCH == "aarch64":
+ logging.info("Using system-installed cmake/ninja on linux-aarch64 host")
+ else:
+ # Use cmake from our prebuilts
+ addToSearchPath(CMAKE_PATH)
+ # Use ninja from our prebuilts
+ addToSearchPath(NINJA_PATH)
logging.info(os.environ)
if not checkDependencies():
@@ -549,16 +587,19 @@
postInstall(qt_install_dir, args.target, False)
shutil.rmtree(qt_build_path)
- logging.info("Building Qt6 w/ QtWebEngine")
- qt_install_dir = os.path.join(prebuilts_out_dir, "qt")
- configureQtBuild(qt_src_path, qt_build_path, qt_install_dir, QT_SUBMODULES)
- buildQt(QT_SUBMODULES, qt_build_path)
- installQt(QT_SUBMODULES, qt_build_path, qt_install_dir)
- postInstall(qt_install_dir, args.target, True)
+ if HOST_OS == "linux" and HOST_ARCH == "aarch64":
+ logging.info("Skipping QtWebEngine build on linux-aarch64 machine")
+ else:
+ logging.info("Building Qt6 w/ QtWebEngine")
+ qt_install_dir = os.path.join(prebuilts_out_dir, "qt")
+ configureQtBuild(qt_src_path, qt_build_path, qt_install_dir, QT_SUBMODULES)
+ buildQt(QT_SUBMODULES, qt_build_path)
+ installQt(QT_SUBMODULES, qt_build_path, qt_install_dir)
+ postInstall(qt_install_dir, args.target, True)
# Since linux_aarch64 cross-compilation requires having a host build of Qt, let's just build it
# in the linux x86_64 host instead of creating an additional linux_aarch64 build target.
- if HOST_OS == "linux":
+ if HOST_OS == "linux" and HOST_ARCH != "aarch64":
logging.info("Cross-compiling Qt 6 (no QtWebEngine) for linux_aarch64")
crosscompile_target = "linux_aarch64"
qt_install_dir = os.path.join(prebuilts_out_dir, "qt-nowebengine-linux_aarch64")