From e6b0f452ee1d2cbe26f9977c94470c223c13ab05 Mon Sep 17 00:00:00 2001
From: Alex Neundorf <neundorf@kde.org>
Date: Wed, 1 Jan 2014 17:52:57 +0100
Subject: Eclipse: use MachO64 parser starting with Helios (#14380)

With this patch, cmake now puts the MachO64 bit
binary file parser into the config file if the detected
Eclipse is at least Helios (7.0), otherwise with the old
parser executables will not be recognized by Eclipse.

Alex
---
 Source/cmExtraEclipseCDT4Generator.cxx | 6 +++++-
 Source/cmExtraEclipseCDT4Generator.h   | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx
index 755b445..c93187e 100644
--- a/Source/cmExtraEclipseCDT4Generator.cxx
+++ b/Source/cmExtraEclipseCDT4Generator.cxx
@@ -40,6 +40,7 @@ cmExtraEclipseCDT4Generator
   this->SupportsVirtualFolders = true;
   this->GenerateLinkedResources = true;
   this->SupportsGmakeErrorParser = true;
+  this->SupportsMachO64Parser = true;
 }
 
 //----------------------------------------------------------------------------
@@ -93,6 +94,7 @@ void cmExtraEclipseCDT4Generator::Generate()
       if (version < 3006) // 3.6 is Helios
         {
         this->SupportsVirtualFolders = false;
+        this->SupportsMachO64Parser = false;
         }
       if (version < 3007) // 3.7 is Indigo
         {
@@ -754,7 +756,9 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
       }
     else if (systemName == "Darwin")
       {
-      fout << "<extension id=\"org.eclipse.cdt.core.MachO\""
+      fout << "<extension id=\"" <<
+           (this->SupportsMachO64Parser ? "org.eclipse.cdt.core.MachO64"
+                                        : "org.eclipse.cdt.core.MachO") << "\""
               " point=\"org.eclipse.cdt.core.BinaryParser\">\n"
               "<attribute key=\"c++filt\" value=\"c++filt\"/>\n"
               "</extension>\n"
diff --git a/Source/cmExtraEclipseCDT4Generator.h b/Source/cmExtraEclipseCDT4Generator.h
index 9c89f85..d88b247 100644
--- a/Source/cmExtraEclipseCDT4Generator.h
+++ b/Source/cmExtraEclipseCDT4Generator.h
@@ -115,6 +115,7 @@ private:
   bool GenerateLinkedResources;
   bool SupportsVirtualFolders;
   bool SupportsGmakeErrorParser;
+  bool SupportsMachO64Parser;
 
 };
 
-- 
cgit v0.12