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