Installed latest NDK:
(more…)Tag Archives: openssl
Building QT6.4 on Windows for Android with OpenSSL and clang 12
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%
My attempt to build OpenSSL for Android on Windows
I tried to build OpenSSL for Android with the following commands in Windows Command Prompt:
cd C:\dev\repos\openssl-1.1.1r
set MY_NDK_DIR=C:\Users\dmitr\AppData\Local\Android\Sdk\ndk\23.1.7779620
set MY_CLANG_DIR=%MY_NDK_DIR%\toolchains\llvm\prebuilt\windows-x86_64\bin
set MY_CMAKE=%MY_NDK_DIR%\prebuilt\windows-x86_64\bin\make.exe
set MY_PERL_DIR=C:\dev\PFiles\Strawberry\perl\bin
set PATH=%MY_CLANG_DIR%;%MY_PERL_DIR%;%PATH%
set "MY_ANDROID_BUILD_ABI=x86_64"
rem set "MY_ANDROID_BUILD_ABI=x86"
rem set "MY_ANDROID_BUILD_ABI=arm64"
rem set "MY_ANDROID_BUILD_ABI=arm"
set MY_INSTALL_ROOT_DIR=C:/dev/libs/OpenSSL-android
set MY_INSTALL_DIR=%MY_INSTALL_ROOT_DIR%/%MY_ANDROID_BUILD_ABI%
set ANDROID_NDK_HOME=%MY_NDK_DIR%
# Set compiler clang, instead of gcc by default
set CC=clang
perl Configure android-%MY_ANDROID_BUILD_ABI% -D__ANDROID_API__=23 --prefix="%MY_INSTALL_DIR%" --openssldir="%MY_INSTALL_DIR%" no-shared
Building QT6.4 with static OpenSSL on Windows
Build static OpenSSL, read QT docs:
(more…)Building QT6.4 with OpenSSL for Windows – iteration #2
Install build tools, build OpenSSL as described in my previous post, extract QT sources with Bash:
tar -xf ../distrib/qt-everywhere-src-6.4.0.tar.xz
Configure QT as follows:
cd C:\dev\build\qt
"C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64
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 PATH=%CMAKE_ROOT%;%PATH%
set PATH=%NINJA_ROOT%;%PATH%
set PATH=%PERL_ROOT%;%PATH%
set PATH=C:\dev\PFiles\Python35;%PATH%
rem Check if the tools are in PATH
where perl.exe
where python.exe
where cmake.exe
where ninja.exe
set MY_INSTALL_PATH=C:/dev/libs/Qt6.4/windows
set MY_QT_SRC_DIR=C:\dev\repos\qt-everywhere-src-6.4.0
set CL=/MP
%MY_QT_SRC_DIR%\configure.bat -prefix %MY_INSTALL_PATH% -DQT_NO_EXCEPTIONS=1 -debug-and-release -force-debug-info -platform win32-msvc -opensource -confirm-license ^
-c++std c++20 -static -static-runtime -I "C:/Program Files/OpenSSL/include" -L "C:/Program Files/OpenSSL/lib" -openssl-linked ^
-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
Building QT 6.3.1 with OpenSSL for Windows
After various experimentation I was able to build QT 6.3.1 with OpenSSL for Windows with the following steps:
Extract archives with Bash:
tar -xzf ../distrib/openssl-1.1.1q.tar.gz
tar -xf ../distrib/qt-everywhere-src-6.3.1.tar.xz
Building OpenSSL 1.1.1q
Run the following commands with x64 Native Tools Command Prompt for VS 2022:
set PATH=%PATH%;C:\dev\PFiles\Strawberry\perl\bin
set PATH=%PATH%;C:\dev\PFiles\nasm-2.15.05
perl Configure VC-WIN64A
Experimentation with OpenSSL and QT configuration on Windows
Building OpenSSL 1.1.1q with custom installation directory
Run the following commands with x64 Native Tools Command Prompt for VS 2022:
set PATH=%PATH%;C:\dev\PFiles\Strawberry\perl\bin
set PATH=%PATH%;C:\dev\PFiles\nasm-2.15.05
set MY_INSTALL_DIR=C:/dev/libs/OpenSSL
perl Configure VC-WIN64A --prefix="%MY_INSTALL_DIR%" --openssldir="%MY_INSTALL_DIR%"
Building QT 6.3.0 for Windows with OpenSSL and C++20
Now QT doesn’t like backslashes in configure.bat
parameters. Also I updated vcvarsall.bat
path and added -c++std c++20
: and tried static build with -static
option:
CALL "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
set "CMAKE_ROOT=E:\PFiles\cmake-3.21.3-windows-x86_64\bin"
set "NINJA_ROOT=E:\PFiles\ninja-win"
set "PERL_ROOT=E:\PFiles\Strawberry\perl\bin"
set PATH=%CMAKE_ROOT%;%PATH%
set PATH=%NINJA_ROOT%;%PATH%
set PATH=%PERL_ROOT%;%PATH%
set PATH=E:\PFiles\Python35;%PATH%
rem Check if the tools are in PATH
where perl.exe
where python.exe
where cmake.exe
where ninja.exe
set "MY_INSTALL_PATH=E:\Qt\Qt6.3.0\windows"
set CL=/MP
configure.bat -prefix %MY_INSTALL_PATH% -DQT_NO_EXCEPTIONS=1 -debug-and-release -force-debug-info -platform win32-msvc -opensource -confirm-license ^
-c++std c++20 -static -I "C:/Program Files/OpenSSL/include" -L "C:/Program Files/OpenSSL/lib"
Building OpenSSL 3.0.2 with MSVC 2022
Download OpenSSL sources and extract them with Bash:
tar -xvzf /c/Users/D-Ef/Downloads/openssl-3.0.2.tar.gz
Download NASM, open x64 Native Tools Command Prompt for VS 2022 and run the following commands:
set PATH=%PATH%;E:\PFiles\nasm-2.15.05
where nasm
set PATH=%PATH%;E:\PFiles\Strawberry\perl\bin
where perl
set MY_INSTALL_DIR=E:\libs\OpenSSL
echo %MY_INSTALL_DIR%
perl Configure VC-WIN64A --prefix="%MY_INSTALL_DIR%" --openssldir="%MY_INSTALL_DIR%"