<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I’m wondering about the different dependency strategies between ‚Unix Makefiles’ and Nina generator.<div class=""><br class=""></div><div class="">IMHO: This make ninja slower without much user benefit!</div><div class=""><br class=""></div><div class="">-Claus<br class=""><div class=""><br class=""></div><div class=""><div class="">find . -name depend.make | xargs cat</div><div class=""># CMAKE generated file: DO NOT EDIT!</div><div class=""># Generated by "Unix Makefiles" Generator, CMake Version 3.10</div><div class=""><br class=""></div><div class="">CMakeFiles/BindToDevice.dir/BindToDevice.c.o: ../BindToDevice.c</div><div class=""><br class=""></div><div class=""># CMAKE generated file: DO NOT EDIT!</div><div class=""># Generated by "Unix Makefiles" Generator, CMake Version 3.10</div><div class=""><br class=""></div><div class="">CMakeFiles/InnerClassIdiom.dir/InnerClassIdiom.cpp.o: ../InnerClassIdiom.cpp</div><div class=""><br class=""></div><div class=""># CMAKE generated file: DO NOT EDIT!</div><div class=""># Generated by "Unix Makefiles" Generator, CMake Version 3.10</div><div class=""><br class=""></div><div class="">CMakeFiles/testFileAppend.dir/tests/testFileAppend.c.o: ../tests/testFileAppend.c</div><div class=""><br class=""></div><div class="">#########################################</div><div class=""><br class=""></div><div class="">Claus-MBP:build clausklein$ ninja -t deps</div><div class=""><br class=""></div><div class="">CMakeFiles/testFileAppend.dir/tests/testFileAppend.c.o: #deps 98, deps mtime 1517904010 (VALID)</div><div class="">    ../tests/testFileAppend.c</div><div class="">    /usr/include/sys/stat.h</div><div class="">    /usr/include/sys/_types.h</div><div class="">    /usr/include/sys/cdefs.h</div><div class="">    /usr/include/sys/_symbol_aliasing.h</div><div class="">    /usr/include/sys/_posix_availability.h</div><div class="">    /usr/include/machine/_types.h</div><div class="">    /usr/include/i386/_types.h</div><div class="">    /usr/include/sys/_pthread/_pthread_types.h</div><div class="">    /usr/include/Availability.h</div><div class="">    /usr/include/AvailabilityInternal.h</div><div class=""><br class=""></div><div class=""># ….</div><div class=""><br class=""></div><div class="">quote from ninja list:</div><div class=""><br class=""></div><div class="">On Thu, Nov 30, 2017 at 12:09:55 -0800, Evan Martin wrote:<br class=""><blockquote type="cite" class="">That CMake change is interesting.  While it's true that it is more correct<br class="">to check the state of the system headers, it's also true that to be fully<br class="">correct here you need a completely hermetic build.  If CMake doesn't also<br class="">check the compiler binary as well as any shared libraries that the compiler<br class="">binary uses, then I think using this extra flag only serves to make ninja<br class="">slower without much user benefit.<br class=""></blockquote><br class="">The mentioned issue is here:<br class=""><br class="">   <a href="https://cmake.org/Bug/view.php?id=14914" class="">https://cmake.org/Bug/view.php?id=14914</a><br class=""><br class="">It was done for feature parity with the Makefiles generators. They use<br class="">CMake's scanning logic rather than exact dependencies like Ninja (for<br class="">various reasons).<br class=""><br class="">--Ben<br class=""></div><div class=""><br class=""></div><div class=""></div></div></div></body></html>