Update MySQL and enable it for more Windows targets

Currently MySQL is enabled only for Windows 10 22h2 msvc2022 and it
uses deprecated MySQL Connector/C. This change updates MySQL client
library by replacing MySQL Connector/C with MySQL 8.0 Server package
which contains a newer client library that works in other
Windows targets.

This change also enables MySQL in other non-packaging
Windows 10/11 targets except ARM, as Windows on ARM still
lacks MySQL support.

Task-number: QTQAINFRA-4999
Fixes: QTBUG-106097
Change-Id: I4472d3e441668bada18268fc4486bbbeefc4afd6
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Elias Toivola
2024-02-12 16:40:46 +02:00
parent befe4a61d6
commit 86c53b6cce
2 changed files with 12 additions and 17 deletions

View File

@@ -114,7 +114,7 @@ Configurations:
Features: ['Sccache', "DebugAndRelease", 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-debug-and-release -make examples -developer-build -force-debug-info -qt-zlib'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
@@ -142,7 +142,7 @@ Configurations:
Features: ['Sccache', "DebugAndRelease", 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-debug-and-release -make examples -developer-build -force-debug-info -qt-zlib'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
@@ -235,7 +235,7 @@ Configurations:
Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples'
Environment variables: [
'Path=C:\llvm-mingw\bin;{{.Env.Path}}',
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_LLVM_MINGW}} -DQT_DEPLOY_FFMPEG=TRUE -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'LLVM_INSTALL_DIR=C:\llvm-mingw',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}',
@@ -261,7 +261,7 @@ Configurations:
Configure arguments: '-developer-build -release -force-debug-info -separate-debug-info -make examples'
Environment variables: [
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MINGW}} -DQT_DEPLOY_FFMPEG=TRUE -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DFEATURE_native_grpc=OFF',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_mingw}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}',
@@ -274,7 +274,7 @@ Configurations:
Configure arguments: '-developer-build -release -force-debug-info -separate-debug-info -make examples'
Environment variables: [
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c',
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MINGW}} -DQT_DEPLOY_FFMPEG=TRUE -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DFEATURE_native_grpc=OFF',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_mingw}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}',

View File

@@ -6,16 +6,12 @@
# This script installs MySQL $version.
# Both x86 and x64 versions needed when x86 integrations are done on x64 machine
$version = "6.1.11"
$version = "8.0.36"
$installFolder = "C:\Utils"
$officialUrl = "https://downloads.mysql.com/archives/get/p/19/file/mysql-connector-c-${version}-winx64.zip"
$officialUrlDebug = "https://downloads.mysql.com/archives/get/p/19/file/mysql-connector-${version}-winx64-debug.zip"
$cacheURl = "http://ci-files01-hki.ci.qt.io/input/windows/mysql-connector-c-${version}-winx64.zip"
$cacheURlDebug = "http://ci-files01-hki.ci.qt.io/input/windows/mysql-connector-c-${version}-winx64-debug.zip"
$sha = "93e22a1ba3944a6c8e01d3ea04c1bfb005b238f9"
$shaDebug = "d54088a9182e2f03b4d6f44c327e341eeab16367"
$zip = Get-DownloadLocation ("mysql-connector-c-" + $version + "-winx64.zip")
$zipDebug = Get-DownloadLocation ("mysql-connector-c-" + $version + "-winx64-debug.zip")
$officialUrl = "https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-${version}-winx64.zip"
$cacheURl = "http://ci-files01-hki.ci.qt.io/input/windows/mysql-${version}-winx64.zip"
$sha = "e5003569386006ccde9000c98e28e28073c1433d"
$zip = Get-DownloadLocation ("mysql-" + $version + "-winx64.zip")
function Install {
param(
@@ -32,11 +28,10 @@ function Install {
}
Install $officialUrl $cacheURl $zip $sha
Install $officialUrlDebug $cacheURlDebug $zipDebug $shaDebug
# Can't set MySQL_ROOT & MySQL_LIBRARY_DIR variables. Those will enable mysql in every windows target.
# Let's use ENV_MySQL_* and use it in platform_configs
Set-EnvironmentVariable "ENV_MySQL_ROOT" "${installFolder}\mysql-connector-c-${version}-winx64"
Set-EnvironmentVariable "ENV_MySQL_LIBRARY_DIR" "${installFolder}\mysql-connector-c-${version}-winx64\lib\vs14"
Set-EnvironmentVariable "ENV_MySQL_ROOT" "${installFolder}\mysql-${version}-winx64"
Set-EnvironmentVariable "ENV_MySQL_LIBRARY_DIR" "${installFolder}\mysql-${version}-winx64\lib"
Write-Output "MySQL = $version" >> ~/versions.txt