[Qt5-feedback] Qt5's qmake
BRM
bm_witness at yahoo.com
Thu May 12 19:27:00 CEST 2011
might I add that it needs to be able to function recursively very well.
Presently I have a number of projects where to keep things simple, I use
sub-folders to manage portions of the code.
For example, in a protocol library I push chunks of the protocol (e.g.
calibration) into its own folder.
However, presently I have to be very careful about the naming of all the files
throughout the entire project as no two of them can be the same; otherwise
QMake will build both, but only one object file will be kept for linking. This
is a rather simple thing that QMake should be able to handle internally.
Note: We didn't want "yet another tool", so CMake didn't make it into the
picture. Otherwise we might be on CMake as opposed to QMake. I generally like
QMake; but there are a few major short-comings, like the above, that could
really improve the ability to work with it.
Ben
P.S. Charley - sorry, meant to send it to the list the first time.
>
>From: Charley Bay <charleyb123 at gmail.com>
>To: qt5-feedback at qt.nokia.com
>Sent: Thu, May 12, 2011 10:19:43 AM
>Subject: [Qt5-feedback] Qt5's qmake
>
>
>I wanted to "awaken" the topic of Qt5's approach to qmake, expanded on Danny's
>comment on the "Thoughts About Qt 5":
>
>From Danny:
>Fix qmake. It doesn’t scale well and getting it to work on non-trivial products
>requires hacky undocumented variables and tricks (see QtCreator’s own pro
>files). If you can’t fix it, switch to CMake.
I agree with Danny that qmake doesn't scale to larger projects, but am not crazy
about going to CMake with its own idiosyncracies. Yes, it is a hard problem.
There is a very good pattern in qmake, cmake, and Google's Gyp ("generate your
projects") to maintain the project configurations in some convenient format, and
"generate" native projects/makefiles as needed. Even Scons does this to
generate native *.vcproj/*.sln with an "auto-moc" (which we use, but we extended
somewhat).
I'm a big QtCreator fan, but that's an IDE, and not really a configuration
manager. I don't think it will ever be a configuration manager, nor do I think
that is appropriate.
Real people with real code bases have hundreds of projects, including static
libraries/assemblies, shared libs/DLLs, and EXEs. Because of the "moc" step, it
can be significant "work" to add a new file to a "project" where that project
previously had no knowledge of the "moc" process (and, of course, adding the
link dependencies).
IMHO, the build/packaging issues with Qt will be increasingly significant since
the forward-looking direction is greater modularization and
configuration-management/versioning of the Qt code base (a direction I
support). Further, the cross-platofrm targettign, such as for different mobile
devices (with their own weird build-and-deployment steps) in addition to the
(cross-platform) desktop, and with the added layer of new technologies like QML
that introduce their own resource bundling/deployment issues.
My vote would be a new tool, from the ground-up, using greater heuristics,
emphasizing simple/clean project configuration definitions. IMHO, the "new
tool" would be more qmake-like (simple to use), and less cmake-like (can be
complicated syntax, but is very powerful), where the "new-qmake-like-thingie"
would simply scale better and require less user specification for the "simple"
stuff.
(Side note: Very good overview as to why Google's "gyp" is not based on CMake:
http://code.google.com/p/gyp/wiki/GypVsCMake)
Thoughts?
--charley
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt.nokia.com/pipermail/qt5-feedback/attachments/20110512/7006aa30/attachment.html
More information about the Qt5-feedback
mailing list