MantisBT - CMake
View Issue Details
0013874CMakeCMakepublic2013-01-24 00:142013-10-07 10:03
Максим Прохоренко 
Peter Kuemmel 
normalmajoralways
closedfixed 
LinuxFedora18
CMake 2.8.10.2 
CMake 2.8.11 
0013874: Ninja: generated files like moc, huge deps list
In real project with huge number of generated files I have:

* Generates standard UNIX makefiles: build normal deps for generated files
* Generates build.ninja files (experimental): build strange deps, all files was rebuild in many strange cases, if i add new moc...
1 Qt example mandelbrot
2 Simple Cmake list file
3 configure general
4 configure Ninja
5 compare build.ninja and build.make for deps list
No tags attached.
related to 0013559closed Peter Kuemmel Ninja: Wrong dependency with PCH support 
related to 0013592closed Peter Kuemmel Ninja: Inefficient Ninja DAG with add_custom_command 
7z cmake-test-ninja.7z (540,476) 2013-01-24 00:14
https://public.kitware.com/Bug/file/4621/cmake-test-ninja.7z
txt CMakeLists.txt (509) 2013-02-16 07:44
https://public.kitware.com/Bug/file/4645/CMakeLists.txt
Issue History
2013-01-24 00:14Максим ПрохоренкоNew Issue
2013-01-24 00:14Максим ПрохоренкоFile Added: cmake-test-ninja.7z
2013-02-09 06:44Peter KuemmelNote Added: 0032243
2013-02-09 06:44Peter KuemmelAssigned To => Peter Kuemmel
2013-02-09 06:44Peter KuemmelStatusnew => assigned
2013-02-09 07:03Peter KuemmelSummaryNinja and generated files like moc, huge deps list => Ninja: generated files like moc, huge deps list
2013-02-16 06:41Peter KuemmelRelationship addedrelated to 0013559
2013-02-16 07:43Peter KuemmelNote Added: 0032309
2013-02-16 07:44Peter KuemmelFile Added: CMakeLists.txt
2013-02-16 08:01Peter KuemmelNote Added: 0032310
2013-02-16 08:01Peter KuemmelStatusassigned => resolved
2013-02-16 08:01Peter KuemmelFixed in Version => CMake 2.8.11
2013-02-16 08:01Peter KuemmelResolutionopen => fixed
2013-03-09 06:12Peter KuemmelRelationship addedrelated to 0013592
2013-10-07 10:03Robert MaynardNote Added: 0033987
2013-10-07 10:03Robert MaynardStatusresolved => closed

Notes
(0032243)
Peter Kuemmel   
2013-02-09 06:44   
The reason for the recompile is that each source file implicitly depends from all mocs, e.g.:

build renderthread.cpp.obj: CXX_COMPILER renderthread.cpp | moc_mandelbrotwidget.cxx moc_renderthread.cxx

http://martine.github.com/ninja/manual.html#_ninja_file_reference [^]

Looks like QT4_WRAP_CPP sets a dependency which is misinterpreted by the ninja generator.
(0032309)
Peter Kuemmel   
2013-02-16 07:43   
Commit http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aa2e1e9caef92b10083a03c2ded5c937703e69b8 [^] was wrong.

It was committed because of http://public.kitware.com/pipermail/cmake-developers/2012-October/005336.html [^]
(0032310)
Peter Kuemmel   
2013-02-16 08:01   
reverted aa2e1e9caef92b10083a03c2ded5c937703e69b8
(0033987)
Robert Maynard   
2013-10-07 10:03   
Closing resolved issues that have not been updated in more than 4 months.