Re: cmake cvs head - dependencies broken

2008-02-22 Thread Brad King
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?  Can you reproduce it in a new build tree?
What generator are you using?

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.

-Brad
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: cmake cvs head - dependencies broken

2008-02-22 Thread David Faure
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


Re: cmake cvs head - dependencies broken

2008-02-22 Thread Brad King
David Faure wrote:
 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?)

Ask Alex, he wrote the include cache stuff, and it does make dependency
scanning amazingly fast.  I think the syntax is meant to be very fast to
parse.

 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.
[snip]
 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?

Well, the intention is to work with existing build trees.  I just tried
generating a simple example project with 2.4 and then running CMake from
CVS on it.  Everything still rebuilds correctly (both with and without
building between the cmake runs).  Are you able to reproduce this if you
create a kdecore tree with cmake 2.4 and then run cmake HEAD on it again?

-Brad
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem