qt5base-lts/qmake
Alexandru Croitor 42d3b21c92 Export tool config and target files for each relevant module
CMake will now generate config and target files for each module that
provides tools. As a result, namespaced global targets such as
Qt5::moc or Qt5::rcc can be made available.

Third party projects that require just these tools, and not the Qt
modules themselves,  should specify CMAKE_PREFIX_PATH pointing to the
installed Qt location, and call find_package(Qt5CoreTools),
find_package(Qt5GuiTools), etc.

It is also possible to call
find_package(Qt5Tools REQUIRED Core Widgets) where the last option
is a list of modules whose tools should be imported.

Note that all the tools are in the Qt5::
namespace and not in the Qt5CoreTools:: or Qt5WidgetsTools::
namespace.

This commit also changes the behavior regarding when to build tools
while building Qt itself.

When cross compiling Qt (checked via CMAKE_CROSSCOMPILING) or when
-DQT_FORCE_FIND_TOOLS=TRUE is passed, tools added by add_qt_tool will
always be searched for and not built.
In this case the user has to specify the CMake variable QT_HOST_PATH
pointing to an installed host Qt location.

When not cross compiling, tools added by add_qt_tool are built from
source.

When building leaf modules (like qtsvg) that require some tool that was
built in qtbase (like moc), the module project should contain a
find_package(Qt5ToolsCore) call and specify an appropriate
CMAKE_PREFIX_PATH so that the tool package is found.

Note that because HOST_QT_TOOLS_DIRECTORY was replaced by QT_HOST_PATH,
the ensure syncqt code was changed to make it work properly with
both qtbase and qtsvg.

Here's a list of tools and their module associations:
qmake, moc, rcc, tracegen, qfloat16-tables, qlalr  -> CoreTools
qvkgen -> GuiTools
uic -> WidgetTools
dbus related tools -> DBusTools

Task-number: QTBUG-74134
Change-Id: Ie67d1e2f8de46102b48eca008f0b50caf4fbe3ed
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-05-02 07:30:30 +00:00
..
doc Merge remote-tracking branch 'origin/5.12' into 5.13 2019-04-05 10:57:24 +02:00
generators Fix precompiled headers with clang-cl 2019-04-09 21:58:54 +00:00
library Replace Q_DECL_NOTHROW with noexcept the remaining places 2019-04-09 14:48:42 +00:00
cachekeys.h Updated license headers 2016-01-21 18:55:18 +00:00
CMakeLists.txt Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
main.cpp Let QINSTALL copy hidden files when installing directories 2019-04-09 08:16:25 +00:00
Makefile.unix qmake: add $$read_registry() function 2019-01-05 20:33:07 +00:00
Makefile.unix.macos Merge remote-tracking branch 'origin/5.8' into dev 2016-12-13 09:39:20 +01:00
Makefile.unix.mingw fix "make clean" of qmake in a builddir with spaces on mingw 2017-12-14 18:06:31 +00:00
Makefile.unix.unix Move the readlink(2) wrapper to qcore_unix.cpp 2017-07-08 02:18:16 +00:00
Makefile.unix.win32 qmake: add $$read_registry() function 2019-01-05 20:33:07 +00:00
Makefile.win32 Clang: Enable precompiled header for qmake 2019-03-21 23:46:20 +00:00
meta.cpp qmake: Remove dead code 2019-04-05 07:48:34 +00:00
meta.h qmake: Remove dead code 2019-04-05 07:48:34 +00:00
option.cpp qmake: Apply modernize-use-nullptr 2018-08-08 17:30:32 +00:00
option.h qmake: Apply modernize-use-nullptr 2018-08-08 17:30:32 +00:00
project.cpp qmake: make argument validation of built-ins data driven 2018-06-27 17:23:57 +00:00
project.h Merge remote-tracking branch 'origin/5.7' into dev 2016-07-19 20:14:40 +02:00
property.cpp Compile with QT_STRICT_ITERATORS defined 2018-11-26 07:04:24 +00:00
property.h move generation of qconfig.cpp (and qt.conf) to qmake-based configure 2016-12-13 18:56:12 +00:00
qmake_pch.h qmake: move QT_BEGIN_NAMESPACE to correct place 2018-12-19 19:21:35 +00:00
qmake-aux.pro revert to building qmake with qconfig.cpp 2017-01-06 20:09:08 +00:00
qmake.pro Merge remote-tracking branch 'origin/5.13' into dev 2019-02-20 09:51:12 +01:00