I have problems with generating proper include for dbus iface on Windows.

In kdepimlibs/akonadi we have the following lines:

<cmakelists>
set(akonadi_xml ${AKONADI_DBUS_INTERFACES_DIR}/org.kde.Akonadi.NotificationManager.xml)

set_source_files_properties(${akonadi_xml} PROPERTIES INCLUDE "notificationmessage_p.h")

qt4_add_dbus_interface( akonadikde_LIB_SRC ${akonadi_xml} notificationmanagerinterface )
</cmakelists>

This generates notificationmanagerinterface.h and .cpp.

The second line should prepend #include "notificationmessage_p.h" to the former, but on windows the command line was: dbusxml2cpp -m -p notificationmanagerinterface C:/kde4/share/dbus-1/interfaces/org.kde.Akonadi.NotificationManager.xml

The effect is that Akonadi::NotificationMessage::List is undefined:
<errmsg>
[ 0%] Building CXX object akonadi/CMakeFiles/akonadi-kde.dir/notificationmanagerinterface.obj
notificationmanagerinterface.cpp
c:\kde4\tmp\kdepimlibs-20080202\work\msvc2005-debug\akonadi\notificationmanagerinterface.h(40) : error C2653: 'Akonadi'
: is not a class or namespace name
</errmsg>

Attached the generated file.

cmake 2.4.8.

--
regards / pozdrawiam, Jaroslaw Staniek
 Sponsored by OpenOffice Polska (http://www.openoffice.com.pl/en) to work on
 Kexi & KOffice (http://www.kexi.pl/en, http://www.koffice.org/kexi)
 KDE Libraries for MS Windows (http://windows.kde.org)
/*
 * This file was generated by dbusxml2cpp version 0.6
 * Command line was: dbusxml2cpp -m -p notificationmanagerinterface 
C:/kde4/share/dbus-1/interfaces/org.kde.Akonadi.NotificationManager.xml
 *
 * dbusxml2cpp is Copyright (C) 2006 Trolltech ASA. All rights reserved.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef NOTIFICATIONMANAGERINTERFACE_H_1209662990
#define NOTIFICATIONMANAGERINTERFACE_H_1209662990

#include <QtCore/QObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
#include <QtDBus/QtDBus>

/*
 * Proxy class for interface org.kde.Akonadi.NotificationManager
 */
class OrgKdeAkonadiNotificationManagerInterface: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.kde.Akonadi.NotificationManager"; }

public:
    OrgKdeAkonadiNotificationManagerInterface(const QString &service, const 
QString &path, const QDBusConnection &connection, QObject *parent = 0);

    ~OrgKdeAkonadiNotificationManagerInterface();

public Q_SLOTS: // METHODS
Q_SIGNALS: // SIGNALS
    void notify(const Akonadi::NotificationMessage::List & message);
};

namespace org {
  namespace kde {
    namespace Akonadi {
      typedef ::OrgKdeAkonadiNotificationManagerInterface NotificationManager;
    }
  }
}
#endif
_______________________________________________
Kde-windows mailing list
Kde-windows@kde.org
https://mail.kde.org/mailman/listinfo/kde-windows

Reply via email to