Rex Dieter 29094f2
From bc0981b6fa49aa1821f9d0e649887b82b513dcd4 Mon Sep 17 00:00:00 2001
Rex Dieter 29094f2
From: Benjamin Reed <ranger@befunk.com>
Rex Dieter 29094f2
Date: Mon, 30 Mar 2009 14:24:47 +0000
Rex Dieter 29094f2
Subject: [PATCH 04/33] auto-detect case-insensitive filesystem on OSX
Rex Dieter 29094f2
Rex Dieter 29094f2
svn path=/trunk/kdesupport/automoc/; revision=946924
Rex Dieter 29094f2
---
Rex Dieter 29094f2
 kde4automoc.cpp | 16 ++++++++++++++--
Rex Dieter 29094f2
 1 file changed, 14 insertions(+), 2 deletions(-)
Rex Dieter 29094f2
Rex Dieter 29094f2
diff --git a/kde4automoc.cpp b/kde4automoc.cpp
Rex Dieter 29094f2
index 7636601..e85ec62 100644
Rex Dieter 29094f2
--- a/kde4automoc.cpp
Rex Dieter 29094f2
+++ b/kde4automoc.cpp
Rex Dieter 29094f2
@@ -47,6 +47,10 @@
Rex Dieter 29094f2
 #include <utime.h>
Rex Dieter 29094f2
 #endif
Rex Dieter 29094f2
 
Rex Dieter 29094f2
+#if defined(Q_OS_DARWIN) || defined(Q_OS_MAC)
Rex Dieter 29094f2
+#include <unistd.h>
Rex Dieter 29094f2
+#endif
Rex Dieter 29094f2
+
Rex Dieter 29094f2
 // currently this is only used for the version number, Alex
Rex Dieter 29094f2
 #include "automoc4_config.h"
Rex Dieter 29094f2
 
Rex Dieter 29094f2
@@ -182,7 +186,7 @@ void AutoMoc::lazyInit()
Rex Dieter 29094f2
 
Rex Dieter 29094f2
     // on the Mac, add -F always, otherwise headers in the frameworks won't be found
Rex Dieter 29094f2
     // is it necessary to do this only optionally ? Alex
Rex Dieter 29094f2
-#ifdef Q_OS_MAC
Rex Dieter 29094f2
+#if defined(Q_OS_DARWIN) || defined(Q_OS_MAC)
Rex Dieter 29094f2
     mocIncludes << "-F/Library/Frameworks";
Rex Dieter 29094f2
 #endif
Rex Dieter 29094f2
 
Rex Dieter 29094f2
@@ -284,9 +288,17 @@ bool AutoMoc::run()
Rex Dieter 29094f2
     QRegExp mocIncludeRegExp(QLatin1String("[\n]\\s*#\\s*include\\s+[\"<]((?:[^ \">]+/)?moc_[^ \">/]+\\.cpp|[^ \">]+\\.moc)[\">]"));
Rex Dieter 29094f2
     QRegExp qObjectRegExp(QLatin1String("[\n]\\s*Q_OBJECT\\b"));
Rex Dieter 29094f2
     QStringList headerExtensions;
Rex Dieter 29094f2
-#if defined(Q_OS_WIN) || defined(Q_OS_MAC)
Rex Dieter 29094f2
+#if defined(Q_OS_WIN)
Rex Dieter 29094f2
     // not case sensitive
Rex Dieter 29094f2
     headerExtensions << ".h" << ".hpp" << ".hxx";
Rex Dieter 29094f2
+#elif defined(Q_OS_DARWIN) || defined(Q_OS_MAC)
Rex Dieter 29094f2
+    headerExtensions << ".h" << ".hpp" << ".hxx";
Rex Dieter 29094f2
+
Rex Dieter 29094f2
+    // detect case-sensitive filesystem
Rex Dieter 29094f2
+    long caseSensitive = pathconf(srcdir.toLocal8Bit(), _PC_CASE_SENSITIVE);
Rex Dieter 29094f2
+    if (caseSensitive == 1) {
Rex Dieter 29094f2
+        headerExtensions << ".H";
Rex Dieter 29094f2
+    }
Rex Dieter 29094f2
 #else
Rex Dieter 29094f2
     headerExtensions << ".h" << ".hpp" << ".hxx" << ".H";
Rex Dieter 29094f2
 #endif
Rex Dieter 29094f2
-- 
Rex Dieter 29094f2
2.4.3
Rex Dieter 29094f2