moc files not generated in kdewidgets anymore

Alexander Neundorf neundorf at kde.org
Thu Jun 14 21:08:10 UTC 2012


On Thursday 14 June 2012, Alexander Neundorf wrote:
> On Thursday 14 June 2012, David Faure wrote:
> > In the frameworks branch of kdelibs, cmake is not creating the moc files
> > in kdewidgets/ anymore.
> > 
> > Testcase: build kdelibs-frameworks (qt4, full build) from scratch, or
> > just delete the moc files in your existing build.
> > 
> > Error message:
> > 
> > [100%] Automoc for target kdewidgets
> > [100%] Built target kdewidgets_automoc
> > [100%] Generating kdewidgets.cpp
> > [100%] Building CXX object
> > kdewidgets/CMakeFiles/kdewidgets.dir/kdewidgets.cpp.o
> > /d/kde/build/5/kdelibs-frameworks/kdewidgets/kdewidgets.cpp:2584:71:
> > fatal error:
> > /d/kde/build/5/kdelibs-frameworks/kdewidgets/kdewidgets.moc: No such
> > file or directory
> > 
> > CMakeLists.txt extract:
> >   # get the name of the generated wrapper script (which sets up
> > 
> > LD_LIBRARY_PATH) get_target_property(MAKEKDEWIDGETS_EXECUTABLE
> > makekdewidgets WRAPPER_SCRIPT)
> > 
> >   add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kdewidgets.cpp
> >   
> >     COMMAND "${MAKEKDEWIDGETS_EXECUTABLE}" -o
> > 
> > ${CMAKE_CURRENT_BINARY_DIR}/kdewidgets.cpp
> > ${CMAKE_CURRENT_SOURCE_DIR}/kde.widgets MAIN_DEPENDENCY kde.widgets
> > DEPENDS makekdewidgets)
> > 
> >   set(kdewidgets_PART_SRCS
> >   
> >      classpreviews.cpp
> >      ${CMAKE_CURRENT_BINARY_DIR}/kdewidgets.cpp
> >   
> >   )
> >   
> >   qt4_generate_moc(${CMAKE_CURRENT_BINARY_DIR}/kdewidgets.cpp
> > 
> > ${CMAKE_CURRENT_BINARY_DIR}/kdewidgets.moc)
> > 
> > Possible fix:
> >  adding the moc file for the list of sources, to force it to be
> >  generated,
> > 
> > seems to work. Shall I do that?
> 
> For now, yes, please.
> 
> Not quite sure why it was building for me, probably the moc files were
> already there.
> 
> The reason is that this now uses FindQt4.cmake from cmake, and KDEs version
> and the one in cmake were not kept completely in sync.
> 
> The difference here is that qt4_generate_moc() from KDE calls
> macro_add_file_dependency() to make the cpp file depend on the generated
> moc file, so the moc is created. The one coming with cmake doesn't do
> this, so this dependency is not there and the file is not created.
> 
> I can remember that using OBJECT_DEPENDS (as is done in KDEs version) is
> not recommended. I'll check on the cmake list what the recommended use of
> OBJECT_DEPENDS is.
> 
> Alex

Did I mention that the build system in the frameworks branch is currently a 
bit messy, because some parts are built with the stuff from 
kdelibs/cmake/modules/, and some are built somewhat independent ?

I'm afraid this will not get much better before most things have moved into 
tierX/

Alex

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-buildsystem/attachments/20120614/7230ff59/attachment-0001.html>


More information about the Kde-buildsystem mailing list