[Marble-devel] Qt namespace patch

Dennis Nienhüser earthwings at gentoo.org
Fri Sep 26 03:45:47 UTC 2014


Hi Martin,

I see the problem you're facing and appreciate the work you put into the 
patch. However I am concerned about maintaining (read: not breaking) it 
in the future.

The real problem IMHO is that Qt does not (really) use namespaces in the 
first place. The ability to change that dynamically with a configure 
option seems insane to me and asks for trouble (like here, shifting 
additional work on Qt dependent libraries).

Regards,
Dennis

Am 12.08.2014 15:49, schrieb Martin Koller:
> Hi,
> 
> to be able to compile the (Qt-only) marble lib when using a 
> self-compiled
> Qt5 which was configured with a namespace (configure -qtnamespace
> MyNameSpace ...)
> one has to use the Qt macro QT_FORWARD_DECLARE_CLASS when forward
> declaring a Qt class
> (or directly including the class header), so e.g. instead of
> class QString;
> one needs to write
> QT_FORWARD_DECLARE_CLASS(QString)
> 
> Note that using this macro makes sure it compiles with or without 
> namespace.
> 
> The attached patch does this for all marble files
> (some files needed to be tweaked manually as the
> QT_FORWARD_DECLARE_CLASS macro needs to be known
> by a header, so sometimes it's simpler to just include the Qt header
> directly instead of doing an include
> of the header containing the macro and then using 
> QT_FORWARD_DECLARE_CLASS)
> 
> Hope you can integrate it.
> 
> _______________________________________________
> Marble-devel mailing list
> Marble-devel at kde.org
> https://mail.kde.org/mailman/listinfo/marble-devel


More information about the Marble-devel mailing list