Re: [CMake] Buggy progress reporting

2009-01-26 Thread Bill Hoffman

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

2009-01-26 Thread Jesper Eskilson
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

2009-01-26 Thread Michael Wild


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

2009-01-26 Thread Jesper Eskilson
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

2009-01-25 Thread Gopala Krishna
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

2009-01-25 Thread Bill Hoffman

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

2009-01-25 Thread Gopala Krishna
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