kdewidgets designer plugin not built correctly

Alexander Neundorf neundorf at kde.org
Fri Apr 7 21:00:39 CEST 2006


On Friday 07 April 2006 15:52, Matt Rogers wrote:
> Hi,
>
> the kdewidgets.so library that hold all the kde widget plugins for use
> in designer is not being built correctly. There are several issues:
>
> 1. kdewidgets.cpp is not regenerated if makekdewidgets has to be rebuilt
> due to a change in the code or after a 'make clean' in the kdewidgets
> directory.
>
> 2. kdewidgets.so does not contain the symbols from kdewidgets.o that is
> built from kdewidgets.cpp (at least that's what i see when looking at
> the output of nm)
>
> 3. kdewidgets.la is not recreated during the build process after a 'make
> clean'. doing a 'make clean && make && make install' results in an error
> from cmake about kdewidgets.la not being found.
>
> AFAICT, the CMakeLists.txt file in kdelibs/kdewidgets looks fine but
> perhaps somebody else could take a look.

This is from the CMakeLists.txt:

add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kdewidgets.cpp
  COMMAND "${MAKEKDEWIDGETS_EXECUTABLE}"
  ARGS -o ${CMAKE_CURRENT_BINARY_DIR}/kdewidgets.cpp 
${CMAKE_CURRENT_SOURCE_DIR}/kde.widgets
  DEPENDS kde.widgets 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)

kde4_automoc(classpreviews.cpp)

qt4_add_resources(kdewidgets_PART_SRCS kdewidgets.qrc)

kde4_add_plugin(kdewidgets ${kdewidgets_PART_SRCS})

Which looks ok, but apparently cmake seems to "forget" about kdewidgets.cpp, 
here's a snippet from the link command:

-o ../lib/kdewidgets.so "CMakeFiles/kdewidgets.dir/classpreviews.o" 
"CMakeFiles/kdewidgets.dir/qrc_kdewidgets.o"  
-L/home/alex/src/kde4-svn/kdelibs-build/lib

IOW no kdewidgets.o is linked. kdewidgets_PART_SRCS still contains 
kdewidgets.cpp, and cmake complains without the add_custom_command().
Replacing kde4_add_plugin() with add_library() doesn't change this behaviour.
Bug in cmake ?

Bye
Alex
-- 
Work: alexander.neundorf AT jenoptik.com - http://www.jenoptik-los.de
Home: neundorf AT kde.org                - http://www.kde.org
      alex AT neundorf.net               - http://www.neundorf.net


More information about the Kde-buildsystem mailing list