[cmake-developers] Free CMake course at Kitware Headquarters March 13-15, 2018 at Kitware's Clifton Park, NY, USA
Kitware is offering a free course on VTK/ParaView/CMake March 13-15, 2018 at Kitware's Clifton Park, NY, USA. The signup can be found here: https://docs.google.com/forms/d/e/1FAIpQLSeee7oTBzapITmark0dIX0E86zEyyPmh-LEbecz2zm_822WFw/viewform Hope to meet some of you in person. -Bill -- 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
Re: [cmake-developers] why includes the Ninja decency contents sytemheader too?
On 02/06/2018 10:03 AM, Claus Klein wrote: > why different default behaviors in Nina and Makefile generators? The Makefile dependency generation works totally differently and can't do system headers well at all. One day perhaps they should be ported to use a depfile approach too and then a similar switch could be added. However, it must continue to support compilers that don't have any depfile flags. -Brad -- 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
Re: [cmake-developers] why includes the Ninja decency contents sytemheader too?
Yes, it should be configurable via one option flag. The cmake user can control it but it is not well documented and different to configure depending on compiler and generator used: #for ninja generator: set(CMAKE_DEPFILE_FLAGS_CXX "-MMD -MT -MF " CACHE STRING "dependency flag" FORCE) # for makefile generator: option(CMAKE_DEPENDS_IN_PROJECT_ONLY „do NOT use system header dependencies“ ON) ### But I am still wondering why different default behaviors in Nina and Makefile generators? Claus > Am 06.02.2018 um 13:22 schrieb Brad King : > > Some people want system headers checked for $reasons, and others > don't want them checked for $other_reasons. The only way to satisfy > both groups is to make it an option. > > The internal `CMAKE_DEPFILE_FLAGS_${lang}` table of flags used for this > would need to be extended with `CMAKE_DEPFILE_NOSYSTEM_FLAGS_${lang}` > alternatives. Some option would need to be introduced to choose. > > -Brad -- 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
Re: [cmake-developers] why includes the Ninja decency contents sytemheader too?
On 02/06/2018 03:19 AM, Claus Klein wrote: > IMHO: This make ninja slower without much user benefit! For reference, the change was made for CMake 3.6 here: https://gitlab.kitware.com/cmake/cmake/commit/6d74e7870b8804a5af0bc395a9fbb45c1b3d26a4 The benefit is that sources recompile when system headers change after an update to system packages. During discussion of the change from -MMD to -MD, it was claimed that the performance impact was minimal: https://cmake.org/Bug/view.php?id=14914#c40684 Maybe that's true in some environments but not others. > 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. Robustness to some system updates is still valuable even without being robust to all system updates. Some people want system headers checked for $reasons, and others don't want them checked for $other_reasons. The only way to satisfy both groups is to make it an option. The internal `CMAKE_DEPFILE_FLAGS_${lang}` table of flags used for this would need to be extended with `CMAKE_DEPFILE_NOSYSTEM_FLAGS_${lang}` alternatives. Some option would need to be introduced to choose. -Brad -- 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
[cmake-developers] why includes the Ninja decency contents sytemheader too?
I’m wondering about the different dependency strategies between ‚Unix Makefiles’ and Nina generator.IMHO: This make ninja slower without much user benefit!-Clausfind . -name depend.make | xargs cat# CMAKE generated file: DO NOT EDIT!# Generated by "Unix Makefiles" Generator, CMake Version 3.10CMakeFiles/BindToDevice.dir/BindToDevice.c.o: ../BindToDevice.c# CMAKE generated file: DO NOT EDIT!# Generated by "Unix Makefiles" Generator, CMake Version 3.10CMakeFiles/InnerClassIdiom.dir/InnerClassIdiom.cpp.o: ../InnerClassIdiom.cpp# CMAKE generated file: DO NOT EDIT!# Generated by "Unix Makefiles" Generator, CMake Version 3.10CMakeFiles/testFileAppend.dir/tests/testFileAppend.c.o: ../tests/testFileAppend.c#Claus-MBP:build clausklein$ ninja -t depsCMakeFiles/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 correctto check the state of the system headers, it's also true that to be fullycorrect here you need a completely hermetic build. If CMake doesn't alsocheck the compiler binary as well as any shared libraries that the compilerbinary uses, then I think using this extra flag only serves to make ninjaslower without much user benefit.The mentioned issue is here: https://cmake.org/Bug/view.php?id=14914It was done for feature parity with the Makefiles generators. They useCMake's scanning logic rather than exact dependencies like Ninja (forvarious reasons).--Ben 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