David Faure wrote: > I have seen this problem multiple times, but I'm not sure something can be > done about it... > Basically the first time "make" is run, if it triggers a cmake run, then the > new dependencies > are not taken into account. They are only when running make again. > > Example: branches/work/kdelibs4_snapshot was just updated with 2 weeks worth > of trunk/KDE/kdelibs changes, including the renaming of the > ksortablevaluelist.h header. Typing make gave: > make[2]: *** No rule to make target > `/d/kde/src/4/kdelibs4_snapshot/kdecore/ksortablevaluelist.h', needed by > `kdeui/tests/CMakeFiles/kcomboboxtest.dir/kcomboboxtest.o'. Stop.
Did this acutally cause CMake to run again? Did you really run just "make" or perhaps a "make my-target"? I just created a small project, built it, renamed a header, and built again and it worked. There is something else going on here. > Typing make again gave: > [...] > Dependee "/d/kde/src/4/kdelibs4_snapshot/kdecore/ksortablevaluelist.h" does > not exist for depender > "kdeui/tests/CMakeFiles/kcompletiontest.dir/kcompletioncoretest.o". > [...] > and this time there was no problem. This looks like it ran cmake again and built correctly in the same make run. > Is this a problem like "make launches cmake which regenerates makefiles but > then make > doesn't use the new makefiles"? iirc there are solutions to this problem in > general but I forgot > which, I think coolo knows more. The basic makefile structure looks like this: all: cmake_check_build_system ...recursive make to do real build... cmake_check_build_system: ...run cmake to fix dependencies for missing headers... The recursive make call makes sure the new makefiles are used whether or not make is smart enough to reload them. -Brad _______________________________________________ Kde-buildsystem mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-buildsystem
