Go to file
Kyle Edwards eda28621f6 Add support for linking against static builds in CMake
This change reinstates functionality that was removed in
commit 102e1822ff. However, it
differs from the original implementation in several ways:

* It uses the QMAKE_PRL_LIBS variable, replacing whitespace with
  semicolons, rather than using a dedicated QMAKE_PRL_LIBS_FOR_CMAKE
  variable.
* More importantly, it parses the -L and -l flags and uses CMake's
  find_library() command to look for the libraries in the specified
  search paths, and then converts them to absolute paths. This is the
  same approach that CMake's own FindPkgConfig module uses to find
  libraries specified in this form. Any other flags not of the form
  -L or -l (for instance, -s flags passed to Emscripten) are added to
  the new INTERFACE_LINK_OPTIONS target property if the CMake version
  is 3.13 or newer.

The original implementation of this functionality was removed because
of the lack of absolute library paths. At the time, it was believed
that qmake would have to be modified to do its own equivalent of
find_library() to get the absolute paths to the libraries. However,
the approach taken by FindPkgConfig has proven robust enough to be
used here, allowing CMake to find the absolute paths to the libraries
without having to modify qmake.

[ChangeLog][CMake] Added support for automatic linking of transitive
dependencies in static builds

Fixes: QTBUG-38913
Change-Id: I7d9cdb0d339c6ef697b04099d129481c770fc0fc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-12-07 21:06:53 +00:00
bin syncqt: Do not clean header directory before "-minimal" run 2018-11-22 14:16:53 +00:00
config.tests Merge remote-tracking branch 'origin/5.11' into 5.12 2018-10-21 01:00:09 +02:00
dist Merge remote-tracking branch 'origin/5.12' into dev 2018-11-22 01:53:29 +01:00
doc Merge remote-tracking branch 'origin/5.12' into dev 2018-10-25 07:21:53 +02:00
examples Merge "Merge remote-tracking branch 'origin/5.12' into dev" into refs/staging/dev 2018-12-04 19:41:52 +00:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
mkspecs Add support for linking against static builds in CMake 2018-12-07 21:06:53 +00:00
qmake Merge remote-tracking branch 'origin/5.12' into dev 2018-12-04 09:58:43 +01:00
src Use a QMultiMap for the fontengine cache 2018-12-07 10:17:07 +00:00
tests Add a testlib selftest for the watchdog 2018-12-06 18:29:47 +00:00
util Merge remote-tracking branch 'origin/5.12' into dev 2018-11-13 01:00:13 +01:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Remove support for qml1 plugins and modules 2018-11-15 19:52:13 +00:00
.qmake.conf Bump version 2018-11-08 11:26:39 +01:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
config_help.txt Merge remote-tracking branch 'origin/5.12' into dev 2018-12-04 09:58:43 +01:00
configure configure: Treat win32-clang-g++ the same as win32-g++ 2018-10-10 04:10:40 +00:00
configure.bat configure: Prefer cl.exe over clang-cl.exe 2018-01-04 21:22:42 +00:00
configure.json Merge remote-tracking branch 'origin/5.12' into dev 2018-12-04 09:58:43 +01:00
configure.pri Merge remote-tracking branch 'origin/5.12' into dev 2018-11-27 01:00:36 +01:00
header.BSD Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.FDL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL-EXCEPT Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3-COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-NOGPL2 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-ONLY Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.MIT qsimd: add support for new x86 CPU features 2018-05-05 06:20:07 +00:00
INSTALL Doc: Update links in INSTALL file 2015-02-16 09:06:41 +00:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPLv3 Remove LICENSE.GPLv3, LICENSE.LGPLv21, LGPL_EXCEPTION.txt 2018-04-16 11:02:14 +00:00
LICENSE.QT-LICENSE-AGREEMENT-4.0 Replace commercial preview license with Qt License Agreement 4.0 2018-06-21 11:39:15 +00:00
qtbase.pro nuke configure -host-option 2016-12-13 18:55:59 +00:00
sync.profile Fix build failed with ANGLE 2018-10-16 05:19:43 +00:00