My mistake was that while building QT6.4 on Windows for Android I tried to set OPENSSL_ROOT_DIR
as an environment variable that doesn’t take an effect. Now I set it as an argument:
C:\dev\build\qta
set "CMAKE_ROOT=C:\dev\PFiles\cmake-3.24.2-windows-x86_64\bin"
set "NINJA_ROOT=C:\dev\PFiles\ninja-win"
set "PERL_ROOT=C:\dev\PFiles\Strawberry\perl\bin"
set "MINGW_ROOT=C:\dev\PFiles\x86_64-12.2.0-release-win32-seh-rt_v10-rev0\mingw64\bin"
set "PYTHON_ROOT=C:\dev\PFiles\Python35"
set "JDK_ROOT=C:\dev\libs\jdk-19\bin"
set PATH=C:\WINDOWS\system32;C:\WINDOWS
set PATH=%CMAKE_ROOT%;%PATH%
set PATH=%NINJA_ROOT%;%PATH%
set PATH=%MINGW_ROOT%;%PATH%
set PATH=%PERL_ROOT%;%PATH%
set PATH=%PYTHON_ROOT%;%PATH%
set PATH=%JDK_ROOT%;%PATH%
rem Check if the tools are in PATH
where gcc
where mingw32-make.exe
where perl.exe
where python.exe
where cmake.exe
where ninja.exe
where javac.exe
set "MY_ANDROID_SDK_ROOT=C:\Users\dmitr\AppData\Local\Android\Sdk"
set "MY_ANDROID_NDK_PATH=C:\Users\dmitr\AppData\Local\Android\Sdk\ndk\23.1.7779620"
set "MY_ANDROID_NDK_PLATFORM=android-23"
set "MY_ANDROID_BUILD_TOOLS_REVISION=33.0.0"
set "MY_ANDROID_BUILD_ABI=x86_64"
rem set "MY_ANDROID_BUILD_ABI=x86"
rem set "MY_ANDROID_BUILD_ABI=arm64-v8a"
rem set "MY_ANDROID_BUILD_ABI=armeabi-v7a"
set MY_INSTALL_PATH=C:/dev/libs/Qt6.4/android.%MY_ANDROID_BUILD_ABI%
set MY_QT_SRC_DIR=C:\dev\repos\qt-everywhere-src-6.4.0
set MY_QT_HOST_PATH=C:/dev/libs/Qt6.4/windows
#set MY_MODE=debug-and-release
set MY_MODE=release
set MY_OPENSSL_DIR=C:/Users/dmitr/AppData/Local/Android/Sdk/android_openssl/static
%MY_QT_SRC_DIR%\configure.bat -platform win32-msvc -xplatform android-clang -prefix %MY_INSTALL_PATH% -qt-host-path %MY_QT_HOST_PATH% ^
-%MY_MODE% -force-debug-info -opensource -confirm-license ^
-c++std c++20 -DQT_NO_EXCEPTIONS=1 -openssl-runtime ^
-android-sdk %MY_ANDROID_SDK_ROOT% -android-ndk %MY_ANDROID_NDK_PATH% -android-ndk-platform %MY_ANDROID_NDK_PLATFORM% -android-abis %MY_ANDROID_BUILD_ABI% ^
-skip qt3d -skip qt5compat -skip qtactiveqt -skip qtcharts -skip qtcoap -skip qtconnectivity ^
-skip qtdatavis3d -skip qtdoc -skip qtlottie -skip qtmqtt -skip qtnetworkauth -skip qtopcua ^
-skip qtserialport -skip qtpositioning -skip qtquicktimeline -skip qtquick3d -skip qtremoteobjects ^
-skip qtscxml -skip qtsensors -skip qtserialbus -skip qtvirtualkeyboard -skip qtwayland ^
-skip qtwebchannel -skip qtwebengine -skip qtwebview -skip qtquick3dphysics -skip qtspeech -skip qthttpserver ^
-- -D OPENSSL_ROOT_DIR=%MY_OPENSSL_DIR%
The output is the following:
+ cd qtbase
+ C:\dev\repos\qt-everywhere-src-6.4.0\qtbase\configure.bat -top-level -platform win32-msvc -xplatform android-clang -prefix C:/dev/libs/Qt6.4/android.x86_64 -qt-host-path C:/dev/libs/Qt6.4/windows -release -force-debug-info -opensource -confirm-license -c++std c++20 -DQT_NO_EXCEPTIONS=1 -openssl-runtime -android-sdk C:\Users\dmitr\AppData\Local\Android\Sdk -android-ndk C:\Users\dmitr\AppData\Local\Android\Sdk\ndk\23.1.7779620 -android-ndk-platform android-23 -android-abis x86_64 -skip qt3d -skip qt5compat -skip qtactiveqt -skip qtcharts -skip qtcoap -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtlottie -skip qtmqtt -skip qtnetworkauth -skip qtopcua -skip qtserialport -skip qtpositioning -skip qtquicktimeline -skip qtquick3d -skip qtremoteobjects -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebview -skip qtquick3dphysics -skip qtspeech -skip qthttpserver -- -D OPENSSL_ROOT_DIR=C:/Users/dmitr/AppData/Local/Android/Sdk/android_openssl/static
-- Windows 10 SDK version:
'C:/dev/PFiles/cmake-3.24.2-windows-x86_64/bin/cmake.exe' '-DQT_HOST_PATH=C:/dev/libs/Qt6.4/windows' '-DBUILD_qt3d=OFF' '-DBUILD_qt5compat=OFF' '-DBUILD_qtactiveqt=OFF' '-DBUILD_qtcharts=OFF' '-DBUILD_qtcoap=OFF' '-DBUILD_qtconnectivity=OFF' '-DBUILD_qtdatavis3d=OFF' '-DBUILD_qtdoc=OFF' '-DBUILD_qtlottie=OFF' '-DBUILD_qtmqtt=OFF' '-DBUILD_qtnetworkauth=OFF' '-DBUILD_qtopcua=OFF' '-DBUILD_qtserialport=OFF' '-DBUILD_qtpositioning=OFF' '-DBUILD_qtquicktimeline=OFF' '-DBUILD_qtquick3d=OFF' '-DBUILD_qtremoteobjects=OFF' '-DBUILD_qtscxml=OFF' '-DBUILD_qtsensors=OFF' '-DBUILD_qtserialbus=OFF' '-DBUILD_qtvirtualkeyboard=OFF' '-DBUILD_qtwayland=OFF' '-DBUILD_qtwebchannel=OFF' '-DBUILD_qtwebengine=OFF' '-DBUILD_qtwebview=OFF' '-DBUILD_qtquick3dphysics=OFF' '-DBUILD_qtspeech=OFF' '-DBUILD_qthttpserver=OFF' '-D' 'OPENSSL_ROOT_DIR=C:/Users/dmitr/AppData/Local/Android/Sdk/android_openssl/static' '-DCMAKE_INSTALL_PREFIX=C:/dev/libs/Qt6.4/android.x86_64' '-DQT_QMAKE_TARGET_MKSPEC=win32-msvc' '-DQT_QMAKE_TARGET_MKSPEC=android-clang' '-DCMAKE_C_COMPILER=cl' '-DCMAKE_CXX_COMPILER=cl' '-DANDROID_SDK_ROOT=C:/Users/dmitr/AppData/Local/Android/Sdk' '-DANDROID_NDK_ROOT=C:/Users/dmitr/AppData/Local/Android/Sdk/ndk/23.1.7779620' '-DANDROID_PLATFORM=android-23' '-DANDROID_ABI=x86_64' '-DCMAKE_BUILD_TYPE=RelWithDebInfo' '-DQT_EXTRA_DEFINES=QT_NO_EXCEPTIONS=1' '-DINPUT_cxx14=yes' '-DINPUT_cxx17=yes' '-DINPUT_cxx20=yes' '-DINPUT_openssl=runtime' '-G' 'Ninja' 'C:/dev/repos/qt-everywhere-src-6.4.0'
-- Android toolchain file within NDK detected: C:/Users/dmitr/AppData/Local/Android/Sdk/ndk/23.1.7779620/build/cmake/android.toolchain.cmake
-- Android build detected, checking configuration defaults...
-- Android: Targeting API '23' with architecture 'x86_64', ABI 'x86_64', and processor 'x86_64'
-- Android: Selected unified Clang toolchain
-- The CXX compiler identification is Clang 12.0.8
-- The C compiler identification is Clang 12.0.8
-- The ASM compiler identification is Clang with GNU-like command-line
-- Found assembler: C:/Users/dmitr/AppData/Local/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Users/dmitr/AppData/Local/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Users/dmitr/AppData/Local/Android/Sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
Checking dependencies of submodule 'qtbase'
Checking dependencies of submodule 'qtimageformats'
Checking dependencies of submodule 'qtlanguageserver'
Checking dependencies of submodule 'qtshadertools'
Checking dependencies of submodule 'qtsvg'
Checking dependencies of submodule 'qtdeclarative'
Checking dependencies of submodule 'qtmultimedia'
Checking dependencies of submodule 'qttools'
Skipping optional dependency 'qtactiveqt' of 'qttools', because building 'qtactiveqt' was explicitly disabled.
Checking dependencies of submodule 'qtwebsockets'
Checking dependencies of submodule 'qttranslations'
Configuring submodule 'qtbase'
OPENSSL_ROOT_DIR= C:/Users/dmitr/AppData/Local/Android/Sdk/android_openssl/static
OPENSSL_USE_STATIC_LIBS=
-- Could NOT find md4c (missing: md4c_DIR)
QtCore: WARNING: C:/dev/repos/qt-everywhere-src-6.4.0/qtbase/src/corelib/tools/qatomicscopedvaluerollback_p.h does not have the "We mean it." warning
-- Could NOT find md4c (missing: md4c_DIR)
Configuring submodule 'qtimageformats'
Configuring submodule 'qtlanguageserver'
Configuring submodule 'qtshadertools'
Configuring submodule 'qtsvg'
Configuring submodule 'qtdeclarative'
QtQuickDialogs2QuickImpl: WARNING: C:/dev/repos/qt-everywhere-src-6.4.0/qtdeclarative/src/quickdialogs2/quickdialogs2quickimpl/qquickcolordialogutils_p.h does not have the "We mean it." warning
shaders/SaturationLightness.frag -> shaders/SaturationLightness.frag.qsb exposed as :/qt-project.org/imports/QtQuick/Dialogs/quickimpl/shaders/SaturationLightness.frag.qsb
QtQmlDom: WARNING: C:/dev/repos/qt-everywhere-src-6.4.0/qtdeclarative/src/qmldom/standalone/private/qtqmlcompilerexports_p.h does not have the "We mean it." warning
Configuring submodule 'qtmultimedia'
Configuring submodule 'qt3d'
Configuring submodule 'qt5compat'
Configuring submodule 'qtactiveqt'
Configuring submodule 'qtcharts'
Configuring submodule 'qtcoap'
Configuring submodule 'qtconnectivity'
Configuring submodule 'qtdatavis3d'
Configuring submodule 'qttools'
-- Could NOT find Clang (missing: Clang_DIR)
-- Could NOT find Clang (missing: Clang_DIR)
QtDesigner: WARNING: C:/dev/repos/qt-everywhere-src-6.4.0/qttools/src/designer/src/lib/uilib/formbuilder.h includes abstractformbuilder.h when it should include QtDesigner/abstractformbuilder.h
Configuring submodule 'qtdoc'
Configuring submodule 'qtwebsockets'
CMake Warning (dev) at C:/dev/build/qta/qtbase/lib/cmake/Qt6Qml/Qt6QmlBuildInternals.cmake:410 (message):
INSTALL_SOURCE_QMLTYPES option is deprecated and should not be used.
Please port your module to use declarative type registration.
Call Stack (most recent call first):
qtwebsockets/src/imports/qmlwebsockets/CMakeLists.txt:1 (qt_internal_add_qml_module)
This warning is for project developers. Use -Wno-dev to suppress it.
Configuring submodule 'qthttpserver'
Configuring submodule 'qtlottie'
Configuring submodule 'qtmqtt'
Configuring submodule 'qtnetworkauth'
Configuring submodule 'qtopcua'
Configuring submodule 'qtserialport'
Configuring submodule 'qtpositioning'
Configuring submodule 'qtquicktimeline'
Configuring submodule 'qtquick3d'
Configuring submodule 'qtquick3dphysics'
Configuring submodule 'qtremoteobjects'
Configuring submodule 'qtscxml'
Configuring submodule 'qtsensors'
Configuring submodule 'qtserialbus'
Configuring submodule 'qtspeech'
Configuring submodule 'qttranslations'
CMake Warning at qttranslations/translations/CMakeLists.txt:37 (message):
Directory
'C:/dev/repos/qt-everywhere-src-6.4.0/qttranslations/translations/../../qtlocation/src'
for qtlocation does not exist. Skipping...
Call Stack (most recent call first):
qttranslations/translations/CMakeLists.txt:105 (add_ts_targets)
CMake Warning at qttranslations/translations/CMakeLists.txt:44 (message):
No source files located for qtlocation, skipping target creation
Call Stack (most recent call first):
qttranslations/translations/CMakeLists.txt:105 (add_ts_targets)
Configuring submodule 'qtvirtualkeyboard'
Configuring submodule 'qtwayland'
Configuring submodule 'qtwebchannel'
Configuring submodule 'qtwebengine'
Configuring submodule 'qtwebview'
-- Configuration summary shown below. It has also been written to C:/dev/build/qta/config.summary
-- Configure with --log-level=STATUS or higher to increase CMake's message verbosity. The log level does not persist across reconfigurations.
-- Configure summary:
Building for: android-clang (x86_64, CPU features: cx16 mmx popcnt sse sse2 sse3 ssse3 sse4.1 sse4.2 sse4)
Compiler: clang 12.0.8
Build options:
Mode ................................... release (with debug info)
Optimize release build for size ........ no
Fully optimize release builds (-O3) .... no
Building shared libraries .............. yes
Using C standard ....................... C11
Using C++ standard ..................... C++20
Using ccache ........................... no
Relocatable ............................ yes
Using precompiled headers .............. yes
Using LTCG ............................. no
Using Intel CET ........................ no
Target compiler supports:
SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
AVX .................................. <none>
AVX512 ............................... <none>
Other x86 ............................ AES RDRAND SHA
Sanitizers:
Addresses ............................ no
Threads .............................. no
Memory ............................... no
Fuzzer (instrumentation only) ........ no
Undefined ............................ no
Build parts ............................ libs
App store compliance ................... yes
Qt modules and options:
Qt Concurrent .......................... yes
Qt D-Bus ............................... no
Qt D-Bus directly linked to libdbus .... no
Qt Gui ................................. yes
Qt Network ............................. yes
Qt PrintSupport ........................ yes
Qt Sql ................................. yes
Qt Testlib ............................. yes
Qt Widgets ............................. yes
Qt Xml ................................. yes
Support enabled for:
Using pkg-config ....................... no
udev ................................... no
Using system zlib ...................... yes
Zstandard support ...................... no
Thread support ......................... yes
Common build options:
Linker can resolve circular dependencies yes
Qt Core:
backtrace .............................. no
DoubleConversion ....................... yes
Using system DoubleConversion ........ no
GLib ................................... no
ICU .................................... no
Using system libb2 ..................... no
Built-in copy of the MIME database ..... yes
cpp/winrt base ......................... no
Tracing backend ........................ <none>
Logging backends:
journald ............................. no
syslog ............................... no
slog2 ................................ no
PCRE2 .................................. yes
Using system PCRE2 ................... no
Qt Sql:
SQL item models ........................ yes
Qt Network:
getifaddrs() ........................... no
IPv6 ifname ............................ no
libproxy ............................... no
OpenSSL ................................ yes
Qt directly linked to OpenSSL ........ no
OpenSSL 1.1 ............................ yes
DTLS ................................... yes
OCSP-stapling .......................... yes
SCTP ................................... no
Use system proxies ..................... yes
GSSAPI ................................. no
Brotli Decompression Support ........... no
qTopLevelDomain() ...................... yes
Built-in publicsuffix database ....... yes
System publicsuffix database ......... no
Core tools:
Android deployment tool ................ no
macOS deployment tool .................. no
Windows deployment tool ................ no
qmake .................................. yes
Qt Gui:
Accessibility .......................... yes
FreeType ............................... yes
Using system FreeType ................ no
HarfBuzz ............................... yes
Using system HarfBuzz ................ no
Fontconfig ............................. no
Image formats:
GIF .................................. yes
ICO .................................. yes
JPEG ................................. yes
Using system libjpeg ............... no
PNG .................................. yes
Using system libpng ................ no
Text formats:
HtmlParser ........................... yes
CssParser ............................ yes
OdfWriter ............................ yes
MarkdownReader ....................... yes
Using system libmd4c ............... no
MarkdownWriter ....................... yes
EGL .................................... yes
OpenVG ................................. no
OpenGL:
Desktop OpenGL ....................... no
OpenGL ES 2.0 ........................ yes
OpenGL ES 3.0 ........................ no
OpenGL ES 3.1 ........................ no
OpenGL ES 3.2 ........................ no
Vulkan ................................. yes
Session Management ..................... yes
Features used by QPA backends:
evdev .................................. yes
libinput ............................... no
HiRes wheel support in libinput ........ no
INTEGRITY HID .......................... no
mtdev .................................. no
tslib .................................. no
xkbcommon .............................. no
X11 specific:
XLib ................................. no
XCB Xlib ............................. no
EGL on X11 ........................... no
xkbcommon-x11 ........................ no
xcb-sm ............................... no
QPA backends:
DirectFB ............................... no
EGLFS .................................. no
EGLFS details:
EGLFS OpenWFD ........................ no
EGLFS i.Mx6 .......................... no
EGLFS i.Mx6 Wayland .................. no
EGLFS RCAR ........................... no
EGLFS EGLDevice ...................... no
EGLFS GBM ............................ no
EGLFS VSP2 ........................... no
EGLFS Mali ........................... no
EGLFS Raspberry Pi ................... no
EGLFS X11 ............................ no
LinuxFB ................................ no
VNC .................................... no
VK_KHR_display ......................... no
QNX:
lgmon ................................ no
IMF .................................. no
XCB:
Using system-provided xcb-xinput ..... no
GL integrations:
GLX Plugin ......................... no
XCB GLX .......................... no
EGL-X11 Plugin ..................... no
Windows:
Direct 2D ............................ no
Direct 2D 1.1 ........................ no
DirectWrite .......................... no
DirectWrite 3 ........................ no
Qt Widgets:
GTK+ ................................... no
Styles ................................. Fusion Windows Android
Qt Testlib:
Tester for item models ................. yes
Qt PrintSupport:
CUPS ................................... no
Qt Sql Drivers:
DB2 (IBM) .............................. no
InterBase .............................. no
MySql .................................. no
OCI (Oracle) ........................... no
ODBC ................................... no
PostgreSQL ............................. no
SQLite ................................. yes
Using system provided SQLite ......... no
Further Image Formats:
JasPer ................................. no
MNG .................................... no
TIFF ................................... yes
Using system libtiff ................. no
WEBP ................................... yes
Using system libwebp ................. no
Qt QML:
QML network support .................... yes
QML debugging and profiling support .... yes
QML just-in-time compiler .............. yes
QML XML http request ................... yes
QML Locale ............................. yes
Qt QML Models:
QML list model ......................... yes
QML delegate model ..................... yes
Qt Quick:
AnimatedImage item ..................... yes
Canvas item ............................ yes
Support for Qt Quick Designer .......... yes
Flipable item .......................... yes
GridView item .......................... yes
ListView item .......................... yes
TableView item ......................... yes
TreeView item .......................... yes
Path support ........................... yes
PathView item .......................... yes
Positioner items ....................... yes
Repeater item .......................... yes
ShaderEffect item ...................... yes
Sprite item ............................ yes
Qt QWARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.
Either set CMAKE_PREFIX_PATH or LLVM_INSTALL_DIR to the location of your llvm installation.
On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution.
On macOS, you can use Homebrew's llvm package.
You will also need to set the FEATURE_clang CMake variable to ON to re-evaluate this check.
WARNING: Clang-based lupdate parser will not be available. LLVM and Clang C++ libraries have not been found.
You will need to set the FEATURE_clangcpp CMake variable to ON to re-evaluate this check.
uick Templates 2:
Hover support .......................... yes
Multi-touch support .................... yes
Calendar support ....................... yes
Qt Quick Controls 2:
Styles ................................. Basic Fusion Imagine iOS Material Universal macOS Windows
Qt Multimedia:
Spatial Audio .......................... yes
Spatial Audio (Quick3D) ................ no
Low level Audio Backend:
ALSA (experimental) .................. no
PulseAudio ........................... no
MMRenderer ........................... no
CoreAudio ............................ no
Windows Media SDK .................... no
Open SLES (Android) .................. yes
Web Assembly ......................... no
Plugin:
GStreamer 1.0 ........................ no
FFmpeg ............................... no
MMRenderer ........................... no
AVFoundation ......................... no
Windows Media Foundation ............. no
Hardware acceleration and features:
Video for Linux ...................... yes
VAAPI support ........................ no
Linux DMA buffer support ............. no
VideoToolbox ......................... no
Qt Tools:
Qt Assistant ........................... yes
QDoc ................................... no
Clang-based lupdate parser ............. no
Qt Designer ............................ yes
Qt Distance Field Generator ............ yes
Qt Linguist ............................ yes
pixeltool .............................. yes
qdbus .................................. no
Qt Attributions Scanner ................ yes
qtdiag ................................. no
qtplugininfo ........................... no
--
Qt is now configured for building. Just run 'cmake --build . --parallel'
Once everything is built, you must run 'cmake --install .'
Qt will be installed into 'C:/dev/libs/Qt6.4/android.x86_64'
To configure and build other Qt modules, you can use the following convenience script:
C:/dev/libs/Qt6.4/android.x86_64/bin/qt-configure-module.bat
If reconfiguration fails for some reason, try removing 'CMakeCache.txt' from the build directory
-- Configuring done
-- Generating done
-- Build files have been written to: C:/dev/build/qta
I also tried set MY_MODE=debug-and-release
, but got some ninja
errors while trying to run cmake --build . --parallel
.