Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-06 Thread Peter Kümmel

On 06.10.2011 21:14, Peter Kümmel wrote:


OK, so I think this project is way too small for this test.  There is
some fixed overhead in the process here, and we are seeing it.  We are
talking about .5 seconds difference to check a whole build system.  If
you want to do tests like this, you need a much bigger project.  I am
sure that CMake will not be 50% slower for a larger project where we are
not comparing .5 seconds to 1.1 seconds or .1 seconds.



I don't know a bigger project which supports qmake and cmake,


Another idea is to down-cock the system: My  system runs in a VirtualBox,
and I simply don't allow 100% CPU usage:

KST:
 qmake   cmake   ninja
-j1   14s 45s 3s
-j2   14s 27s 3s


VTK:

 qmake   cmake   ninja
-j1   130s8s
-j4   30s 8s

Peter
--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-06 Thread Peter Kümmel


OK, so I think this project is way too small for this test.  There is
some fixed overhead in the process here, and we are seeing it.  We are
talking about .5 seconds difference to check a whole build system.  If
you want to do tests like this, you need a much bigger project.  I am
sure that CMake will not be 50% slower for a larger project where we are
not comparing .5 seconds to 1.1 seconds or .1 seconds.



I don't know a bigger project which supports qmake and cmake,
but I tried VTK:

Time to check when nothing to build:

 ninja(ms)   make(ms)
-j1   ~2503600
-j2   ~2502100
-j4   ~2501700

Peter
--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-06 Thread Bill Hoffman

On 10/6/2011 12:07 PM, Arnaud Gelas wrote:

Hi Bill,

Here are some timing, I made for ITK to compare ninja vs make (made last
month). See results below

The difference is not much, especially when you realized that none of
the data have been downloaded, and I am not sure that at the end we get
the same binary tree...

Encouraging matter of fact, it worked on ITK...

my 2 cts,
Arnaud


What happens if you just do a build where nothing builds?


-Bill
--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-06 Thread Arnaud Gelas

Hi Bill,

Here are some timing, I made for ITK to compare ninja vs make (made  
last month). See results below


The difference is not much, especially when you realized that none of  
the data have been downloaded, and I am not sure that at the end we  
get the same binary tree...


Encouraging matter of fact, it worked on ITK...

my 2 cts,
Arnaud




Starting from scratch

$ time make -j12
real18m20.479s
user205m51.536s
sys8m21.319s

$ time ninja -j12
real18m1.246s
user205m23.438s
sys7m26.392

adding one extra space in itk::Image

$ time make -j12
real15m8.004s
user166m45.025s
sys6m13.991s

$ time ninja -j12
real14m54.776s
user166m41.377s
sys5m31.129s





--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-06 Thread Bill Hoffman

On 10/5/2011 4:13 PM, Peter Kümmel wrote:

On 05.10.2011 20:38, Alexander Neundorf wrote:

On Wednesday 05 October 2011, Peter Kümmel wrote:

And here some numbers to compare it with Qt's qmake.
I've used this project: http://kst-plot.kde.org/
which supports qmake and cmake.

Running make/ninja on a fresh compiled project
with warm caches (in seconds):

qmake cmake Ninja
Makefiles makefiles

-j1 0.5-0.8 1.6-1.9 0.11-0.14
-j2 0.6-0.8 1.3-1.4 0.11-0.13
-j4 0.6-0.7 1.1-1.4 0.10-0.13


Summary:
- Ninja is the fastest
- cmake Makefiles are really slow
- parallel jobs doesn't help much in this special case




OK, so I think this project is way too small for this test.  There is 
some fixed overhead in the process here, and we are seeing it.  We are 
talking about .5 seconds difference to check a whole build system.  If 
you want to do tests like this, you need a much bigger project.  I am 
sure that CMake will not be 50% slower for a larger project where we are 
not comparing .5 seconds to 1.1 seconds or .1 seconds.


-Bill

--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-05 Thread Peter Kümmel

On 05.10.2011 20:38, Alexander Neundorf wrote:

On Wednesday 05 October 2011, Peter Kümmel wrote:

And here some numbers to compare it with Qt's qmake.
I've used this project: http://kst-plot.kde.org/
which supports qmake and cmake.

Running make/ninja on a fresh compiled project
with warm caches (in seconds):

  qmake  cmake Ninja
Makefiles  makefiles

-j10.5-0.8   1.6-1.9   0.11-0.14
-j20.6-0.8   1.3-1.4   0.11-0.13
-j40.6-0.7   1.1-1.4   0.10-0.13


Summary:
  - Ninja is the fastest
  - cmake Makefiles are really slow
  - parallel jobs doesn't help much in this special case



and:
- qmake makefiles don't have complete dependencies

Seriously, if cmakes Makefiles are slower, I am very sure this is because they
have complete dependencies.



Does this mean also the Ninja build file has complete dependencies, because it
is also build by cmake?
If this is the case, then in connection with cmake and an existing ninja binary
make is not needed any more.

Peter
--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-05 Thread Peter Kümmel

On 05.10.2011 21:45, Bill Hoffman wrote:



I just tried this on a machine here.

"svn co svn://anonsvn.kde.org/home/kde/branches/work/kst/portto4/kst"

CMake build:
make -j8

real3m19.131s
user16m31.866s
sys 3m25.289s

Qmake build:
real2m55.761s
user15m15.585s
sys 1m58.203s
mp/../viewitem.h:92: warning: unused parameter 'f'
tmp/../viewitem.h:92: warning: unused parameter 'c'
rm -f libkst2app.so.1.0.0 libkst2app.so libkst2app.so.1 libkst2app.so.1.0
linking ../../build/lib/libkst2app.so.1.0.0
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
make[1]: *** [../../build/lib/libkst2app.so.1.0.0] Error 1
make[1]: Leaving directory `/home/hoffman/kst-qmake/src/libkstapp'
make: *** [sub-src-libkstapp-make_default-ordered] Error 2


So, for me the qmake build had a total failure after almost taking as
long to build.  So, CMake wins because the qmake build never actually
finishes... :)

BTW, This is an 8 core machine.  What are you building on to get .5
minute builds?  Something is odd here...



4 real cores and hyper threading with Ubuntu 11.10 and GCC 4.6: 1m15.467s
But the build times aren't that interesting.

The .5 you mentioned where .5 seconds which it takes to run make on an
already build project:

$ time make
[ 19%] Built target kst2core
[ 33%] Built target kst2math
[ 43%] Built target kst2widgets
[ 90%] Built target kst2app
[ 90%] Built target kst2_filters_differentiation
[ 92%] Built target kst2_datasource_ascii
[ 92%] Built target kst2_datasource_qimagesource
[ 93%] Built target kst2_datasource_sampledatasource
[ 93%] Built target kst2_dataobject_bin
[ 94%] Built target kst2_dataobject_linefit
[ 95%] Built target kst2_dataobject_chop
[ 96%] Built target kst2_dataobject_phase
[ 96%] Built target kst2_dataobject_lockin
[ 97%] Built target kst2_dataobject_statistics
[ 97%] Built target kst2_dataobject_shift
[ 97%] Built target kst2_dataobject_syncbin
[ 98%] Built target kst2_dataobject_differentiation
[ 98%] Built target kst2_dataobject_crossspectrum
[ 98%] Built target kst2_dataobject_effectivebandwidth
[ 99%] Built target kst2_dataobject_genericfilter
[ 99%] Built target kst2_filters_cumulativesum
[100%] Built target kst2_filters_despike
[100%] Built target kst2

real0m1.772s
user0m1.116s
sys 0m0.372s
$

How is this called 'clean run'?
I hope this measures best the pure make-system speed.

Peter


-Bill




--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-05 Thread Bill Hoffman



I just tried this on a machine here.

"svn co svn://anonsvn.kde.org/home/kde/branches/work/kst/portto4/kst"

CMake build:
make -j8

real3m19.131s
user16m31.866s
sys 3m25.289s

Qmake build:
real2m55.761s
user15m15.585s
sys 1m58.203s
mp/../viewitem.h:92: warning: unused parameter 'f'
tmp/../viewitem.h:92: warning: unused parameter 'c'
rm -f libkst2app.so.1.0.0 libkst2app.so libkst2app.so.1 libkst2app.so.1.0
linking ../../build/lib/libkst2app.so.1.0.0
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
make[1]: *** [../../build/lib/libkst2app.so.1.0.0] Error 1
make[1]: Leaving directory `/home/hoffman/kst-qmake/src/libkstapp'
make: *** [sub-src-libkstapp-make_default-ordered] Error 2


So, for me the qmake build had a total failure after almost taking as 
long to build.  So, CMake wins because the qmake build never actually 
finishes... :)


BTW, This is an 8 core machine.  What are you building on to get .5 
minute builds?  Something is odd here...


-Bill




--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-05 Thread Peter Kümmel

On 05.10.2011 20:38, Alexander Neundorf wrote:

On Wednesday 05 October 2011, Peter Kümmel wrote:

And here some numbers to compare it with Qt's qmake.
I've used this project: http://kst-plot.kde.org/
which supports qmake and cmake.

Running make/ninja on a fresh compiled project
with warm caches (in seconds):

  qmake  cmake Ninja
Makefiles  makefiles

-j10.5-0.8   1.6-1.9   0.11-0.14
-j20.6-0.8   1.3-1.4   0.11-0.13
-j40.6-0.7   1.1-1.4   0.10-0.13


Summary:
  - Ninja is the fastest
  - cmake Makefiles are really slow
  - parallel jobs doesn't help much in this special case



and:
- qmake makefiles don't have complete dependencies



OK, qmake Makefiles are not "complete".


Seriously, if cmakes Makefiles are slower, I am very sure this is because they
have complete dependencies.



Is there a way to run cmake's Makefiles in the (faster) qmake-"mode" ?

Peter


Alex
--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-05 Thread Alexander Neundorf
On Wednesday 05 October 2011, Peter Kümmel wrote:
> And here some numbers to compare it with Qt's qmake.
> I've used this project: http://kst-plot.kde.org/
> which supports qmake and cmake.
> 
> Running make/ninja on a fresh compiled project
> with warm caches (in seconds):
> 
>  qmake  cmake Ninja
>Makefiles  makefiles
> 
> -j10.5-0.8   1.6-1.9   0.11-0.14
> -j20.6-0.8   1.3-1.4   0.11-0.13
> -j40.6-0.7   1.1-1.4   0.10-0.13
> 
> 
> Summary:
>  - Ninja is the fastest
>  - cmake Makefiles are really slow
>  - parallel jobs doesn't help much in this special case


and:
- qmake makefiles don't have complete dependencies

Seriously, if cmakes Makefiles are slower, I am very sure this is because they 
have complete dependencies.

Alex
--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-05 Thread Peter Kümmel

And here some numbers to compare it with Qt's qmake.
I've used this project: http://kst-plot.kde.org/
which supports qmake and cmake.

Running make/ninja on a fresh compiled project
with warm caches (in seconds):

qmake  cmake Ninja
  Makefiles  makefiles

-j10.5-0.8   1.6-1.9   0.11-0.14
-j20.6-0.8   1.3-1.4   0.11-0.13
-j40.6-0.7   1.1-1.4   0.10-0.13


Summary:
- Ninja is the fastest
- cmake Makefiles are really slow
- parallel jobs doesn't help much in this special case

Peter
--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-10-01 Thread Peter Kümmel

On 30.09.2011 19:16, Eric Noulard wrote:

2011/9/30 Alexander Neundorf:

Summary:

  builddryrebuild
ninja   1m15.8   0m0.10m07.3
make1m19.4   0m1.40m07.9
auto3m19.9   0m2.10m13.0

So only the dry run shows a huge speedup (10-20 times faster)


Not to question your numbers, but shouldn't the difference of the dryrun
(1.3s) also be present in the rebuild ?


'rebuild' is the time after a 'touch':

   touch ../trunk/src/LyX.cpp
   time ninja

means compiling one file plus the time for linking.
Yes, makes not much sense to measure this time here because
compiling and linking is independent of the ninja/make.



I mean, this should be the time ninja is faster in checking whether any file
changed, and in the rebuild case it has to do that too, and additionally build
one file ?

How often did you measure this, just once or multiple times ?




Cache was warm and the time was a typical one of multiple runs.


I was about to comment about this too.
If you do test ninja first on a pristine source tree and then
make then make will certainly take advantage of the VFS caching almost
all source file access.

May be it would necessary to untar the source (in different temp dir )
before each test sets.
but may you already did this.



I did the opposite, measured with a 'warm' cache.

Peter


Or may be I should just try myself :-]



--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-30 Thread Eric Noulard
2011/9/30 Alexander Neundorf :
>> Summary:
>>
>>          build    dry    rebuild
>> ninja   1m15.8   0m0.1    0m07.3
>> make    1m19.4   0m1.4    0m07.9
>> auto    3m19.9   0m2.1    0m13.0
>>
>> So only the dry run shows a huge speedup (10-20 times faster)
>
> Not to question your numbers, but shouldn't the difference of the dryrun
> (1.3s) also be present in the rebuild ?
> I mean, this should be the time ninja is faster in checking whether any file
> changed, and in the rebuild case it has to do that too, and additionally build
> one file ?
>
> How often did you measure this, just once or multiple times ?

I was about to comment about this too.
If you do test ninja first on a pristine source tree and then
make then make will certainly take advantage of the VFS caching almost
all source file access.

May be it would necessary to untar the source (in different temp dir )
before each test sets.
but may you already did this.

Or may be I should just try myself :-]


-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
--
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-30 Thread Alexander Neundorf
On Friday 30 September 2011, Peter Kuemmel wrote:
> > Tested cmake/ninja with Blender's cmake files, works well, and fast!
> > Single file rebuild is 0.97 sec, same on makefiles was 3.7sec.
> 
> I also have some numbers:
> 
> 
> Building LyX (lyx.org, 676 files):
> 
> LyX has autotools and cmake as build system.
> 
> 
> 
> * cmake generated ninja files:
> 
> 1. build
> cmake -G Ninja
> time ninja
> real 1m15.862s
> 
> 2. dry run
> ninja
> real 0m0.113s
> 
> 3. rebuild one file
> touch ../trunk/src/LyX.cpp
> time ninja
> real 0m7.340s
> 
> 
> 
> * cmake generated Makefiles:
> 
> 1. build
> cmake ../trunk
> time make -j9
> real 1m19.471s
> 
> 2. dry run
> time make -j9
> real 0m1.457s
> 
> 3. rebuild one file
> touch ../trunk/src/LyX.cpp
> time make -j9
> real 0m7.952s
> 
> 
> 
> * autotools:
> 
> 1. build
> ./configure --enable-build-type=dev (maybe different to cmake
> configuration) time make -j9
> real 3m19.988s
> 
> 2. dry run
> time make -j9
> real 0m2.165s
> 
> 3. rebuild one file
> touch ../trunk/src/LyX.cpp
> time make -j9
> real 0m13.087s
> 
> 
> 
> 
> Summary:
> 
>  builddryrebuild
> ninja   1m15.8   0m0.10m07.3
> make1m19.4   0m1.40m07.9
> auto3m19.9   0m2.10m13.0
> 
> So only the dry run shows a huge speedup (10-20 times faster)

Not to question your numbers, but shouldn't the difference of the dryrun 
(1.3s) also be present in the rebuild ?
I mean, this should be the time ninja is faster in checking whether any file 
changed, and in the rebuild case it has to do that too, and additionally build 
one file ?

How often did you measure this, just once or multiple times ?

Alex
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-29 Thread Peter Kuemmel

>
> Tested cmake/ninja with Blender's cmake files, works well, and fast!
> Single file rebuild is 0.97 sec, same on makefiles was 3.7sec.
> 

I also have some numbers:


Building LyX (lyx.org, 676 files):

LyX has autotools and cmake as build system.



* cmake generated ninja files:

1. build
cmake -G Ninja
time ninja
real 1m15.862s

2. dry run
ninja
real 0m0.113s

3. rebuild one file
touch ../trunk/src/LyX.cpp 
time ninja
real 0m7.340s



* cmake generated Makefiles:

1. build
cmake ../trunk
time make -j9
real 1m19.471s

2. dry run
time make -j9
real 0m1.457s

3. rebuild one file
touch ../trunk/src/LyX.cpp 
time make -j9
real 0m7.952s



* autotools:

1. build 
./configure --enable-build-type=dev (maybe different to cmake configuration)
time make -j9
real 3m19.988s

2. dry run
time make -j9
real 0m2.165s

3. rebuild one file
touch ../trunk/src/LyX.cpp 
time make -j9
real 0m13.087s




Summary:

 builddryrebuild
ninja   1m15.8   0m0.10m07.3
make1m19.4   0m1.40m07.9
auto3m19.9   0m2.10m13.0

So only the dry run shows a huge speedup (10-20 times faster)




---
And with a bigger project (clang, 1703 files):

builddry   
ninja  8m29.7   0m0.16
make   7m52.9   0m1.42

Also here the dry run is much faster.



Used sources:
cmake: git://github.com/pcc/CMake/tree/ninja-generator
ninja: git://github.com/pcc/ninja.git/tree/outputs-ready

-- 
NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!   
Jetzt informieren: http://www.gmx.net/de/go/freephone
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-15 Thread Peter Collingbourne
On Thu, Sep 15, 2011 at 03:28:42PM +0200, Andreas Mohr wrote:
> Hi,
> 
> On Wed, Sep 14, 2011 at 12:00:05PM -0400, cmake-requ...@cmake.org wrote:
> > Date: Wed, 14 Sep 2011 05:37:20 -0400
> > From: Clifford Yapp 
> > 
> > Looks like that's working.  Running ninja again, I'm seeing another issue:
> > 
> > BRL-CAD uses dependency assignment to make sure our build time delta
> > calculator is the last target to be built (and hence actually times the
> > build).  With ninja, it doesn't seem to be respecting this, but instead
> > tries to run the delta target immediately.  Do custom targets respect
> > dependency information?

Yes, but the dependencies are currently only attached to the target,
not to any of its custom commands.  This behaviour is correct for
CMake's built-in targets, such as 'install' and 'test', for which the
commands are attached directly to the target, but add_custom_target
is actually implemented internally using custom commands (the command
given to add_custom_target is stored as a custom command attached to
a dummy source file), so the target dependencies are not currently
attached in the correct place for add_custom_target.

> IOW, from what I'm gathering here, it seems as if   scm_sos_pull_db_tree   
> lists   its _internal_
> target/rule/whatever CMakeFiles/scm_sos_pull_db_tree with same-hierarchy 
> priority as scm_sos_setup.
> And that internal target/rule/whatever then gets executed in advance, despite 
> scm_sos_setup not having been executed (prepared) yet.

This is a symptom of the behaviour described above.

> IOW, it's a MISTAKE to implement (emulate) add_custom_command() via inner 
> targets in Ninja build config,
> since those inner targets don't inherit those dependency constraints 
> ("ordering")
> which have been explicitly imposed on their outer targets.
> 
> So:
> - either keep custom commands implemented via inner targets - and then make 
> sure
>   that those inner (internal!) targets do have _all_ dependencies of the 
> outer,
>   CMake-public target specified
> - or don't implement custom commands via internal, logically disconnected 
> targets  [better?]

The former is the correct solution.  The Ninja generator already
does this for object files to ensure that target dependencies are
built before any object file in the target (one of the build systems
I tested with uses a target dependency to generate a header file used
by some of the target's source files).  I now realise this also needs
to happen for custom commands.

Thanks,
-- 
Peter
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-15 Thread Andreas Mohr
Hi,

On Wed, Sep 14, 2011 at 12:00:05PM -0400, cmake-requ...@cmake.org wrote:
> Date: Wed, 14 Sep 2011 05:37:20 -0400
> From: Clifford Yapp 
> 
> Looks like that's working.  Running ninja again, I'm seeing another issue:
> 
> BRL-CAD uses dependency assignment to make sure our build time delta
> calculator is the last target to be built (and hence actually times the
> build).  With ninja, it doesn't seem to be respecting this, but instead
> tries to run the delta target immediately.  Do custom targets respect
> dependency information?

I'm seeing the same thing here, and I think I semi-nailed it.

I've got:

function(scm_sos_pull_db_tree _pull_target _scm_dir)
  if(NOT TARGET scm_sos_pull_db_tree)
# this crap does not work the way it should...
#set(scm_spec "${scm_repo_prefix}/${_scm_dir}")
set(scm_spec "${scm_repo_prefix}")

#set(stamp_file_tree 
"${sos_wrapper_stamps_dir}/scm_sos_pull_db_tree_${_pull_target}.stamp")
set(stamp_file_tree "${sos_wrapper_stamps_dir}/scm_sos_pull_db_tree.stamp")
set(db_tree_output "${sos_wrapper_db_file_pathname}")
add_custom_command(OUTPUT "${db_tree_output}"
  COMMAND ${sos_wrapper_cmdline_constant_part} "-project ${scm_spec} 
-command GetProjectTree"
  COMMAND "${CMAKE_COMMAND}" -E touch "${stamp_file_tree}"
  # Cannot specify the full ${scm_sos_dependencies} list here
  # (we're creating the very database file that it lists).
  # And we should avoid adding ${sos_wrapper_script} as a dependency
  # here, since a simple update of that script most certainly doesn't
  # justify doing the _AWFULLY_ lengthy operation of pulling
  # the entire database anew. All other SCM targets _should_ properly 
depend on
  # SosWrap.bash, however, since they're much cheaper...
  DEPENDS "${MASTER_SCM_HAS_BEEN_UPDATED}"
  COMMENT "fetching SOS SCM database tree for ${scm_spec}"
  VERBATIM
)
add_custom_target(scm_sos_pull_db_tree VERBATIM DEPENDS "${db_tree_output}")
add_dependencies(scm_sos_pull_db_tree scm_sos_setup)
  endif(NOT TARGET scm_sos_pull_db_tree)
  # add a dependency to make sure that before pulling a file/project we fetch 
its project tree
  add_dependencies(${_pull_target} scm_sos_pull_db_tree)
endfunction(scm_sos_pull_db_tree _pull_target _scm_dir)


So you can see that I'm clearly adding a dependency of target 
scm_sos_pull_db_tree on the
target scm_sos_setup (which is the one to make sure that the SosWrap.bash script
is properly prepared before continuing).


However, what I'm ending up with is:



# Phony custom command for CMakeFiles/scm_sos_pull_db_tree
build CMakeFiles/scm_sos_pull_db_tree: phony 
_SCM/sos/database/servers/SERVER/DATABASE.sos
# Utility command for scm_sos_pull_db_tree
build scm_sos_pull_db_tree: phony CMakeFiles/scm_sos_pull_db_tree 
_SCM/sos/database/servers/SERVER/DATABASE.sos scm_sos_setup
# Phony custom command for CMakeFiles/scm_sos_setup
build CMakeFiles/scm_sos_setup: phony _SCM/sos/stamps/sos_setup.stamp
# Custom command for _SCM/sos/stamps/sos_setup.stamp
build _SCM/sos/stamps/sos_setup.stamp: CUSTOM_COMMAND
  COMMAND = cd [[CMAKE_BINARY_DIR]] && /usr/local/bin/cmake -E make_directory 
[[CMAKE_BINARY_DIR]]/_SCM/sos/stamps && /usr/local/bin/cmake -E touch 
[[CMAKE_BINARY_DIR]]/_SCM/sos/stamps/sos_setup.stamp
  DESC = Generating _SCM/sos/stamps/sos_setup.stamp
# Utility command for scm_sos_setup
build scm_sos_setup: phony CMakeFiles/scm_sos_setup 
_SCM/sos/stamps/sos_setup.stamp 
copy_prep_file__[[CMAKE_BINARY_DIR]]_SosWrap.bash


IOW, from what I'm gathering here, it seems as if   scm_sos_pull_db_tree   
lists   its _internal_
target/rule/whatever CMakeFiles/scm_sos_pull_db_tree with same-hierarchy 
priority as scm_sos_setup.
And that internal target/rule/whatever then gets executed in advance, despite 
scm_sos_setup not having been executed (prepared) yet.

And this is most likely because add_custom_command() in Ninja generator
actually gets realised as an inner target of its corresponding CMake 
add_custom_target(),
and we then have a logical disconnect since it's the _outer_, CMake-_public_ 
target
which gets configured a constraint ("scm_sos_setup needs to run first").


IOW, it's a MISTAKE to implement (emulate) add_custom_command() via inner 
targets in Ninja build config,
since those inner targets don't inherit those dependency constraints 
("ordering")
which have been explicitly imposed on their outer targets.

So:
- either keep custom commands implemented via inner targets - and then make sure
  that those inner (internal!) targets do have _all_ dependencies of the outer,
  CMake-public target specified
- or don't implement custom commands via internal, logically disconnected 
targets  [better?]


Or am I missing something?
(I believe my CMake construct is correct - but who knows...)

OK, I should perhaps add a file dependency (DEPENDS) within 
add_custom_command() on the
SosWrap.bash script (but that was done _very_ deliberately - see comment in 
that

Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-15 Thread Bill Hoffman

On 9/14/2011 5:37 AM, Clifford Yapp wrote:

Looks like that's working.  Running ninja again, I'm seeing another issue:

BRL-CAD uses dependency assignment to make sure our build time delta
calculator is the last target to be built (and hence actually times the
build).  With ninja, it doesn't seem to be respecting this, but instead
tries to run the delta target immediately.  Do custom targets respect
dependency information?



I would think the best think to do would be to focus on the CMake tests. 
 If these are not all passing, then there is a good chance any large 
project will fail at some point.  If all the tests are passing, I would 
think most anything could be built.



-Bill
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-14 Thread Clifford Yapp
Looks like that's working.  Running ninja again, I'm seeing another issue:

BRL-CAD uses dependency assignment to make sure our build time delta
calculator is the last target to be built (and hence actually times the
build).  With ninja, it doesn't seem to be respecting this, but instead
tries to run the delta target immediately.  Do custom targets respect
dependency information?

Cheers,
CY


On Tue, Sep 13, 2011 at 9:33 AM, Peter Collingbourne wrote:

>
> Try using this branch of Ninja:
>
> https://github.com/pcc/Ninja/tree/restat
>
> The 'restat' branch is still under development, so this requirement
> will go away once 'restat' is merged into the main branch of Ninja.
>
> Thanks,
> --
> Peter
>
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-13 Thread Peter Collingbourne
On Tue, Sep 13, 2011 at 08:40:32AM -0400, Clifford Yapp wrote:
> On Sun, Sep 11, 2011 at 11:01 PM, Peter Collingbourne wrote:
> 
> >
> > > It looks like various custom commands aren't running (some tcl related
> > > stuff, docbook documentation generation) - are custom commands currently
> > > supported?
> >
> > Yes, custom commands and targets are supported.  There was a bug (which
> > is now fixed) that caused custom commands not be built by default.  Now
> > all targets except those marked EXCLUDE_FROM_ALL are built by default.
> >
> 
> With latest pull from this weekend, I'm currently getting:
> 
> ninja cmTryCompileExec
> 
>   ninja: error: loading 'build.ninja': line 21, col 9: in 'rules.ninja':
> line
>   38, col 3: unexpected variable 'restat'

Try using this branch of Ninja:

https://github.com/pcc/Ninja/tree/restat

The 'restat' branch is still under development, so this requirement
will go away once 'restat' is merged into the main branch of Ninja.

Thanks,
-- 
Peter
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-13 Thread Clifford Yapp
On Sun, Sep 11, 2011 at 11:01 PM, Peter Collingbourne wrote:

>
> > It looks like various custom commands aren't running (some tcl related
> > stuff, docbook documentation generation) - are custom commands currently
> > supported?
>
> Yes, custom commands and targets are supported.  There was a bug (which
> is now fixed) that caused custom commands not be built by default.  Now
> all targets except those marked EXCLUDE_FROM_ALL are built by default.
>

With latest pull from this weekend, I'm currently getting:

ninja cmTryCompileExec

  ninja: error: loading 'build.ninja': line 21, col 9: in 'rules.ninja':
line
  38, col 3: unexpected variable 'restat'

Cheers,
CY
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-11 Thread Peter Collingbourne
On Fri, Sep 09, 2011 at 11:52:23AM -0400, Clifford Yapp wrote:
> On Thu, Sep 8, 2011 at 2:54 PM, Peter Collingbourne  wrote:
> 
> >
> > Anyone who is interested in trying the Ninja generator with
> > their own projects is welcome to clone my repository at:
> >
> > https://github.com/pcc/CMake/tree/ninja-generator
> >
> > and to report any issues encountered.  Note that the generator is
> > currently only known to work on Linux.  To select the Ninja generator
> > you can pass the option "-G Ninja" on the cmake command line.
> >
> 
> Gave it a whirl with BRL-CAD.  You caught me out fair and square on one
> unspecified dependency that no other build system has caught, which is kinda
> cool.
> 
> It seems to mostly build, but it's not recognizing that it's done (if I
> re-run ninja, it redoes most of the build).  This could be something I'm not
> doing right or expected ninja behavior at this stage, but I thought I'd
> mention it.

Hopefully this is a known issue, which I'm currently working on.

> It looks like various custom commands aren't running (some tcl related
> stuff, docbook documentation generation) - are custom commands currently
> supported?

Yes, custom commands and targets are supported.  There was a bug (which
is now fixed) that caused custom commands not be built by default.  Now
all targets except those marked EXCLUDE_FROM_ALL are built by default.

> For the core program building though, looks like it succeeded quite handily
> - very nice!  Unfortunately, my time delta calculation was one of the
> targets not built (or at least I don't see its output) so I'm not sure what
> the time difference is yet ;-).

You could always use the "time" command...

Thanks,
-- 
Peter
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-11 Thread Peter Collingbourne
On Fri, Sep 09, 2011 at 02:55:00PM +, Malfettone, Kris wrote:
> Peter,
> I am very interested in the ninja generator and gave it a try for one of my 
> very large projects.  Unfortunately, I have approximately 100 targets all 
> with the same output name(simple) but in CMake I give them all unique target 
> names(dot separated name built from their place in the directory tree).  This 
> works fine for Makefiles however the ninja generator seems to be adding:
> # Shortcut target for the output name.
> build simple: phony MD/MDF/Parsers/BX/BLS/v1_1/utils/simple/simple
> # Shortcut target for the target name.
> build BX.BLS.v1_1.simple: phony simple
> Which then causes the following from ninja:
> ninja: WARNING: multiple rules generate simple. build will not be 
> correct; continuing anyway
> 
> Is there a way to disable these shortcut targets?  Even changing my target 
> names to a different format is a possibility if that is necessary.

Not currently.  There are a few other projects I am aware of that
do something similar.  I will probably modify the generator to not
output shortcut targets for a given basename if more than one target
has that basename.

Thanks,
-- 
Peter
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-11 Thread Peter Collingbourne
On Fri, Sep 09, 2011 at 10:42:13AM -0400, Bill Hoffman wrote:
> This is very cool work Peter.  How well is this generator doing with the  
> CMake tests?

These are the current test results:

89% tests passed, 22 tests failed out of 203

Label Time Summary:
Label1=   0.03 sec
Label2=   0.03 sec

Total Test time (real) = 491.33 sec

The following tests FAILED:
 12 - kwsys.testDynamicLoader (Failed)
 40 - ExternalOBJ (Failed)
 41 - LoadCommand (Failed)
 52 - ExportImport (Failed)
 55 - EmptyLibrary (OTHER_FAULT)
 57 - BundleUtilities (Failed)
 64 - LinkFlags-lib_config (Failed)
 65 - LinkFlags-dll_config (Failed)
 66 - LinkFlags-exe_config (Failed)
 68 - SubProject-Stage2 (Failed)
 74 - CustomCommand (Failed)
 76 - OutOfSource (Failed)
 77 - BuildDepends (Failed)
 78 - SimpleInstall (Failed)
 79 - SimpleInstall-Stage2 (Failed)
 98 - LoadedCommandOneConfig (Failed)
100 - complexOneConfig (Failed)
 99 - complex (Failed)
103 - ExternalProject (Failed)
120 - Plugin (Failed)
125 - SubDir (Failed)
203 - CMake.CheckSourceTree (Failed)

... which seems to be actually quite good, considering I haven't made
any special effort to try to pass the tests.

>  Is there a nija for windows?  I would be interested in  
> testing that.

Yes, the current version of Ninja supports Windows, but the generator
would certainly need to be adapted.  

Thanks,
-- 
Peter
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-09 Thread Clifford Yapp
On Thu, Sep 8, 2011 at 2:54 PM, Peter Collingbourne  wrote:

>
> Anyone who is interested in trying the Ninja generator with
> their own projects is welcome to clone my repository at:
>
> https://github.com/pcc/CMake/tree/ninja-generator
>
> and to report any issues encountered.  Note that the generator is
> currently only known to work on Linux.  To select the Ninja generator
> you can pass the option "-G Ninja" on the cmake command line.
>

Gave it a whirl with BRL-CAD.  You caught me out fair and square on one
unspecified dependency that no other build system has caught, which is kinda
cool.

It seems to mostly build, but it's not recognizing that it's done (if I
re-run ninja, it redoes most of the build).  This could be something I'm not
doing right or expected ninja behavior at this stage, but I thought I'd
mention it.

It looks like various custom commands aren't running (some tcl related
stuff, docbook documentation generation) - are custom commands currently
supported?

For the core program building though, looks like it succeeded quite handily
- very nice!  Unfortunately, my time delta calculation was one of the
targets not built (or at least I don't see its output) so I'm not sure what
the time difference is yet ;-).

Cheers, and nice work!

CY
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-09 Thread Malfettone, Kris
Peter,
I am very interested in the ninja generator and gave it a try for one of my 
very large projects.  Unfortunately, I have approximately 100 targets all with 
the same output name(simple) but in CMake I give them all unique target 
names(dot separated name built from their place in the directory tree).  This 
works fine for Makefiles however the ninja generator seems to be adding:
# Shortcut target for the output name.
build simple: phony MD/MDF/Parsers/BX/BLS/v1_1/utils/simple/simple
# Shortcut target for the target name.
build BX.BLS.v1_1.simple: phony simple
Which then causes the following from ninja:
ninja: WARNING: multiple rules generate simple. build will not be 
correct; continuing anyway

Is there a way to disable these shortcut targets?  Even changing my target 
names to a different format is a possibility if that is necessary.

-Kris




-Original Message-
From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of 
Peter Collingbourne
Sent: Thursday, September 08, 2011 2:55 PM
To: Jean-Christophe Fillion-Robin
Cc: CMake ML
Subject: Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: 
restat rules

On Wed, Sep 07, 2011 at 11:04:42PM -0400, Jean-Christophe Fillion-Robin wrote:
> -- Forwarded message --
> From: Peter Collingbourne 
> Date: Wed, Sep 7, 2011 at 9:17 PM
> Subject: Proposal: restat rules
> To: ninja-bu...@googlegroups.com

FWIW, the Ninja generator I have been working on is based on work by Nicolas 
Despres, and has been successfully used to compile a number of large open 
source projects, including CMake itself, LLVM/Clang, OpenCV and Bullet Physics.

I am planning to submit the Ninja generator as a patch to CMake upstream once 
it has been put through more exhaustive testing and certain known issues have 
been resolved (my post to ninja-build being one of them).

Anyone who is interested in trying the Ninja generator with their own projects 
is welcome to clone my repository at:

https://github.com/pcc/CMake/tree/ninja-generator

and to report any issues encountered.  Note that the generator is currently 
only known to work on Linux.  To select the Ninja generator you can pass the 
option "-G Ninja" on the cmake command line.

Thanks,
--
Peter
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake



IMPORTANT: The information contained in this email and/or its attachments is 
confidential. If you are not the intended recipient, please notify the sender 
immediately by reply and immediately delete this message and all its 
attachments. Any review, use, reproduction, disclosure or dissemination of this 
message or any attachment by an unintended recipient is strictly prohibited. 
Neither this message nor any attachment is intended as or should be construed 
as an offer, solicitation or recommendation to buy or sell any security or 
other financial instrument. Neither the sender, his or her employer nor any of 
their respective affiliates makes any warranties as to the completeness or 
accuracy of any of the information contained herein or that this message or any 
of its attachments is free of viruses.
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-09 Thread Bill Hoffman
This is very cool work Peter.  How well is this generator doing with the 
CMake tests?  Is there a nija for windows?  I would be interested in 
testing that.


-Bill
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-08 Thread Rolf Eike Beer
Am Donnerstag, 8. September 2011, 19:54:46 schrieb Peter Collingbourne:
> On Wed, Sep 07, 2011 at 11:04:42PM -0400, Jean-Christophe Fillion-Robin 
wrote:
> > -- Forwarded message --
> > From: Peter Collingbourne 
> > Date: Wed, Sep 7, 2011 at 9:17 PM
> > Subject: Proposal: restat rules
> > To: ninja-bu...@googlegroups.com
> 
> FWIW, the Ninja generator I have been working on is based on work by
> Nicolas Despres, and has been successfully used to compile a number
> of large open source projects, including CMake itself, LLVM/Clang,
> OpenCV and Bullet Physics.

If you want something big try to build KDE stuff with it. There is a script 
called kdesrc-build that can be used to automate the building, I'm rather sure 
this can easily be changed to call Ninja instead of make.

Eike

signature.asc
Description: This is a digitally signed message part.
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-08 Thread Campbell Barton
Tested cmake/ninja with Blender's cmake files, works well, and fast!
Single file rebuild is 0.97 sec, same on makefiles was 3.7sec.

btw, we do something similar to LLVM with generating source, only
updating if it changes, however only for C files not headers, ninja
handles this ok for my quick tests editing files and rebuilding.

Looking forward to having this in stable cmake!

On Fri, Sep 9, 2011 at 4:54 AM, Peter Collingbourne  wrote:
> On Wed, Sep 07, 2011 at 11:04:42PM -0400, Jean-Christophe Fillion-Robin wrote:
>> -- Forwarded message --
>> From: Peter Collingbourne 
>> Date: Wed, Sep 7, 2011 at 9:17 PM
>> Subject: Proposal: restat rules
>> To: ninja-bu...@googlegroups.com
>
> FWIW, the Ninja generator I have been working on is based on work by
> Nicolas Despres, and has been successfully used to compile a number
> of large open source projects, including CMake itself, LLVM/Clang,
> OpenCV and Bullet Physics.
>
> I am planning to submit the Ninja generator as a patch to CMake
> upstream once it has been put through more exhaustive testing and
> certain known issues have been resolved (my post to ninja-build being
> one of them).
>
> Anyone who is interested in trying the Ninja generator with
> their own projects is welcome to clone my repository at:
>
> https://github.com/pcc/CMake/tree/ninja-generator
>
> and to report any issues encountered.  Note that the generator is
> currently only known to work on Linux.  To select the Ninja generator
> you can pass the option "-G Ninja" on the cmake command line.
>
> Thanks,
> --
> Peter
> ___
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>



-- 
- Campbell
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-08 Thread Clifford Yapp
On Thu, Sep 8, 2011 at 2:54 PM, Peter Collingbourne  wrote:

>
> I am planning to submit the Ninja generator as a patch to CMake
> upstream once it has been put through more exhaustive testing and
> certain known issues have been resolved (my post to ninja-build being
> one of them).
>

Very cool!  What differences (if any) have you seen incompilation speed?

Cheers,
CY
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] FYI - From Ninja-build mailing list - Fwd: Proposal: restat rules

2011-09-08 Thread Peter Collingbourne
On Wed, Sep 07, 2011 at 11:04:42PM -0400, Jean-Christophe Fillion-Robin wrote:
> -- Forwarded message --
> From: Peter Collingbourne 
> Date: Wed, Sep 7, 2011 at 9:17 PM
> Subject: Proposal: restat rules
> To: ninja-bu...@googlegroups.com

FWIW, the Ninja generator I have been working on is based on work by
Nicolas Despres, and has been successfully used to compile a number
of large open source projects, including CMake itself, LLVM/Clang,
OpenCV and Bullet Physics.

I am planning to submit the Ninja generator as a patch to CMake
upstream once it has been put through more exhaustive testing and
certain known issues have been resolved (my post to ninja-build being
one of them).

Anyone who is interested in trying the Ninja generator with
their own projects is welcome to clone my repository at:

https://github.com/pcc/CMake/tree/ninja-generator

and to report any issues encountered.  Note that the generator is
currently only known to work on Linux.  To select the Ninja generator
you can pass the option "-G Ninja" on the cmake command line.

Thanks,
-- 
Peter
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake