diff options
-rw-r--r-- | .SRCINFO | 56 | ||||
-rw-r--r-- | 0001-Use-CMake-s-default-import-library-suffix.patch | 115 | ||||
-rw-r--r-- | 0002-Fix-finding-D-Bus.patch | 23 | ||||
-rw-r--r-- | 0003-Fix-using-static-PCRE2-and-DBus-1.patch | 48 | ||||
-rw-r--r-- | 0004-Fix-transitive-dependencies-of-static-libraries.patch | 126 | ||||
-rw-r--r-- | 0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch | 37 | ||||
-rw-r--r-- | 0006-Support-finding-MariaDB.patch | 30 | ||||
-rw-r--r-- | 0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch | 37 | ||||
-rw-r--r-- | PKGBUILD | 98 | ||||
-rw-r--r-- | PKGBUILD.sh.ep | 1 | ||||
-rw-r--r-- | qtbase-sha256.txt | 1 |
11 files changed, 572 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..cf613b6c4975 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,56 @@ +pkgbase = mingw-w64-qt6-base-static + pkgdesc = A cross-platform application and UI framework (mingw-w64) + pkgver = 6.0.0beta3 + pkgrel = 1 + url = https://www.qt.io + arch = any + groups = mingw-w64-qt6 + license = GPL3 + license = LGPL3 + license = FDL + license = custom + makedepends = mingw-w64-cmake-static + makedepends = mingw-w64-postgresql + makedepends = mingw-w64-mariadb-connector-c + makedepends = mingw-w64-vulkan-headers + makedepends = mingw-w64-vulkan-icd-loader + makedepends = mingw-w64-pkg-config + makedepends = qt6-base + makedepends = ninja + depends = mingw-w64-crt + depends = mingw-w64-zlib + depends = mingw-w64-libjpeg-turbo + depends = mingw-w64-sqlite + depends = mingw-w64-libpng + depends = mingw-w64-openssl + depends = mingw-w64-dbus + depends = mingw-w64-harfbuzz + depends = mingw-w64-brotli + depends = mingw-w64-pcre2 + depends = mingw-w64-zstd + optdepends = mingw-w64-postgresql: PostgreSQL driver + optdepends = mingw-w64-mariadb-connector-c: MariaDB driver + optdepends = qt6-base: development tools + options = !strip + options = !buildflags + options = staticlibs + options = !emptydirs + source = https://download.qt.io/development_releases/qt/6.0/6.0.0-beta3/submodules/qtbase-everywhere-src-6.0.0-beta3.tar.xz + source = 0001-Use-CMake-s-default-import-library-suffix.patch + source = 0002-Fix-finding-D-Bus.patch + source = 0003-Fix-using-static-PCRE2-and-DBus-1.patch + source = 0004-Fix-transitive-dependencies-of-static-libraries.patch + source = 0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch + source = 0006-Support-finding-MariaDB.patch + source = 0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch + sha256sums = 37a97e30cf769b8deaa65aff585968ffb78bda20409177fe46959cb591a53268 + sha256sums = 272d7231b65b6af60c897ff9ac645929976f75c30a9229670da98333fa598811 + sha256sums = f95f407ce4ec738ee98b9219e197d4c1e0926cca35f63179114d598b2591e80a + sha256sums = cb8f9ef03daf86444572f21e38b514794aa23e4419983edde1118e93287750bf + sha256sums = 399b81b9fd5bedfe135f60b1e91721a8edbaf267539754e27849532130b7077b + sha256sums = 4311c05baf1da78f5acec304dbc53c402542aaa81268939251bda81cc004afd0 + sha256sums = 1200b9c57290fcb9e54e0bddf88536fe58b39ae2a24a3e2fd802cd16c7bfeb62 + sha256sums = 45201209696cce59d9e4f0358889eafb68c8e10b314892fac05692b24c301db7 + +pkgname = mingw-w64-qt6-base-static + diff --git a/0001-Use-CMake-s-default-import-library-suffix.patch b/0001-Use-CMake-s-default-import-library-suffix.patch new file mode 100644 index 000000000000..6df148946b23 --- /dev/null +++ b/0001-Use-CMake-s-default-import-library-suffix.patch @@ -0,0 +1,115 @@ +From 8073b269bb69ab091bb29600c1f7a493f3543a83 Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Thu, 5 Nov 2020 22:08:10 +0100 +Subject: [PATCH 1/7] Use CMake's default import library suffix + +Change-Id: Iedc6a7ee8982a62ddd56ad0bf25ba0b8752a666a +--- + cmake/QtPriHelpers.cmake | 12 ++++++++++-- + cmake/QtPrlHelpers.cmake | 8 +++++++- + cmake/QtTargetHelpers.cmake | 2 -- + mkspecs/common/g++-win32.conf | 1 + + mkspecs/features/create_cmake.prf | 5 +++-- + 5 files changed, 21 insertions(+), 7 deletions(-) + +diff --git a/cmake/QtPriHelpers.cmake b/cmake/QtPriHelpers.cmake +index 56c60b1b18..18e1aeddb1 100644 +--- a/cmake/QtPriHelpers.cmake ++++ b/cmake/QtPriHelpers.cmake +@@ -320,9 +320,13 @@ QT.${config_module_name}_private.disabled_features = ${disabled_private_features + qt_path_join(private_pri_file_path "${target_path}" "${private_pri_file_name}") + list(APPEND pri_files "${private_pri_file_path}") + +- set(library_prefixes ${CMAKE_SHARED_LIBRARY_PREFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}) ++ set(library_prefixes ++ ${CMAKE_SHARED_LIBRARY_PREFIX} ++ ${CMAKE_IMPORT_LIBRARY_PREFIX} ++ ${CMAKE_STATIC_LIBRARY_PREFIX}) + set(library_suffixes + ${CMAKE_SHARED_LIBRARY_SUFFIX} ++ ${CMAKE_CMAKE_IMPORT_LIBRARY_SUFFIX} + ${CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES} + ${CMAKE_STATIC_LIBRARY_SUFFIX}) + add_custom_command( +@@ -727,9 +731,13 @@ CONFIG += ${private_config_joined} + list(APPEND inputs "${preliminary_pri_root}/${cfg}/${pri_data_cmake_file}") + endforeach() + +- set(library_prefixes ${CMAKE_SHARED_LIBRARY_PREFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}) ++ set(library_prefixes ++ ${CMAKE_SHARED_LIBRARY_PREFIX} ++ ${CMAKE_IMPORT_LIBRARY_PREFIX} ++ ${CMAKE_STATIC_LIBRARY_PREFIX}) + set(library_suffixes + ${CMAKE_SHARED_LIBRARY_SUFFIX} ++ ${CMAKE_CMAKE_IMPORT_LIBRARY_SUFFIX} + ${CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES} + ${CMAKE_STATIC_LIBRARY_SUFFIX}) + add_custom_command( +diff --git a/cmake/QtPrlHelpers.cmake b/cmake/QtPrlHelpers.cmake +index 35d321420c..40a85e6c73 100644 +--- a/cmake/QtPrlHelpers.cmake ++++ b/cmake/QtPrlHelpers.cmake +@@ -258,11 +258,17 @@ QMAKE_PRL_VERSION = ${PROJECT_VERSION} + CONTENT + "FINAL_PRL_FILE_PATH = ${final_prl_file_path}") + +- set(library_prefixes ${CMAKE_SHARED_LIBRARY_PREFIX} ${CMAKE_STATIC_LIBRARY_PREFIX}) ++ set(library_prefixes ++ ${CMAKE_SHARED_LIBRARY_PREFIX} ++ ${CMAKE_IMPORT_LIBRARY_PREFIX} ++ ${CMAKE_STATIC_LIBRARY_PREFIX}) + set(library_suffixes + ${CMAKE_SHARED_LIBRARY_SUFFIX} ++ ${CMAKE_CMAKE_IMPORT_LIBRARY_SUFFIX} + ${CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES} + ${CMAKE_STATIC_LIBRARY_SUFFIX}) ++ list(REMOVE_DUPLICATES library_prefixes) ++ list(REMOVE_DUPLICATES library_suffixes) + + if(QT_GENERATOR_IS_MULTI_CONFIG) + set(configs ${CMAKE_CONFIGURATION_TYPES}) +diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake +index fcbb3ab1f2..332ef6ee4c 100644 +--- a/cmake/QtTargetHelpers.cmake ++++ b/cmake/QtTargetHelpers.cmake +@@ -283,8 +283,6 @@ function(qt_internal_apply_win_prefix_and_suffix target) + + # This should cover both MINGW with GCC and CLANG. + if(NOT MSVC) +- set_property(TARGET "${target}" PROPERTY IMPORT_SUFFIX ".a") +- + get_target_property(target_type ${target} TYPE) + if(target_type STREQUAL "STATIC_LIBRARY") + set_property(TARGET "${target}" PROPERTY PREFIX "lib") +diff --git a/mkspecs/common/g++-win32.conf b/mkspecs/common/g++-win32.conf +index 67ad1e3b8c..b98c7121f6 100644 +--- a/mkspecs/common/g++-win32.conf ++++ b/mkspecs/common/g++-win32.conf +@@ -54,6 +54,7 @@ QMAKE_PREFIX_SHLIB = + QMAKE_EXTENSION_SHLIB = dll + QMAKE_PREFIX_STATICLIB = lib + QMAKE_EXTENSION_STATICLIB = a ++QMAKE_EXTENSION_IMPORTLIB = dll.a + QMAKE_LIB_EXTENSIONS = a dll.a + + QMAKE_LIBS = +diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf +index 24ed125f12..73ebe453d3 100644 +--- a/mkspecs/features/create_cmake.prf ++++ b/mkspecs/features/create_cmake.prf +@@ -332,8 +332,9 @@ mac { + CMAKE_WINMAIN_FILE_LOCATION_DEBUG = libqtmain$${QT_LIBINFIX}$${debug_suffix}.a + CMAKE_WINMAIN_FILE_LOCATION_RELEASE = libqtmain$${QT_LIBINFIX}.a + +- CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}$${debug_suffix}.a +- CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a ++ isEmpty(QMAKE_EXTENSION_IMPORTLIB): QMAKE_EXTENSION_IMPORTLIB = a ++ CMAKE_IMPLIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}$${debug_suffix}.$${QMAKE_EXTENSION_IMPORTLIB} ++ CMAKE_IMPLIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.$${QMAKE_EXTENSION_IMPORTLIB} + } else { + CMAKE_WINMAIN_FILE_LOCATION_DEBUG = qtmain$${QT_LIBINFIX}$${debug_suffix}.lib + CMAKE_WINMAIN_FILE_LOCATION_RELEASE = qtmain$${QT_LIBINFIX}.lib +-- +2.29.2 + diff --git a/0002-Fix-finding-D-Bus.patch b/0002-Fix-finding-D-Bus.patch new file mode 100644 index 000000000000..28c2424850f0 --- /dev/null +++ b/0002-Fix-finding-D-Bus.patch @@ -0,0 +1,23 @@ +From 5c192c74f9f5fd7369742a413fe26bdd67ed677f Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Wed, 7 Oct 2020 12:13:37 +0200 +Subject: [PATCH 2/7] Fix finding D-Bus + +Change-Id: Ie21eb9cbc6b1b5d9c8b34eea46f54718e5926986 +--- + cmake/FindWrapDBus1.cmake | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cmake/FindWrapDBus1.cmake b/cmake/FindWrapDBus1.cmake +index e227d224e0..4982e7c8ae 100644 +--- a/cmake/FindWrapDBus1.cmake ++++ b/cmake/FindWrapDBus1.cmake +@@ -45,3 +45,4 @@ include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(WrapDBus1 REQUIRED_VARS + DBus1_LIBRARY DBus1_INCLUDE_DIR WrapDBus1_FOUND + VERSION_VAR DBus1_VERSION) ++set_property(TARGET dbus-1 PROPERTY IMPORTED_IMPLIB ${DBus1_LIBRARY}) +\ No newline at end of file +-- +2.29.2 + diff --git a/0003-Fix-using-static-PCRE2-and-DBus-1.patch b/0003-Fix-using-static-PCRE2-and-DBus-1.patch new file mode 100644 index 000000000000..d8a3748a30ff --- /dev/null +++ b/0003-Fix-using-static-PCRE2-and-DBus-1.patch @@ -0,0 +1,48 @@ +From 084aa1b73f9f33096c4a5f34cba773545da3ae33 Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Thu, 5 Nov 2020 21:13:19 +0100 +Subject: [PATCH 3/7] Fix using static PCRE2 and DBus-1 + +When making a static build of Qt we're using the static version of these +libraries and must define the corresponding macros. + +Change-Id: I2387b79462b6d183b71f9433dd937f63fc7ef26e +--- + src/corelib/text/qregularexpression.cpp | 5 +++++ + src/dbus/qdbus_symbols_p.h | 4 ++++ + 2 files changed, 9 insertions(+) + +diff --git a/src/corelib/text/qregularexpression.cpp b/src/corelib/text/qregularexpression.cpp +index 827884d709..be5159186c 100644 +--- a/src/corelib/text/qregularexpression.cpp ++++ b/src/corelib/text/qregularexpression.cpp +@@ -53,6 +53,11 @@ + #include <QtCore/qdatastream.h> + + #define PCRE2_CODE_UNIT_WIDTH 16 ++#ifdef QT_STATIC ++#define PCRE_STATIC ++#define PCRE2_STATIC ++#endif ++#define PCRE2_EXP_DECL Q_CORE_EXPORT + + #include <pcre2.h> + +diff --git a/src/dbus/qdbus_symbols_p.h b/src/dbus/qdbus_symbols_p.h +index accaa4f5ed..4b11c74caa 100644 +--- a/src/dbus/qdbus_symbols_p.h ++++ b/src/dbus/qdbus_symbols_p.h +@@ -57,6 +57,10 @@ + + #ifndef QT_NO_DBUS + ++#ifdef QT_STATIC ++# define DBUS_STATIC_BUILD ++#endif ++ + #ifdef QT_LINKED_LIBDBUS + # include <dbus/dbus.h> + #else +-- +2.29.2 + diff --git a/0004-Fix-transitive-dependencies-of-static-libraries.patch b/0004-Fix-transitive-dependencies-of-static-libraries.patch new file mode 100644 index 000000000000..3e4cbd998adc --- /dev/null +++ b/0004-Fix-transitive-dependencies-of-static-libraries.patch @@ -0,0 +1,126 @@ +From 4341f7b4267e1287fa6c41ba0a4afddf505408dc Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Thu, 5 Nov 2020 21:59:33 +0100 +Subject: [PATCH 4/7] Fix transitive dependencies (of static libraries) + +The dependencies of these libraries are not reliably picked up by their +corresponding find modules. This change allows adding the required +dependencies by setting certain variables, e.g. within the toolchain file. + +Change-Id: I89da5ef519dd6dd3f86a94a01d3da7208a070bdb +--- + .../3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake | 2 +- + cmake/FindMySQL.cmake | 1 + + cmake/FindWrapDBus1.cmake | 3 ++- + cmake/FindWrapOpenSSL.cmake | 2 +- + cmake/FindWrapSystemFreetype.cmake | 2 +- + cmake/FindWrapSystemHarfbuzz.cmake | 2 +- + cmake/FindWrapSystemPNG.cmake | 2 +- + src/plugins/sqldrivers/psql/CMakeLists.txt | 2 +- + 8 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake +index 8f873c1b45..831ca8e624 100644 +--- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake ++++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake +@@ -95,7 +95,7 @@ if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2) + add_library(GLIB2::GLIB2 UNKNOWN IMPORTED) + set_target_properties(GLIB2::GLIB2 PROPERTIES + IMPORTED_LOCATION "${GLIB2_LIBRARIES}" +- INTERFACE_LINK_LIBRARIES "${GTHREAD2_LIBRARIES}" ++ INTERFACE_LINK_LIBRARIES "${GTHREAD2_LIBRARIES};${GLIB2_DEPENDENCIES}" + INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_INCLUDE_DIRS}") + endif() + +diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake +index 54c94b8a2f..7575386338 100644 +--- a/cmake/FindMySQL.cmake ++++ b/cmake/FindMySQL.cmake +@@ -38,6 +38,7 @@ if(MySQL_FOUND AND NOT TARGET MySQL::MySQL) + add_library(MySQL::MySQL UNKNOWN IMPORTED) + set_target_properties(MySQL::MySQL PROPERTIES + IMPORTED_LOCATION "${MySQL_LIBRARIES}" ++ INTERFACE_LINK_LIBRARIES "${MYSQL_DEPENDENCIES}" + INTERFACE_INCLUDE_DIRECTORIES "${MySQL_INCLUDE_DIRS}") + endif() + +diff --git a/cmake/FindWrapDBus1.cmake b/cmake/FindWrapDBus1.cmake +index 4982e7c8ae..56d139c538 100644 +--- a/cmake/FindWrapDBus1.cmake ++++ b/cmake/FindWrapDBus1.cmake +@@ -45,4 +45,5 @@ include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(WrapDBus1 REQUIRED_VARS + DBus1_LIBRARY DBus1_INCLUDE_DIR WrapDBus1_FOUND + VERSION_VAR DBus1_VERSION) +-set_property(TARGET dbus-1 PROPERTY IMPORTED_IMPLIB ${DBus1_LIBRARY}) +\ No newline at end of file ++set_property(TARGET dbus-1 PROPERTY IMPORTED_IMPLIB ${DBus1_LIBRARY}) ++set_property(TARGET dbus-1 PROPERTY INTERFACE_LINK_LIBRARIES "${DBUS1_DEPENDENCIES}") +diff --git a/cmake/FindWrapOpenSSL.cmake b/cmake/FindWrapOpenSSL.cmake +index 6e80862258..47bea72aad 100644 +--- a/cmake/FindWrapOpenSSL.cmake ++++ b/cmake/FindWrapOpenSSL.cmake +@@ -14,7 +14,7 @@ if(OpenSSL_FOUND) + set(WrapOpenSSL_FOUND ON) + + add_library(WrapOpenSSL::WrapOpenSSL INTERFACE IMPORTED) +- target_link_libraries(WrapOpenSSL::WrapOpenSSL INTERFACE OpenSSL::SSL) ++ target_link_libraries(WrapOpenSSL::WrapOpenSSL INTERFACE OpenSSL::SSL ${OPENSSL_DEPENDENCIES}) + endif() + + include(FindPackageHandleStandardArgs) +diff --git a/cmake/FindWrapSystemFreetype.cmake b/cmake/FindWrapSystemFreetype.cmake +index 2cf6caca19..23dc161e4c 100644 +--- a/cmake/FindWrapSystemFreetype.cmake ++++ b/cmake/FindWrapSystemFreetype.cmake +@@ -44,7 +44,7 @@ find_package_handle_standard_args(WrapSystemFreetype + if(WrapSystemFreetype_FOUND) + add_library(WrapSystemFreetype::WrapSystemFreetype INTERFACE IMPORTED) + target_link_libraries(WrapSystemFreetype::WrapSystemFreetype +- INTERFACE "${__freetype_target_name}") ++ INTERFACE "${__freetype_target_name}" ${FREETYPE_DEPENDENCIES}) + endif() + unset(__freetype_target_name) + unset(__freetype_found) +diff --git a/cmake/FindWrapSystemHarfbuzz.cmake b/cmake/FindWrapSystemHarfbuzz.cmake +index 3cb44aa766..9dc741b2be 100644 +--- a/cmake/FindWrapSystemHarfbuzz.cmake ++++ b/cmake/FindWrapSystemHarfbuzz.cmake +@@ -54,7 +54,7 @@ find_package_handle_standard_args(WrapSystemHarfbuzz + if(WrapSystemHarfbuzz_FOUND) + add_library(WrapSystemHarfbuzz::WrapSystemHarfbuzz INTERFACE IMPORTED) + target_link_libraries(WrapSystemHarfbuzz::WrapSystemHarfbuzz +- INTERFACE "${__harfbuzz_target_name}") ++ INTERFACE "${__harfbuzz_target_name}" ${HARFBUZZ_DEPENDENCIES}) + endif() + unset(__harfbuzz_target_name) + unset(__harfbuzz_found) +diff --git a/cmake/FindWrapSystemPNG.cmake b/cmake/FindWrapSystemPNG.cmake +index 372a064ff4..a363bfd31b 100644 +--- a/cmake/FindWrapSystemPNG.cmake ++++ b/cmake/FindWrapSystemPNG.cmake +@@ -33,7 +33,7 @@ find_package_handle_standard_args(WrapSystemPNG + if(WrapSystemPNG_FOUND) + add_library(WrapSystemPNG::WrapSystemPNG INTERFACE IMPORTED) + target_link_libraries(WrapSystemPNG::WrapSystemPNG +- INTERFACE "${__png_target_name}") ++ INTERFACE "${__png_target_name}" ${LIBPNG_DEPENDENCIES}) + endif() + unset(__png_target_name) + unset(__png_found) +diff --git a/src/plugins/sqldrivers/psql/CMakeLists.txt b/src/plugins/sqldrivers/psql/CMakeLists.txt +index 62e9619d16..939163bde7 100644 +--- a/src/plugins/sqldrivers/psql/CMakeLists.txt ++++ b/src/plugins/sqldrivers/psql/CMakeLists.txt +@@ -19,7 +19,7 @@ qt_internal_add_plugin(QPSQLDriverPlugin + QT_NO_CAST_FROM_ASCII + QT_NO_CAST_TO_ASCII + PUBLIC_LIBRARIES +- PostgreSQL::PostgreSQL ++ PostgreSQL::PostgreSQL ${POSTGRESQL_DEPENDENCIES} + Qt::Core + Qt::CorePrivate + Qt::SqlPrivate +-- +2.29.2 + diff --git a/0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch b/0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch new file mode 100644 index 000000000000..b528b949a504 --- /dev/null +++ b/0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch @@ -0,0 +1,37 @@ +From 0f92aeca18858e11ddaa25b7cdad7d89303052ea Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Mon, 2 Nov 2020 13:47:45 +0100 +Subject: [PATCH 5/7] Fix libjpeg workaround for conflict with rpcndr.h + +Otherwise it won't compile against mingw-w64-libjpeg-turbo. This version of +libjpeg seems to take care of the conflict already as long as jconfig.h is +included before jmorecfg.h. + +Change-Id: I011b7735485689c9797cffe2646c8c3d15d0645e +--- + src/plugins/imageformats/jpeg/qjpeghandler.cpp | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +diff --git a/src/plugins/imageformats/jpeg/qjpeghandler.cpp b/src/plugins/imageformats/jpeg/qjpeghandler.cpp +index 29bf5ab589..dc336f156a 100644 +--- a/src/plugins/imageformats/jpeg/qjpeghandler.cpp ++++ b/src/plugins/imageformats/jpeg/qjpeghandler.cpp +@@ -61,14 +61,8 @@ + + // including jpeglib.h seems to be a little messy + extern "C" { +-// jpeglib.h->jmorecfg.h tries to typedef int boolean; but this conflicts with +-// some Windows headers that may or may not have been included +-#ifdef HAVE_BOOLEAN +-# undef HAVE_BOOLEAN +-#endif +-#define boolean jboolean +- + #define XMD_H // shut JPEGlib up ++#include <jconfig.h> // ensure jconfig.h is included before jmorecfg.h + #include <jpeglib.h> + #ifdef const + # undef const // remove crazy C hackery in jconfig.h +-- +2.29.2 + diff --git a/0006-Support-finding-MariaDB.patch b/0006-Support-finding-MariaDB.patch new file mode 100644 index 000000000000..ab1defa785a7 --- /dev/null +++ b/0006-Support-finding-MariaDB.patch @@ -0,0 +1,30 @@ +From 757964d9bf2e3d2f315f4210cedd7be6cac54c3f Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 8 Nov 2020 00:33:12 +0100 +Subject: [PATCH 6/7] Support finding MariaDB + +Change-Id: I3f95a7c3aabc734e1c6c5ce00957ab9814200232 +--- + cmake/FindMySQL.cmake | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake +index 7575386338..df1d848cf6 100644 +--- a/cmake/FindMySQL.cmake ++++ b/cmake/FindMySQL.cmake +@@ -24,10 +24,10 @@ pkg_check_modules(PC_MySQL QUIET mysqlclient) + find_path(MySQL_INCLUDE_DIRS + NAMES mysql.h + HINTS ${PC_MySQL_INCLUDEDIR} +- PATH_SUFFIXES mysql) ++ PATH_SUFFIXES mariadb mysql) + + find_library(MySQL_LIBRARIES +- NAMES mysqlclient ++ NAMES mariadb mariadbclient mysqlclient + HINTS ${PC_MySQL_LIBDIR} + ) + +-- +2.29.2 + diff --git a/0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch b/0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch new file mode 100644 index 000000000000..c1013acb9531 --- /dev/null +++ b/0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch @@ -0,0 +1,37 @@ +From 9bae5f17b9371f03d5075f596bc3d5e50018759d Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 8 Nov 2020 00:34:09 +0100 +Subject: [PATCH 7/7] Allow overriding CMAKE_FIND_LIBRARY_SUFFIXES to prefer + static libraries + +Change-Id: Ic29b64b999ed9b5888a8dc1b0961a76009c5e75c +--- + cmake/QtBuildInternals/QtBuildInternalsConfig.cmake | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake +index 56e7e99d63..e3025fb2c0 100644 +--- a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake ++++ b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake +@@ -2,6 +2,10 @@ if (CMAKE_VERSION VERSION_LESS 3.1.0) + message(FATAL_ERROR "Qt requires at least CMake version 3.1.0") + endif() + ++if (CMAKE_FIND_LIBRARY_SUFFIXES_OVERRIDE) ++ set(CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_FIND_LIBRARY_SUFFIXES_OVERRIDE}") ++endif () ++ + ###################################### + # + # Macros for building Qt modules +@@ -220,6 +224,7 @@ macro(qt_prepare_standalone_project) + endmacro() + + macro(qt_build_repo_begin) ++ + qt_build_internals_set_up_private_api() + qt_enable_cmake_languages() + +-- +2.29.2 + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..ac07f6a8caa5 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,98 @@ +# Maintainer: Martchus <martchus@gmx.net> +# Based on: AUR packages qt6-base-git and mingw-w64-qt6-base-git, official qt5-base package + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +# This file is created from PKGBUILD.sh.ep contained by the mentioned repository. +# Do not edit it manually! See README.md in the repository's root directory +# for more information. + +# All patches are managed at https://github.com/Martchus/qtbase + +pkgname=mingw-w64-qt6-base-static +_qtver=6.0.0-beta3 +pkgver=${_qtver/-/} +pkgrel=1 +arch=(any) +url='https://www.qt.io' +license=(GPL3 LGPL3 FDL custom) +pkgdesc='A cross-platform application and UI framework (mingw-w64)' +depends=('mingw-w64-crt' 'mingw-w64-zlib' 'mingw-w64-libjpeg-turbo' 'mingw-w64-sqlite' + 'mingw-w64-libpng' 'mingw-w64-openssl' 'mingw-w64-dbus' 'mingw-w64-harfbuzz' + 'mingw-w64-brotli' 'mingw-w64-pcre2' 'mingw-w64-zstd') +makedepends=('mingw-w64-cmake-static' 'mingw-w64-postgresql' 'mingw-w64-mariadb-connector-c' + 'mingw-w64-vulkan-headers' 'mingw-w64-vulkan-icd-loader' 'mingw-w64-pkg-config' + 'qt6-base' 'ninja') +optdepends=('mingw-w64-postgresql: PostgreSQL driver' + 'mingw-w64-mariadb-connector-c: MariaDB driver' + 'qt6-base: development tools') +options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') +groups=(mingw-w64-qt6) +_pkgfqn="qtbase-everywhere-src-${_qtver}" +source=("https://download.qt.io/development_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz" + '0001-Use-CMake-s-default-import-library-suffix.patch' + '0002-Fix-finding-D-Bus.patch' + '0003-Fix-using-static-PCRE2-and-DBus-1.patch' + '0004-Fix-transitive-dependencies-of-static-libraries.patch' + '0005-Fix-libjpeg-workaround-for-conflict-with-rpcndr.h.patch' + '0006-Support-finding-MariaDB.patch' + '0007-Allow-overriding-CMAKE_FIND_LIBRARY_SUFFIXES-to-pref.patch') +sha256sums=('37a97e30cf769b8deaa65aff585968ffb78bda20409177fe46959cb591a53268' + '272d7231b65b6af60c897ff9ac645929976f75c30a9229670da98333fa598811' + 'f95f407ce4ec738ee98b9219e197d4c1e0926cca35f63179114d598b2591e80a' + 'cb8f9ef03daf86444572f21e38b514794aa23e4419983edde1118e93287750bf' + '399b81b9fd5bedfe135f60b1e91721a8edbaf267539754e27849532130b7077b' + '4311c05baf1da78f5acec304dbc53c402542aaa81268939251bda81cc004afd0' + '1200b9c57290fcb9e54e0bddf88536fe58b39ae2a24a3e2fd802cd16c7bfeb62' + '45201209696cce59d9e4f0358889eafb68c8e10b314892fac05692b24c301db7') + +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' + +prepare () { + cd $_pkgfqn + + # apply patches; further descriptions can be found in patch files itself + for patch in "$srcdir/"*.patch; do + msg2 "Applying patch $patch" + patch -p1 -i "$patch" + done +} + +build() { + for _arch in ${_architectures}; do + export PKG_CONFIG=/usr/bin/$_arch-pkg-config + $_arch-cmake-static -G Ninja -B build-$_arch -S $_pkgfqn \ + -DCMAKE_INSTALL_PREFIX:PATH="/usr/$_arch/static" \ + -DFEATURE_pkg_config=ON \ + -DFEATURE_system_pcre2=ON \ + -DFEATURE_system_freetype=ON \ + -DFEATURE_system_harfbuzz=ON \ + -DFEATURE_system_sqlite=ON \ + -DINSTALL_BINDIR=lib/qt6/bin \ + -DINSTALL_DOCDIR=share/doc/qt6 \ + -DINSTALL_ARCHDATADIR=lib/qt6 \ + -DINSTALL_DATADIR=share/qt6 \ + -DINSTALL_INCLUDEDIR=include/qt6 \ + -DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \ + -DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \ + -DINPUT_openssl=linked + VERBOSE=1 cmake --build build-$_arch + done +} + +package() { + for _arch in ${_architectures}; do + DESTDIR="$pkgdir" cmake --install build-$_arch + + install -Dm644 $_pkgfqn/LICENSE* -t "$pkgdir"/usr/$_arch/share/licenses/$pkgname + + # Drop QMAKE_PRL_BUILD_DIR because reference the build dir + find "$pkgdir/usr/$_arch/static/lib" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \; + + find "$pkgdir/usr/$_arch" -iname '*.exe' -exec $_arch-strip --strip-all {} \; + find "$pkgdir/usr/$_arch" -iname '*.dll' -exec $_arch-strip --strip-unneeded {} \; + find "$pkgdir/usr/$_arch" -iname '*.a' -exec $_arch-strip -g {} \; + done +} diff --git a/PKGBUILD.sh.ep b/PKGBUILD.sh.ep new file mode 100644 index 000000000000..be0caf0136ee --- /dev/null +++ b/PKGBUILD.sh.ep @@ -0,0 +1 @@ +% layout 'mingw-w64-qt6-base'; diff --git a/qtbase-sha256.txt b/qtbase-sha256.txt new file mode 100644 index 000000000000..5057e6d92c6f --- /dev/null +++ b/qtbase-sha256.txt @@ -0,0 +1 @@ +37a97e30cf769b8deaa65aff585968ffb78bda20409177fe46959cb591a53268 |