Le mer. 14 nov. 2018 à 13:25, Poughon Victor <victor.poug...@cnes.fr> a écrit :
> Yes you are correct on all your observations. We already use ninja and > ccache wherever we can. In fact we have an issue about the whole end-to-end > build performance where we track all effort on this throughout the project > (if you're interested: > https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/issues/1649) > End-to-end build performance is a subject of interest to me, I'll have a look. > There are indeed quick and easy wins to be had with those tools (and we > are working on it). But my original question is not about that. It's about > speeding up the configure step with makefile generator. I still don't think > it's normal that it does hundreds of thousands of I/O on files that are a > few bytes or even empty. However it's possible that it's because we do > something incorrect in our CMakeLists.txt and not CMake's fault. > I don't really know makefile-generator internals so I cannot tell. For sur the current OTB build dir constructed with Makefile generator is spitting out around 180 Makefile. May be you can profile the cmake execution by building a debug version of CMake and collect more precise insight on where the bottlenecks may reside. You may track try_compile which could obviously be slow and may be configure_file as well. Otherwise I don't know, I guess you'll have to profile the cmake run. It's true that a few minutes of configure is not much when doing a full > build, but consider incremental builds where all you do is change one cxx > file (and cmake is triggered because you changed git branch or something). > Then the generate step is a significant part of the time you wait. > Yes that right. Note however that changing git branch should nor per-se trigger a cmake run. Only changing a CMakeLists.txt or configured file or explicitely specified by CMAKE_CONFIGURE_DEPENDS. Otherwise changing branch with git that only modifies source shouldn't trigger cmake rebuild. I do that all the time in a classical git branch dev model. -- Eric
-- 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