Package Details: mingw-w64-qt5-base-static 5.9.2-1

Git Clone URL: https://aur.archlinux.org/mingw-w64-qt5-base-static.git (read-only)
Package Base: mingw-w64-qt5-base-static
Description: A cross-platform application and UI framework (mingw-w64)
Upstream URL: https://www.qt.io/
Licenses: custom, GPL3, LGPL3, FDL
Groups: mingw-w64-qt5
Submitter: ant32
Maintainer: Martchus
Last Packager: Martchus
Votes: 8
Popularity: 0.229997
First Submitted: 2013-08-28 23:57
Last Updated: 2017-10-16 17:39

Required by (54)

Sources (34)

Pinned Comments

Martchus commented on 2017-01-10 21:24

Notes about using static Qt with CMake:

* Checkout the notes about the static version in the PKGBUILD itself
* Seems like find_package(Qt5Core) is still required when building static version. I think this is not really a problem, one just has to know it.
* Here is a simple example: https://github.com/oggio88/Qt-CMake-HelloWorld/compare/master...Martchus:mingw-w64-static
* I also included a commits showing how to link statically against against Qt plugins and dependencies of Qt itself.

Note about using static Qt with qmake:
* Use https://github.com/Martchus/qtbase/commit/acc61ef7833f685b1f66c9b99086ccfc1e6aa20f to fix inclusion of static plugins (patch will be included on next update, meanwhile it can also be applied manually after the mingw-w64-qt5-base package has been installed)
* Add `CONFIG+=no_smart_library_merge` to qmake arguments to prevent qmake from messing linker flags for freetype2/harfbuzz (which have dependency cycle).

Martchus commented on 2016-07-10 19:47

All my packages are managed at GitHub where you can also contribute directly: https://github.com/Martchus/PKGBUILDs
Patches for this package are managed at: https://github.com/Martchus/qtbase/tree/5.7.0-mingw-w64

There also exist a binary repository: https://martchus.no-ip.biz/repo/arch/ownstuff

For general discussion and issues not only concerning this variant please use the comment section of the package mingw-w64-qt5-base.

Latest Comments

woggioni commented on 2017-09-27 10:41

@Martchus No, I get:
main.cpp:7: undefined reference to `qt_static_plugin_QWindowsIntegrationPlugin()'
the code is here (I just added an hello.pro file) https://github.com/oggio88/Qt-CMake-HelloWorld
EDIT:
I have to apply the patch you linked (thought it was already included)
EDIT/2:
I applied the patch at https://github.com/Martchus/qtbase/commit/acc61ef7833f685b1f66c9b99086ccfc1e6aa20f, rebuilt the package mingw-w64-qt5-base-static and still get the same error
EDIT/3:
I just remembered that qmake is in the mingw-w64-qt5-base package, I rebuilt it with your patch and it works perfectly, thanks!

Martchus commented on 2017-09-26 15:35

@woggioni I updated the pinned comment. So the proposed workaround does not work for you? I only tested a simple application from the Qt examples (see the already linked comment). Which project are you trying to compile?

woggioni commented on 2017-09-26 15:17

@Martchus No, I didn't... sorry. It would be nice if AUR could provide a section with that kind of information for each package instead of having to read through all the queue of previous comments backwards. Anyway, to me, building with qmake would be a nice plus, but It's not really necessary since I use cmake for all the serious stuff. I tried to fix the problem myself, but I had no success.. I'll just stick to cmake.

Martchus commented on 2017-09-20 13:29

@woggioni Did you read [my comment](https://aur.archlinux.org/packages/mingw-w64-qt5-base#comment-609455) in the comment section of mingw-w64-qt5-base?

woggioni commented on 2017-09-20 07:07

Is it possible to build with qmake? I get a lot of linker errors when using x86_64-w64-mingw32-qmake-qt5 and CONFIG += static

woggioni commented on 2017-03-23 08:13

The only trouble I found is that one of my project had ${Qt5Gui_PRIVATE_INCLUDE_DIRS} in the include path and I had to manually populate the variable to make it compile

Martchus commented on 2017-03-22 23:35

Fixed the MariaDB issue and the `StaticQt5::Test` issue. PostgreSQL must still be fixed in mingw-w64-postgresql.

BTW: The static MariaDB library couldn't be detected before because in my patch the dependency `gdi32` was missing. So for the fix is no sed required at all.

I don't know how to fix the issue of the empty private include dir. It seems that this issue has already been present since quite a while now (maybe even before I was maintainer). Is the missing path causing any further trouble or just a thing you noted?

Martchus commented on 2017-03-21 13:13

Nice, I'll include it with the other fix when I have the time. But maybe I'll patch instead of using `sed`. I ask Schala to update mingw-w64-postgresql.

woggioni commented on 2017-03-21 13:09

I solved the DB plugin issue using ant32's advice for Postgres and adding this to the end of the package function in PKGBUILD to fix MariaDB

if isStatic; then
for file in ${pkgdir}/usr/${_arch}/lib/qt/plugins/sqldrivers/*.prl
do
sed -i 's/-lmariadb;/-lmariadbclient;/g' $file
sed -i 's/-lmariadb /-lmariadbclient /g' $file
done
fi

There might be a shorter way but I didn't want to mess with sed regex.
Yes, I really meant CMake own sources.. that is quite sad

Martchus commented on 2017-03-18 17:36

> it's simply because that name is hardcoded in cmake source code :(

Oh, you mean the sources of CMake itself. I guess then we just live with including the non static module, too.

I already have a fix for the test module. Just need to check whether it works.

I guess the condition `!exists($$first(QT.$${MODULE}_private.includes)): CMAKE_NO_PRIVATE_INCLUDES = true` in create_cmake.prf is preventing the variables for private include dirs to be set. Not sure how to fix it yet.
EDIT: The issue seems to occur in other cases than this mingw-w64 package, too. Annulen on #qt-labs has already tracked it down to: http://code.qt.io/cgit/qt/qtbase.git/tree/mkspecs/features/qt_module_headers.prf#n37

Haven't looked into the issue about the DB plugins yet. Did you any of the things I proposed in the last comment? Do you actually need the plugins or would silencing the errors be good enough?

All comments