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