On Tuesday, September 23, 2014 09:58:58 Stephen Kelly wrote: > Hi (especially Alex), > > I noticed that the automoc target is run each time, even for a trivial > project: > > cmake_minimum_required(VERSION 2.8) > project(automoctest) > > set(CMAKE_AUTOMOC ON) > > find_package(Qt5Widgets REQUIRED) > > add_executable(main main.cpp) > target_link_libraries(main Qt5::Widgets) > > Each time I run make I get > > [ 33%] Automatic moc for target main > /path/to/cmake -E cmake_autogen /path/to/build/CMakeFiles/main_automoc.dir/ > " > > I checked CMake 2.8.7 and it executes the target each time too. > > In the implementation, makefile->AddUtilityCommand is called with 'true' to > set the excludeFromAll parameter. > > I don't see why the target is executed each time, but is it that way by > design?
iirc, yes. The moc files have to be generated before any of the source files is compiled, so automoc is in a target the actual target depends on. IIRC it is exclude_from_all so that it is only built when the actual target is built. Do you think it should only rerun if any of the source files has changed ? There was some problem with this. The headers are usually not part of the listed source files. I would have to check to find out the details again. Alex -- 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: http://public.kitware.com/mailman/listinfo/cmake-developers