Re: [CMake] Buggy progress reporting
Gopala Krishna wrote: On Mon, Jan 26, 2009 at 2:29 AM, Bill Hoffman bill.hoff...@kitware.com wrote: The progress reporting only supports one make at a time in the build tree. -Bill Is there any documentation somewhere on how the percentage reporting is implemented ? If not it would really be helpful atleast to get a hint on which source files to look at. :) No, not really, it uses a directory to communicate, and cmake -E cmake_progress_start. If you grep for progress in the source tree and look at the Makefiles you can get the idea. It is going to be very hard to make it work with more than one make in a tree. -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Buggy progress reporting
Bill Hoffman bill.hoff...@kitware.com writes: Gopala Krishna wrote: On Mon, Jan 26, 2009 at 2:29 AM, Bill Hoffman bill.hoff...@kitware.com wrote: The progress reporting only supports one make at a time in the build tree. -Bill Is there any documentation somewhere on how the percentage reporting is implemented ? If not it would really be helpful atleast to get a hint on which source files to look at. :) No, not really, it uses a directory to communicate, and cmake -E cmake_progress_start. If you grep for progress in the source tree and look at the Makefiles you can get the idea. It is going to be very hard to make it work with more than one make in a tree. If the directory used for communication had a pid as part of its name, wouldn't that solve it? Or is it more complicated than that? (I'm just curious.) -- /Jesper ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Buggy progress reporting
On 26. Jan, 2009, at 15:05, Jesper Eskilson wrote: Bill Hoffman bill.hoff...@kitware.com writes: Gopala Krishna wrote: On Mon, Jan 26, 2009 at 2:29 AM, Bill Hoffman bill.hoff...@kitware.com wrote: The progress reporting only supports one make at a time in the build tree. -Bill Is there any documentation somewhere on how the percentage reporting is implemented ? If not it would really be helpful atleast to get a hint on which source files to look at. :) No, not really, it uses a directory to communicate, and cmake -E cmake_progress_start. If you grep for progress in the source tree and look at the Makefiles you can get the idea. It is going to be very hard to make it work with more than one make in a tree. If the directory used for communication had a pid as part of its name, wouldn't that solve it? Or is it more complicated than that? (I'm just curious.) Lets say with process 1000 is building target A. Process 2000 is building target B at the same time. What happens if both depended on target C (e.g. a library) and tried to build it at the same time without knowing that there is another process trying to do the very same thing. This might lead to very buggy builds... I don't think this is anything CMake could ever possibly handle, as it also very strongly depends on the native build system (Make, VS, Xcode,...) Michael ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Buggy progress reporting
Michael Wild them...@gmail.com writes: On 26. Jan, 2009, at 15:05, Jesper Eskilson wrote: Bill Hoffman bill.hoff...@kitware.com writes: Gopala Krishna wrote: On Mon, Jan 26, 2009 at 2:29 AM, Bill Hoffman bill.hoff...@kitware.com wrote: The progress reporting only supports one make at a time in the build tree. -Bill Is there any documentation somewhere on how the percentage reporting is implemented ? If not it would really be helpful atleast to get a hint on which source files to look at. :) No, not really, it uses a directory to communicate, and cmake -E cmake_progress_start. If you grep for progress in the source tree and look at the Makefiles you can get the idea. It is going to be very hard to make it work with more than one make in a tree. If the directory used for communication had a pid as part of its name, wouldn't that solve it? Or is it more complicated than that? (I'm just curious.) Lets say with process 1000 is building target A. Process 2000 is building target B at the same time. What happens if both depended on target C (e.g. a library) and tried to build it at the same time without knowing that there is another process trying to do the very same thing. This might lead to very buggy builds... I don't think this is anything CMake could ever possibly handle, as it also very strongly depends on the native build system (Make, VS, Xcode,...) You're right, of course. (Since Bill said that the progress meter only supported one build at a time, my brain started thinking how that could be implemented, without considering the rest of the build system.) -- /Jesper ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Buggy progress reporting
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
Re: [CMake] Buggy progress reporting
Gopala Krishna wrote: 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 The progress reporting only supports one make at a time in the build tree. -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Buggy progress reporting
On Mon, Jan 26, 2009 at 2:29 AM, Bill Hoffman bill.hoff...@kitware.com wrote: The progress reporting only supports one make at a time in the build tree. -Bill Is there any documentation somewhere on how the percentage reporting is implemented ? If not it would really be helpful atleast to get a hint on which source files to look at. :) -- Cheers, Gopala Krishna A ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake