qt5base-lts/src/tools
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
..
androiddeployqt Merge remote-tracking branch 'origin/5.12' into 5.13 2019-03-20 14:09:30 +01:00
bootstrap Merge commit 'dev' into 'wip/cmake-merge' 2019-04-16 16:32:08 +02:00
bootstrap-dbus
moc Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
qdbuscpp2xml Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
qdbusxml2cpp Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
qfloat16-tables Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
qlalr Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
qvkgen Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
rcc Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
tracegen Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
uic Export tool config and target files for each relevant module 2019-05-02 07:30:30 +00:00
CMakeLists.txt Build qlalr 2018-11-01 11:49:57 +00:00