[Cmake-commits] CMake branch, next, updated. v2.8.6-1587-g5bc7198

Alexander Neundorf neundorf at kde.org
Sun Oct 16 04:56:20 EDT 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  5bc719845ecab090382e04e342fc7133e09845dd (commit)
       via  dcd245913c41249637010f6b804e4ee4207ccc8f (commit)
       via  b4b2fc33f936631b826456bfa098dcd2702e914d (commit)
       via  5b200e3bed8e450027ddad42a155d670f247e58c (commit)
       via  4974ec90a4f4d688b8beac603f7da9ed690d4827 (commit)
       via  eb11e0b9ac0933a0c1c7bbba06d08e4f035bd59f (commit)
       via  6eb2d79d721fdbf8e5a6a54e0b37270dfed76a04 (commit)
      from  b32ebc8d65e76d77a354e0666fe6261082789dbc (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5bc719845ecab090382e04e342fc7133e09845dd
commit 5bc719845ecab090382e04e342fc7133e09845dd
Merge: b32ebc8 dcd2459
Author:     Alexander Neundorf <neundorf at kde.org>
AuthorDate: Sun Oct 16 04:56:18 2011 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sun Oct 16 04:56:18 2011 -0400

    Merge topic 'DetectEclipseVersion' into next
    
    dcd2459 Eclipse: better message when Eclipse version could not be determined
    b4b2fc3 Eclipse: don't create VirtualFolders if not supported
    5b200e3 Detect whether the current Eclipse version supports VirtualFolders
    4974ec9 Eclipse generator: detect Eclipse version
    eb11e0b KWSys Nightly Date Stamp
    6eb2d79 KWSys Nightly Date Stamp


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dcd245913c41249637010f6b804e4ee4207ccc8f
commit dcd245913c41249637010f6b804e4ee4207ccc8f
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Sat Oct 15 21:04:23 2011 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Sat Oct 15 21:04:23 2011 +0200

    Eclipse: better message when Eclipse version could not be determined
    
    Alex

diff --git a/Modules/CMakeFindEclipseCDT4.cmake b/Modules/CMakeFindEclipseCDT4.cmake
index 02ce44a..cf0984e 100644
--- a/Modules/CMakeFindEclipseCDT4.cmake
+++ b/Modules/CMakeFindEclipseCDT4.cmake
@@ -27,13 +27,6 @@ FUNCTION(_FIND_ECLIPSE_VERSION)
     ENDIF()
   ENDIF()
 
-  IF(_ECLIPSE_VERSION)
-    MESSAGE(STATUS "Found Eclipse version ${_ECLIPSE_VERSION}")
-  ELSE()
-    SET(_ECLIPSE_VERSION "3.6" )
-    MESSAGE(STATUS "Could not determine Eclipse version, assuming ${_ECLIPSE_VERSION}")
-  ENDIF()
-
   # Set up a map with the names of the Eclipse releases:
   SET(_ECLIPSE_VERSION_NAME_    "Unknown" )
   SET(_ECLIPSE_VERSION_NAME_3.2 "Callisto" )
@@ -43,6 +36,13 @@ FUNCTION(_FIND_ECLIPSE_VERSION)
   SET(_ECLIPSE_VERSION_NAME_3.6 "Helios" )
   SET(_ECLIPSE_VERSION_NAME_3.7 "Indigo" )
 
+  IF(_ECLIPSE_VERSION)
+    MESSAGE(STATUS "Found Eclipse version ${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}})")
+  ELSE()
+    SET(_ECLIPSE_VERSION "3.6" )
+    MESSAGE(STATUS "Could not determine Eclipse version, assuming at least ${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}}). Adjust CMAKE_ECLIPSE_VERSION if this is wrong.")
+  ENDIF()
+
   SET(CMAKE_ECLIPSE_VERSION "${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}})" CACHE STRING "The version of Eclipse. If Eclipse has not been found, 3.6 (Helios) is assumed.")
   SET_PROPERTY(CACHE CMAKE_ECLIPSE_VERSION PROPERTY STRINGS "3.2 (${_ECLIPSE_VERSION_NAME_3.2})"
                                                             "3.3 (${_ECLIPSE_VERSION_NAME_3.3})"

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b4b2fc33f936631b826456bfa098dcd2702e914d
commit b4b2fc33f936631b826456bfa098dcd2702e914d
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Sat Oct 15 21:03:14 2011 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Sat Oct 15 21:03:14 2011 +0200

    Eclipse: don't create VirtualFolders if not supported
    
    Eclipse versions before 3.6 (Helios) did not support
    VirtualFolders yet (#12479), so only create them if Eclipse
    is new enough.
    
    Alex

diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx
index 21b1b61..f303f16 100644
--- a/Source/cmExtraEclipseCDT4Generator.cxx
+++ b/Source/cmExtraEclipseCDT4Generator.cxx
@@ -420,29 +420,32 @@ void cmExtraEclipseCDT4Generator::CreateProjectFile()
 
     }
 
-  // for each sub project create a linked resource to the source dir
-  // - only if it is an out-of-source build
-  this->AppendLinkedResource(fout, "[Subprojects]",
-                             "virtual:/virtual", true);
-
-  for (std::map<cmStdString, std::vector<cmLocalGenerator*> >::const_iterator
-       it = this->GlobalGenerator->GetProjectMap().begin();
-       it != this->GlobalGenerator->GetProjectMap().end();
-       ++it)
+  if (this->SupportsVirtualFolders)
     {
-    std::string linkSourceDirectory = this->GetEclipsePath(
-                            it->second[0]->GetMakefile()->GetStartDirectory());
-    // a linked resource must not point to a parent directory of .project or
-    // .project itself
-    if ((this->HomeOutputDirectory != linkSourceDirectory) &&
-        !cmSystemTools::IsSubDirectory(this->HomeOutputDirectory.c_str(),
-                                       linkSourceDirectory.c_str()))
+    // for each sub project create a linked resource to the source dir
+    // - only if it is an out-of-source build
+    this->AppendLinkedResource(fout, "[Subprojects]",
+                               "virtual:/virtual", true);
+
+    for (std::map<cmStdString, std::vector<cmLocalGenerator*> >::const_iterator
+         it = this->GlobalGenerator->GetProjectMap().begin();
+         it != this->GlobalGenerator->GetProjectMap().end();
+         ++it)
       {
-      std::string linkName = "[Subprojects]/";
-      linkName += it->first;
-      this->AppendLinkedResource(fout, linkName,
-                                 this->GetEclipsePath(linkSourceDirectory));
-      this->SrcLinkedResources.push_back(it->first);
+      std::string linkSourceDirectory = this->GetEclipsePath(
+                            it->second[0]->GetMakefile()->GetStartDirectory());
+      // a linked resource must not point to a parent directory of .project or
+      // .project itself
+      if ((this->HomeOutputDirectory != linkSourceDirectory) &&
+          !cmSystemTools::IsSubDirectory(this->HomeOutputDirectory.c_str(),
+                                         linkSourceDirectory.c_str()))
+        {
+        std::string linkName = "[Subprojects]/";
+        linkName += it->first;
+        this->AppendLinkedResource(fout, linkName,
+                                   this->GetEclipsePath(linkSourceDirectory));
+        this->SrcLinkedResources.push_back(it->first);
+        }
       }
     }
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5b200e3bed8e450027ddad42a155d670f247e58c
commit 5b200e3bed8e450027ddad42a155d670f247e58c
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Sat Oct 15 19:40:21 2011 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Sat Oct 15 19:40:21 2011 +0200

    Detect whether the current Eclipse version supports VirtualFolders
    
    VirtualFolders are supported since 3.6 (Helios).
    Next patch will be to actually make use of the new flag
    SupportsVirtualFolders.
    
    Alex

diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx
index 7beffdc..21b1b61 100644
--- a/Source/cmExtraEclipseCDT4Generator.cxx
+++ b/Source/cmExtraEclipseCDT4Generator.cxx
@@ -34,6 +34,8 @@ cmExtraEclipseCDT4Generator
 //  this->SupportedGlobalGenerators.push_back("MSYS Makefiles");
 #endif
   this->SupportedGlobalGenerators.push_back("Unix Makefiles");
+
+  this->SupportsVirtualFolders = true;
 }
 
 //----------------------------------------------------------------------------
@@ -57,6 +59,24 @@ void cmExtraEclipseCDT4Generator::Generate()
   const cmMakefile* mf
     = this->GlobalGenerator->GetLocalGenerators()[0]->GetMakefile();
 
+  std::string eclipseVersion = mf->GetSafeDefinition("CMAKE_ECLIPSE_VERSION");
+  cmsys::RegularExpression regex(".*([0-9]+\\.[0-9]+).*");
+  if (regex.find(eclipseVersion.c_str()))
+    {
+    unsigned int majorVersion = 0;
+    unsigned int minorVersion = 0;
+    int res=sscanf(regex.match(1).c_str(), "%u.%u", &majorVersion,
+                                                    &minorVersion);
+    if (res == 2)
+      {
+      int version = majorVersion * 1000 + minorVersion;
+      if (version < 3006) // 3.6 is Helios
+        {
+        this->SupportsVirtualFolders = false;
+        }
+      }
+    }
+
   // TODO: Decide if these are local or member variables
   this->HomeDirectory       = mf->GetHomeDirectory();
   this->HomeOutputDirectory = mf->GetHomeOutputDirectory();
diff --git a/Source/cmExtraEclipseCDT4Generator.h b/Source/cmExtraEclipseCDT4Generator.h
index a683731..b866619 100644
--- a/Source/cmExtraEclipseCDT4Generator.h
+++ b/Source/cmExtraEclipseCDT4Generator.h
@@ -107,6 +107,7 @@ private:
   std::string HomeOutputDirectory;
   bool IsOutOfSourceBuild;
   bool GenerateSourceProject;
+  bool SupportsVirtualFolders;
 
 };
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4974ec90a4f4d688b8beac603f7da9ed690d4827
commit 4974ec90a4f4d688b8beac603f7da9ed690d4827
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Sat Oct 15 18:43:27 2011 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Sat Oct 15 18:43:27 2011 +0200

    Eclipse generator: detect Eclipse version
    
    Try to detect the eclipse version and put it in the cache.
    
    Alex

diff --git a/Modules/CMakeFindEclipseCDT4.cmake b/Modules/CMakeFindEclipseCDT4.cmake
index 2f71cb9..02ce44a 100644
--- a/Modules/CMakeFindEclipseCDT4.cmake
+++ b/Modules/CMakeFindEclipseCDT4.cmake
@@ -17,6 +17,43 @@
 
 FIND_PROGRAM(CMAKE_ECLIPSE_EXECUTABLE NAMES eclipse DOC "The Eclipse executable")
 
+FUNCTION(_FIND_ECLIPSE_VERSION)
+  # This code is in a function so the variables used here have only local scope
+  IF(CMAKE_ECLIPSE_EXECUTABLE)
+    GET_FILENAME_COMPONENT(_ECLIPSE_DIR "${CMAKE_ECLIPSE_EXECUTABLE}" PATH)
+    FILE(GLOB _ECLIPSE_FEATURE_DIR "${_ECLIPSE_DIR}/features/org.eclipse.platform*")
+    IF("${_ECLIPSE_FEATURE_DIR}" MATCHES ".+org.eclipse.platform_([0-9]+\\.[0-9]+).+")
+      SET(_ECLIPSE_VERSION ${CMAKE_MATCH_1})
+    ENDIF()
+  ENDIF()
+
+  IF(_ECLIPSE_VERSION)
+    MESSAGE(STATUS "Found Eclipse version ${_ECLIPSE_VERSION}")
+  ELSE()
+    SET(_ECLIPSE_VERSION "3.6" )
+    MESSAGE(STATUS "Could not determine Eclipse version, assuming ${_ECLIPSE_VERSION}")
+  ENDIF()
+
+  # Set up a map with the names of the Eclipse releases:
+  SET(_ECLIPSE_VERSION_NAME_    "Unknown" )
+  SET(_ECLIPSE_VERSION_NAME_3.2 "Callisto" )
+  SET(_ECLIPSE_VERSION_NAME_3.3 "Europa" )
+  SET(_ECLIPSE_VERSION_NAME_3.4 "Ganymede" )
+  SET(_ECLIPSE_VERSION_NAME_3.5 "Galileo" )
+  SET(_ECLIPSE_VERSION_NAME_3.6 "Helios" )
+  SET(_ECLIPSE_VERSION_NAME_3.7 "Indigo" )
+
+  SET(CMAKE_ECLIPSE_VERSION "${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}})" CACHE STRING "The version of Eclipse. If Eclipse has not been found, 3.6 (Helios) is assumed.")
+  SET_PROPERTY(CACHE CMAKE_ECLIPSE_VERSION PROPERTY STRINGS "3.2 (${_ECLIPSE_VERSION_NAME_3.2})"
+                                                            "3.3 (${_ECLIPSE_VERSION_NAME_3.3})"
+                                                            "3.4 (${_ECLIPSE_VERSION_NAME_3.4})"
+                                                            "3.5 (${_ECLIPSE_VERSION_NAME_3.5})"
+                                                            "3.6 (${_ECLIPSE_VERSION_NAME_3.6})"
+                                                            "3.7 (${_ECLIPSE_VERSION_NAME_3.7})")
+ENDFUNCTION()
+
+_FIND_ECLIPSE_VERSION()
+
 # This variable is used by the Eclipse generator and appended to the make invocation commands.
 SET(CMAKE_ECLIPSE_MAKE_ARGUMENTS "" CACHE STRING "Additional command line arguments when Eclipse invokes make. Enter e.g. -j<some_number> to get parallel builds")
 

-----------------------------------------------------------------------

Summary of changes:
 Modules/CMakeFindEclipseCDT4.cmake     |   37 ++++++++++++++++++
 Source/cmExtraEclipseCDT4Generator.cxx |   65 +++++++++++++++++++++----------
 Source/cmExtraEclipseCDT4Generator.h   |    1 +
 Source/kwsys/kwsysDateStamp.cmake      |    2 +-
 4 files changed, 83 insertions(+), 22 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list