[cmake-developers] why includes the Ninja decency contents sytemheader too?
Claus Klein
claus.klein at arcormail.de
Tue Feb 6 03:19:44 EST 2018
I’m wondering about the different dependency strategies between ‚Unix Makefiles’ and Nina generator.
IMHO: This make ninja slower without much user benefit!
-Claus
find . -name depend.make | xargs cat
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
CMakeFiles/BindToDevice.dir/BindToDevice.c.o: ../BindToDevice.c
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
CMakeFiles/InnerClassIdiom.dir/InnerClassIdiom.cpp.o: ../InnerClassIdiom.cpp
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.10
CMakeFiles/testFileAppend.dir/tests/testFileAppend.c.o: ../tests/testFileAppend.c
#########################################
Claus-MBP:build clausklein$ ninja -t deps
CMakeFiles/testFileAppend.dir/tests/testFileAppend.c.o: #deps 98, deps mtime 1517904010 (VALID)
../tests/testFileAppend.c
/usr/include/sys/stat.h
/usr/include/sys/_types.h
/usr/include/sys/cdefs.h
/usr/include/sys/_symbol_aliasing.h
/usr/include/sys/_posix_availability.h
/usr/include/machine/_types.h
/usr/include/i386/_types.h
/usr/include/sys/_pthread/_pthread_types.h
/usr/include/Availability.h
/usr/include/AvailabilityInternal.h
# ….
quote from ninja list:
On Thu, Nov 30, 2017 at 12:09:55 -0800, Evan Martin wrote:
> That CMake change is interesting. While it's true that it is more correct
> to check the state of the system headers, it's also true that to be fully
> correct here you need a completely hermetic build. If CMake doesn't also
> check the compiler binary as well as any shared libraries that the compiler
> binary uses, then I think using this extra flag only serves to make ninja
> slower without much user benefit.
The mentioned issue is here:
https://cmake.org/Bug/view.php?id=14914 <https://cmake.org/Bug/view.php?id=14914>
It was done for feature parity with the Makefiles generators. They use
CMake's scanning logic rather than exact dependencies like Ninja (for
various reasons).
--Ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake-developers/attachments/20180206/abb49f39/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dependencies.log
Type: application/octet-stream
Size: 19832 bytes
Desc: not available
URL: <https://cmake.org/pipermail/cmake-developers/attachments/20180206/abb49f39/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake-developers/attachments/20180206/abb49f39/attachment-0001.html>
More information about the cmake-developers
mailing list