[CMake] Buggy progress reporting

Gopala Krishna krishna.ggk at gmail.com
Sun Jan 25 11:16:21 EST 2009


Hi, I have come across a buggy percentage reporting.

To produce the bug:
1) Run cmake on a project directory (i used kdesdk)
2) I then started 'make' in <builddir>/kdesdk/umbrello and waited
until progress rose up to some arbitrary 23%
3) I invoked 'make' in another terminal in the <builddir>/kdesdk/kate
directory while the previos make was progressing.
4) kate started properly with 0% while umbrello make suddenly started
again from 0%

In brief, I ran "cmake" on an outer directory and invoked "make" in
the sub-directories of outer directory at different times, yet in
parallel.
And after the invocation of latest make, the percentage reporting of
previous 'make' invocation dropped to 0%

OT: I am developing a plasmoid to show the make progress output for
cmake based make files which is where i came across this behavior.

Here is the sample terminal output

UMBRELLO konsole:
------------------------------

gopala@ kde4:~/kde/build/trunk/KDE/kdesdk/umbrello> make
[  3%] Generating ui_javacodegenerationformbase.h
Generating codegenerationpolicy.moc
Generating codemethodblock.moc
Generating umluniqueconstraintdialog.moc
Generating codegenoptionspage.moc

<snip>

[ 23%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/codegenwizard/codegenerationwizard.o
[ 23%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/clipboard/umldragdata.o
In file included from
/home/gopala/kde/sources/trunk/KDE/kdesdk/umbrello/umbrello/clipboard/umldragdata.cpp:30:
/usr/include/Qt3Support/q3canvas.h:551: warning: 'virtual void
Q3CanvasPolygonalItem::draw(QPainter&)' was hidden
/home/gopala/kde/sources/trunk/KDE/kdesdk/umbrello/umbrello/umlwidget.h:231:
warning:   by 'virtual void UMLWidget::draw(QPainter&, int, int)'
[ 23%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/clipboard/umlclipboard.o
In file included from
/home/gopala/kde/sources/trunk/KDE/kdesdk/umbrello/umbrello/floatingtextwidget.h:15,
                 from
/home/gopala/kde/sources/trunk/KDE/kdesdk/umbrello/umbrello/clipboard/umlclipboard.cpp:30:
/usr/include/Qt3Support/q3canvas.h:551: warning: 'virtual void
Q3CanvasPolygonalItem::draw(QPainter&)' was hidden
/home/gopala/kde/sources/trunk/KDE/kdesdk/umbrello/umbrello/umlwidget.h:231:
warning:   by 'virtual void UMLWidget::draw(QPainter&, int, int)'
[ 23%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/clipboard/idchangelog.o
[ 23%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/codeimport/kdevcppparser/ast.o
[ 23%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/codeimport/kdevcppparser/driver.o
[  0%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/codeimport/kdevcppparser/errors.o
[  0%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/codeimport/kdevcppparser/lexer.o
[  0%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/codeimport/kdevcppparser/lookup.o
[  0%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/codeimport/kdevcppparser/parser.o
[ 12%] Building CXX object
umbrello/umbrello/CMakeFiles/umbrello.dir/codeimport/kdevcppparser/preprocesslexer.o
...
=================================================================================================================

KATE konsole: (started about 5 mins after invoking make in umbrello directory)
------------------------------------------------------------------------------------------------------------------
gopala@ kde4:~/kde/build/trunk/KDE/kdesdk/kate> make
Generating katemwmodonhddialog.moc
Generating katesession.moc
Generating katedocmanager.moc
Generating mainwindow.moc
Generating application.moc
Generating katefilelist.moc
Generating pluginmanager.moc
Generating katemdi.moc
Generating plugin.moc
Generating kateviewspace.moc
Generating katesavemodifieddialog.moc
Generating katecontainer.moc
Generating katepluginmanager.moc
Generating katemainwindow.moc
Generating documentmanager.moc
Generating kateviewmanager.moc
Generating kateconfigdialog.moc
Generating kateapp.moc
Generating katedocmanageradaptor.moc
Generating pluginconfigpageinterface.moc
Generating kateconfigplugindialogpage.moc
Generating kateviewdocumentproxymodel.moc
Generating katemainwindowadaptor.moc
Generating kateappadaptor.moc
Scanning dependencies of target kateinterfaces
[  0%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/kateinterfaces_automoc.o
[  0%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/kateappadaptor.o
[  0%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/katemainwindowadaptor.o
[  0%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/__/interfaces/kate/application.o
[  0%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/__/interfaces/kate/mainwindow.o
[  0%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/__/interfaces/kate/documentmanager.o
[  0%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/__/interfaces/kate/pluginmanager.o
[  0%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/__/interfaces/kate/plugin.o
/home/gopala/kde/sources/trunk/KDE/kdesdk/kate/interfaces/kate/plugin.cpp:
In function 'Kate::Plugin* Kate::createPlugin(const char*,
Kate::Application*, const QStringList&)':
/home/gopala/kde/sources/trunk/KDE/kdesdk/kate/interfaces/kate/plugin.cpp:64:
warning: 'static T* KLibLoader::createInstance(const QString&,
QObject*, const QStringList&, int*) [with T = Kate::Plugin]' is
deprecated (declared at /usr/include/klibloader.h:260)
[  0%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/__/interfaces/kate/pluginconfigpageinterface.o
[  0%] Building CXX object kate/app/CMakeFiles/kateinterfaces.dir/kateapp.o
[ 12%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/kateconfigdialog.o
/home/gopala/kde/sources/trunk/KDE/kdesdk/kate/app/kateconfigdialog.cpp:236:2:
warning: #warning portme
/home/gopala/kde/sources/trunk/KDE/kdesdk/kate/app/kateconfigdialog.cpp:384:2:
warning: #warning portme
In file included from
/home/gopala/kde/sources/trunk/KDE/kdesdk/kate/app/katefilelist.h:31,
                 from
/home/gopala/kde/sources/trunk/KDE/kdesdk/kate/app/kateconfigdialog.cpp:31:
/usr/include/QtCore/qabstractitemmodel.h:204: warning: 'virtual void
QAbstractItemModel::sort(int, Qt::SortOrder)' was hidden
/home/gopala/kde/sources/trunk/KDE/kdesdk/kate/app/kateviewdocumentproxymodel.h:80:
warning:   by 'void KateViewDocumentProxyModel::sort()'
[ 12%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/kateconfigplugindialogpage.o
/home/gopala/kde/sources/trunk/KDE/kdesdk/kate/app/kateconfigplugindialogpage.cpp:75:2:
warning: #warning try to fix me
[ 12%] Building CXX object
kate/app/CMakeFiles/kateinterfaces.dir/katedocmanager.o
....




-- 
Cheers,
Gopala Krishna A


More information about the CMake mailing list