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

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

Attachment: dependencies.log
Description: Binary data


-- 

Powered by www.kitware.com

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

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

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

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake-developers

Reply via email to