[Development] [Interest] Current status of the co-installation

Koehne Kai Kai.Koehne at digia.com
Tue Oct 30 08:29:57 CET 2012


I stil don't like the qml2x convention too much. If you go through the list, only qmlplugindump is both qtquick1 and qtquick2, so adding a '2' to all the tools isn't necessary.

./lib64/qt5/bin/qml2bundle
./lib64/qt5/bin/qml2min

I'm pretty sure qml2min also works for qml1 files, so why not just stick to qmlmin? It could even go to /usr/bin since it's not qt5 specific. Anyway, since it's probably not that often used it's also okay to 'hide' it in /lib64/qt5/bin...

./lib64/qt5/bin/qml2plugindump
./lib64/qt5/bin/qml2profiler

Same here, qmlprofiler actually works for both qml1 and qml2.

./lib64/qt5/bin/qml2scene

So why not stay with qmlscene here, if the qtquick1 one is still qmlviewer?

./lib64/qt5/bin/qml2testrunner
./lib64/qt5/bin/qmlplugindump
./lib64/qt5/bin/qmlviewer

Apart from the naming, is there a specific reason why qmlviewer, qml[2]scene isn't in /usr/bin too? If you're asking me it's much more a 'user application' then say lupdate. Haven't checked toolwrapper implementation yet, is there a problem with adding these?

PS: Sorry for top-posting.
________________________________________
From: development-bounces+kai.koehne=digia.com at qt-project.org [development-bounces+kai.koehne=digia.com at qt-project.org] on behalf of Thiago Macieira [thiago.macieira at intel.com]
Sent: 29 October 2012 23:20
To: development at qt-project.org
Subject: [Development] [Interest] Current status of the co-installation

Hello again

Here's the current status:

* Qt Quick 1 and 2 de-conflicting:
The Qt Quick 1 library is renamed and the patches are in. The library is
called QtDeclarative again.

Qt Quick 1 retains its import paths in QLibraryInfo::ImportsPath /
$$[QT_INSTALL_IMPORTS], with no subdir. Qt Quick 2 instead goes to
QLibraryInfo::Qml2ImportsPath / $$[QT_INSTALL_QML]. The patches for both
pending, with a -1 from ossi due to an upcoming conflict with a new feature in
mkspecs/features.

I propose that the tools for Qt Quick 1 retain their exact naming from Qt 4
(qmlplugindump and qmlviewer). The tools from Qt Quick 2 should be prefixed
with "qml2".

Question: qml2scene or qml2viewer? If no one speaks up, it will be qml2scene.
The patches for that are ready, pending approval.

* Default paths:
 The defaults on a regular Unix or Windows installs are:
 -bindir                $prefix/bin [unchanged]
 -libdir                $prefix/lib [unchanged]
 -libexecdir    $prefix/lib/qt5/libexec [new]
 -docdir                [1]
 -headerdir             $prefix/include
 -importdir             $prefix/lib/qt5/imports [changed]
 -qmldir                $prefix/lib/qt5/qml [new]
 -datadir               $prefix/lib/qt5 [2]
 -translationdir        $prefix/lib/qt5/translations [changed]
 -sysconfdir    $prefix/etc/xdg [changed]
 -examplesdir   $prefix/examples [unchanged]
 -testsdir              $prefix/tests [unchanged]

[1] docdir is $prefix/share/qt5/doc for installed builds, but remains
$prefix/doc for non-installed builds as well as when qt.conf is found. Unless
someone speaks in support of this staying, I am going to drop the patch. Linux
distributions will change the dir to /usr/share/doc/qt5 anyway..

[2] for non-installed builds, datadir is $prefix, which makes the mkspecs be
found at $prefix/mkspecs.

The patches for all of the above are pending. There's a -1 on one patch
because it probably breaks cross compilations from Linux to Windows --
considering I will not test this configuration, I will only fix it if someone
sends me an exact patch of what to do.

The patches that add libexecdir and qmldir have negative scores. The qmldir
one has the -1 for the qml1_plugin.prf feature, whereas the libexec one has a
-2 on disagreement on the principle. We need an agreement on the mailing list
to decide what to do there.

* Library names:

All libraries get a 5 in their name in all platforms, except Mac when building
frameworks. The 5 is placed after "Qt", so the libraries are now
"libQt5Core.so" and "Qt5Core.dll", which makes for an unfortunate "Qt53D.dll"
(but no more "QtV85.dll").

Patch is pending approval.

* Tooling:

The build for most tools is completely unchanged. For those, the ones that are
from outside qtbase place themselves into the new libexec dir without changes.
The ones in qtbase place themselves into bin, but install into libexec.

A few tools I've modified to install into the bin dir. They are:
        assistant
        designer
        linguist
        macdeployqt
        makeqpf
        pixeltool
        qdbus
        qdbusviewer
        qtconfig (installs as qt5config)
        xmlpatterns
        xmlpatternsvalidator
        qglinfo
They're all in qttools.git except for the two xmlpatterns tools and qglinfo.

I've also added the wrapper tool, called "toolwrapper", which is *also* placed
in the libexec dir. However, its install rule will create a symlink to itself
as $bindir/qmake.

This tool is bootstrapped and unit-tested. It's inside qtbase. I decided
against modifying qmake because it was way too complex.

All the patches are pending approval, except for the one that creates libexec
(-2 from ossi).


The relevant changes are:
 Qt Quick 1 & 2:
        https://codereview.qt-project.org/37104 (QQ1's imports with no subdir)
        https://codereview.qt-project.org/37242 (adds -qmldir)
        https://codereview.qt-project.org/37431 (renames qml1plugindump back)
        https://codereview.qt-project.org/37434 (renames QQ2 tools to qml2*)
        https://codereview.qt-project.org/37539 (use the Qml2ImportPath)
        https://codereview.qt-project.org/35521 (changes QQ2 examples dir)
        https://codereview.qt-project.org/36711 (doc update about the examples)
        https://codereview.qt-project.org/37555 (updates Qt Creator)

 Default paths:
        https://codereview.qt-project.org/37252 (requirement, breaks Mac
                build and I need help)
        https://codereview.qt-project.org/37244 (changes datadir)
        https://codereview.qt-project.org/35495 (change plugindir, importsdir,
                translationsdir and settingsdir)
        https://codereview.qt-project.org/37253 (docdir change, I'll abandon)

 Library names with 5:
        https://codereview.qt-project.org/37256

 Tooling:
        https://codereview.qt-project.org/38223 (qglinfo)
        https://codereview.qt-project.org/38224 (xmlpatterns*)
        https://codereview.qt-project.org/38464 (qt5config)
        https://codereview.qt-project.org/38465 (qttools apps)

        https://codereview.qt-project.org/38342 (requirement, breaks Mac build
                and I need help)
        https://codereview.qt-project.org/38225 (creates libexec)
        https://codereview.qt-project.org/38344 (the toolwrapper)

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



More information about the Development mailing list