Bug 70808

Summary: Cannot compile lib/qmdiext/kmdidockwidget.h - missing kdockwidget_p.h
Product: [Applications] kdevelop Reporter: Aaron Williams <aaronw>
Component: generalAssignee: KDevelop Developers <kdevelop-devel>
Status: RESOLVED NOT A BUG    
Severity: normal    
Priority: NOR    
Version: 3.0.0b2   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Solaris   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Aaron Williams 2003-12-19 06:58:44 UTC
Version:           3.0.0b2 (using KDE KDE 3.1.94)
Installed from:    Compiled From Sources
Compiler:          gcc 3.3.2 UltraSparc Solaris 2.8
OS:          Solaris

The file kdockwidget_p.h from kdelibs/kdeui is not installed in $KDEDIR/include according to the kdelibs/kdeui/Makefile.  Kdevelop is trying to include this file and failing to compile due to this.  If I change the makefile in kdelibs/kdeui to install this file then this compiles fine.

I don't know if this is a kdelibs or a kdevelop problem.
Comment 1 Thiago Macieira 2003-12-19 16:39:04 UTC
_p files are not supposed to be installed. If they are installed, you shouldn't be using them.
Comment 2 Alexander Dymo 2003-12-19 17:24:56 UTC
Run make -f Makefile.cvs && ./configure again. If you are running KDE CVS, lib/qextmdi directory won't be compiled if build system configured properly.

PS: please report compiling errors to kdevelop-devel mainling list instead of the bug system.
Comment 3 Aaron Williams 2003-12-20 00:30:44 UTC
Subject: Re:  Cannot compile lib/qmdiext/kmdidockwidget.h - missing
 kdockwidget_p.h

There is no Makefile.cvs.

Alexander Dymo wrote:

>------- You are receiving this mail because: -------
>You reported the bug, or are watching the reporter.
>     
>http://bugs.kde.org/show_bug.cgi?id=70808     
>cloudtemple@mksat.net changed:
>
>           What    |Removed                     |Added
>----------------------------------------------------------------------------
>             Status|UNCONFIRMED                 |RESOLVED
>         Resolution|                            |INVALID
>
>
>
>------- Additional Comments From cloudtemple@mksat.net  2003-12-19 17:24 -------
>Run make -f Makefile.cvs && ./configure again. If you are running KDE CVS, lib/qextmdi directory won't be compiled if build system configured properly.
>
>PS: please report compiling errors to kdevelop-devel mainling list instead of the bug system.
>  
>

Comment 4 Aaron Williams 2003-12-20 04:49:45 UTC
I have traced this problem down to a bug in configure.  For some reason, it does not pass the correct include path to GCC.

I have my prefix set to /opt/kde3/3.2beta but what actually gets passed to g++ from configure when testing kmdi is

-I${prefix}/include

For some reason it does not resolve ${prefix} and substitute /opt/kde3/3.2beta, even though I can see that $prefix is set properly.  I'm not a shell script guru, so I don't know what exactly is causing this, but after I hard-coded $kde_includes to be $prefix/include (where it did get properly passed to g++) everything works fine and qextmdi is not getting compiled.

Comment 5 Aaron Williams 2004-02-06 03:26:27 UTC
The problem is back with kdevelop 3.0.0 compiled with KDE 3.2.0

make[3]: Entering directory `/var/tmp/kde/archive/3.2/kdevelop-3.0.0/lib/qextmdi'
if /bin/bash ../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../lib/qextmdi/res -I../../lib/structure -I/opt/kde3/3.2/include -I/opt/qt/qt-3.2.2/include   -I/opt/kdeshared/include  -DQT_THREAD_SUPPORT  -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4  -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -O2 -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION  -MT kmdichildfrm.lo -MD -MP -MF ".deps/kmdichildfrm.Tpo" \
  -c -o kmdichildfrm.lo `test -f 'kmdichildfrm.cpp' || echo './'`kmdichildfrm.cpp; \
then mv -f ".deps/kmdichildfrm.Tpo" ".deps/kmdichildfrm.Plo"; \
else rm -f ".deps/kmdichildfrm.Tpo"; exit 1; \
fi
In file included from kmdimainfrm.h:50,
                 from kmdichildfrm.cpp:43:
kmdidockwidget.h:26:28: kdockwidget_p.h: No such file or directory
In file included from kmdimainfrm.h:50,
                 from kmdichildfrm.cpp:43:
kmdidockwidget.h:77: error: base class `KDockContainer' has incomplete type
kmdidockwidget.h: In constructor `
   KMdiDockContainerBase::KMdiDockContainerBase()':
kmdidockwidget.h:79: error: type `struct KDockContainer' is not a direct base
   of `KMdiDockContainerBase'
make[3]: *** [kmdichildfrm.lo] Error 1
make[3]: Leaving directory `/var/tmp/kde/archive/3.2/kdevelop-3.0.0/lib/qextmdi'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/kde/archive/3.2/kdevelop-3.0.0/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/kde/archive/3.2/kdevelop-3.0.0'
make: *** [all] Error 2


In kmdidockwidget.h I see:


#if defined(NO_KDE) || defined(OLDER_THAN_KDE_3_2)
# include "kdockwidget_compat.h"
# ifndef NO_KDE
#  include "dockmainwindow_compat.h"
# endif
using namespace KDockWidget_Compat;
#else
# include <kdockwidget.h>
# include <kdockwidget_p.h>
#endif

kdockwidget_p.h is not installed and should not be included.

Comment 6 Aaron Williams 2004-03-13 03:02:36 UTC
This is still broken in kdevelop 3.0.2 when compiled with KDE 3.2.1.

Comment 7 Amilcar do Carmo Lucas 2004-03-13 04:21:03 UTC
Follow the compilation instructions on the web site. They are very explicit.
Comment 8 Amilcar do Carmo Lucas 2004-03-13 04:22:30 UTC
Like Adymo said, this is not a bug, it is a compilation error.
Use the kdevelop-devel mailing list. Instructions on the website.