Browse Source

Test for a subtle KConfig API change between the official 3.80.3 release and the snapshot used by the kde-windows developers and fix build with the changed API.

git-svn-id: file:///var/svn/tigccpp/trunk@1041 9552661e-59e3-4036-b4f2-dbe53926924f
kevinkofler 17 years ago
parent
commit
8d7baa94c0
3 changed files with 20 additions and 5 deletions
  1. 8 0
      ktigcc/completion.cpp
  2. 9 5
      ktigcc/ktigcc.pro
  3. 3 0
      ktigcc/newsdlg.cpp

+ 8 - 0
ktigcc/completion.cpp

@@ -481,7 +481,11 @@ bool parseSystemHeaders(QWidget *parent, const QString &directory,
 
 void loadSystemHeaderCompletion(void)
 {
+#ifdef HAVE_KSHAREDCONFIG_H
+  KConfig config("data","ktigcc/completion",KConfig::NoGlobals);
+#else
   KConfig config("ktigcc/completion",true,false,"data");
+#endif
   QStringList groupList=config.groupList();
   if (groupList.isEmpty()) {
     KMessageBox::queuedMessageBox(0,KMessageBox::Sorry,
@@ -524,7 +528,11 @@ void loadSystemHeaderCompletion(void)
 
 void saveSystemHeaderCompletion(void)
 {
+#ifdef HAVE_KSHAREDCONFIG_H
+  KConfig config("data","ktigcc/completion",KConfig::NoGlobals);
+#else
   KConfig config("ktigcc/completion",false,false,"data");
+#endif
   for (QMap<QString,CompletionInfo>::ConstIterator it=systemHeaderCompletion.begin();
        it!=systemHeaderCompletion.end(); ++it) {
     const QString &key=it.key();

+ 9 - 5
ktigcc/ktigcc.pro

@@ -90,20 +90,22 @@ OBJECTS_DIR = .obj
 win32-cross-g++ {
   KDEPREFIX = $$(KDEPREFIX)
   isEmpty(KDEPREFIX):error(Please source mingw32-ktigcc.sh to set up the cross-build environment.)
-  # $$KDEPREFIX/include/mingw contains the kdewin32 headers, defining stuff like mkdtemp.
-  INCLUDEPATH += $$KDEPREFIX/include/mingw $$KDEPREFIX/include
+  KDEINCDIR = $$KDEPREFIX/include
+  # $$KDEINCDIR/mingw contains the kdewin32 headers, defining stuff like mkdtemp.
+  INCLUDEPATH += $$KDEINCDIR/mingw $$KDEINCDIR
   QMAKE_LIBDIR = $$KDEPREFIX/lib $$QMAKE_LIBDIR
 } else {
   KDEPREFIX = $$system(kde4-config --prefix)
   isEmpty(KDEPREFIX):error(KDE 4 kdelibs required.)
 
   exists($$KDEPREFIX/include/kde4/KDE) {
-    INCLUDEPATH += $$KDEPREFIX/include/kde4
+    KDEINCDIR = $$KDEPREFIX/include/kde4
   } else:exists($$KDEPREFIX/include/kde/KDE) {
-    INCLUDEPATH += $$KDEPREFIX/include/kde
+    KDEINCDIR = $$KDEPREFIX/include/kde
   } else {
-    INCLUDEPATH += $$KDEPREFIX/include
+    KDEINCDIR = $$KDEPREFIX/include
   }
+  INCLUDEPATH += $$KDEINCDIR
 
   KDELIBDIR = $$KDEPREFIX/lib$$system(kde4-config --libsuffix)
 
@@ -170,6 +172,8 @@ isEmpty(CXXFLAGS) {
   }
 }
 *-g++*:CXXFLAGS += -DHAVE_STDINT_H
+# Test for a subtle API change between the official 3.80.3 release and the snapshot used by the kde-windows developers.
+exists($$KDEINCDIR/ksharedconfig.h):CXXFLAGS += -DHAVE_KSHAREDCONFIG_H
 QMAKE_CXXFLAGS_DEBUG = $$CXXFLAGS -Wno-non-virtual-dtor $$PKGCONFIG_CFLAGS
 QMAKE_CXXFLAGS_RELEASE = $$CXXFLAGS -Wno-non-virtual-dtor $$PKGCONFIG_CFLAGS
 

+ 3 - 0
ktigcc/newsdlg.cpp

@@ -26,6 +26,9 @@
 #include <kurl.h>
 #include <kio/netaccess.h>
 #include <kmessagebox.h>
+#ifdef HAVE_KSHAREDCONFIG_H
+#include <ksharedconfig.h>
+#endif
 #include <QVariant>
 #include <QImage>
 #include <QPixmap>