On Friday 22 February 2008, Brad King wrote:
David Faure wrote:
Sorry, me again :)
With cmake cvs from today, when I modify a header file, the corresponding
.cpp file (which obviously includes it)
doesn't get recompiled !?!?
I tried touching the CMakeLists.txt in that dir, I tried forcing a
recompile of foo.cpp
(to let it recompute dependencies if that's when it happens),
but after that the same happens: changing the header file triggers no
recompilation.
I cannot reproduce this. Everything rebuilds correctly for me.
Did you start with a fresh build tree or run CMake from CVS on a tree
initially generated by 2.4?
It was an old tree indeed (that's why I tried forcing stuff but it didn't help).
What generator are you using?
Makefiles.
If you're using the Makefiles generator, look in the build tree under
CMakeFiles/target-not-rebuilding.dir. There should be files like
depend.make and CXX.includecache. Please send them to me.
CMakeFiles/kdecore.dir/depend.make is empty (# Empty dependencies files, #
This may be replaced when dependencies are built)
CXX.includecache is up at http://web.davidfaure.fr/tmp/CXX.includecache
(strange syntax, is the target the first line after an empty line?)
My testcase is:
touch sycoca/ksycocafactory.h ; make
and I see
[ 0%] Generating kdecore_automoc.cpp
[ 0%] Building CXX object kdecore/CMakeFiles/kdecore.dir/kdecore_automoc.cpp.o
Linking CXX shared library ../lib/libkdecore.so
instead of
makeobj[0]: Entering directory `/d/kde/build/4/kdelibs/kdecore'
[ 0%] Generating kdecore_automoc.cpp
[ 0%] Building CXX object kdecore/CMakeFiles/kdecore.dir/kdecore_automoc.cpp.o
[ 0%] Building CXX object
kdecore/CMakeFiles/kdecore.dir/sycoca/ksycocafactory.cpp.o
[and plenty others]
Linking CXX shared library ../lib/libkdecore.so
Can you reproduce it in a new build tree?
OK, that was it.
I deleted the kdecore build dir and ran cmake again, and now it works as
expected.
Dependee /d/kde/src/4/kdelibs/kdecore/sycoca/ksycocafactory.h is newer than
depender kdecore/CMakeFiles/kdecore.dir/services/kmimetype.cpp.o.
Dependee /d/kde/src/4/kdelibs/kdecore/sycoca/ksycocafactory.h is newer than
depender kdecore/CMakeFiles/kdecore.dir/services/kmimetypefactory.cpp.o.
Dependee /d/kde/src/4/kdelibs/kdecore/sycoca/ksycocafactory.h is newer than
depender kdecore/CMakeFiles/kdecore.dir/services/kmimetypetrader.cpp.o.
Dependee /d/kde/src/4/kdelibs/kdecore/sycoca/ksycocafactory.h is newer than
depender kdecore/CMakeFiles/kdecore.dir/services/kservice.cpp.o.
[...]
Dependee /d/kde/src/4/kdelibs/kdecore/sycoca/ksycocafactory.h is newer than
depender kdecore/CMakeFiles/kdecore.dir/sycoca/ksycoca.cpp.o.
Dependee /d/kde/src/4/kdelibs/kdecore/sycoca/ksycocafactory.h is newer than
depender kdecore/CMakeFiles/kdecore.dir/sycoca/ksycocafactory.cpp.o.
and then it works fine.
Maybe cmake could do like Qt's moc and say this build tree was generated with
cmake-2.4, you need to delete it and regenerate it to use this version of
cmake or something like that?
--
David Faure, [EMAIL PROTECTED], sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem