[Cmake-commits] CMake branch, next, updated. v2.8.2-443-ga67db02

Alexander Neundorf neundorf at kde.org
Sun Aug 15 09:18:02 EDT 2010


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  a67db02e535b374863fe6a8e8ab1691d75ba6c30 (commit)
       via  cac6edcad97593ad2e04fe05d5b9be29588af54d (commit)
       via  8102dc32a386165e650c373cec5ef0cd313352a0 (commit)
       via  b0d03c9953693137186dc17e20596752d1beb371 (commit)
      from  5b60a4b6c532de3aa2f354ee13d3b08f78b52c21 (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=a67db02e535b374863fe6a8e8ab1691d75ba6c30
commit a67db02e535b374863fe6a8e8ab1691d75ba6c30
Merge: 5b60a4b cac6edc
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Sun Aug 15 15:16:21 2010 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Sun Aug 15 15:16:21 2010 +0200

    Merge branch 'FixEclipseIncludePathParsingWithSpaces' into next


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cac6edcad97593ad2e04fe05d5b9be29588af54d
commit cac6edcad97593ad2e04fe05d5b9be29588af54d
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Sun Aug 15 15:15:12 2010 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Sun Aug 15 15:15:12 2010 +0200

    Fix EclipseCDT parsing of builtin macros with spaces (#10868)
    
    Patch from dnewmarch
    
    Alex

diff --git a/Modules/CMakeFindEclipseCDT4.cmake b/Modules/CMakeFindEclipseCDT4.cmake
index a0b6caf..9cb7bed 100644
--- a/Modules/CMakeFindEclipseCDT4.cmake
+++ b/Modules/CMakeFindEclipseCDT4.cmake
@@ -32,6 +32,7 @@ MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines
                   OUTPUT_VARIABLE _gccStdout )
   FILE(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy")
 
+  # First find the system include dirs:
   IF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
 
     # split the output into lines and then remove leading and trailing spaces from each of them:
@@ -43,18 +44,26 @@ MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines
 
   ENDIF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
 
-  IF( "${_gccStdout}" MATCHES "built-in>\"\n(.+)# 1 +\"dummy\"" )
-    SET(_builtinDefines ${CMAKE_MATCH_1})
-    # Remove the '# 1 "<command-line>"' lines
-    STRING(REGEX REPLACE "# 1[^\n]+\n" "" _filteredOutput "${_builtinDefines}")
-    # Remove the "#define " parts from the output:
-    STRING(REGEX REPLACE "#define " "" _defineRemoved "${_filteredOutput}")
-    # Replace the line breaks with spaces, so we can use separate arguments afterwards
-    STRING(REGEX REPLACE "\n" " " _defineRemoved "${_defineRemoved}")
-    # Remove space at the end, this would produce empty list items
-    STRING(REGEX REPLACE " +$" "" ${_resultDefines} "${_defineRemoved}")
-    SEPARATE_ARGUMENTS(${_resultDefines})
-  ENDIF( "${_gccStdout}" MATCHES "built-in>\"\n(.+)# 1 +\"dummy\"" )
+
+  # now find the builtin macros:
+  STRING(REGEX MATCHALL "#define[^\n]+\n" _defineLines "${_gccStdout}")
+
+  FOREACH(nextLine ${_defineLines})
+    STRING(REGEX REPLACE "#define " "" _defineRemoved "${nextLine}")
+# not sure why this longer regexp was in the patch, the shorter one in the line below seems to work just fine:
+#   STRING(REGEX MATCH "[A-Za-z_][A-Za-z0-9_]*|[A-Za-z_][A-Za-z0-9_]*\\([A-Za-z0-9_, ]*\\)" _name "${_defineRemoved}")
+    STRING(REGEX MATCH "[A-Za-z_][A-Za-z0-9_]*" _name "${_defineRemoved}")
+    LIST(APPEND ${_resultDefines} "${_name}")
+
+    STRING(REPLACE ${_name} "" _nameRemoved "${_defineRemoved}")
+    STRING(STRIP "${_nameRemoved}" _value)
+    IF(_value)
+      LIST(APPEND ${_resultDefines} "${_value}")
+    ELSE()
+      LIST(APPEND ${_resultDefines} " ")
+    ENDIF()
+  ENDFOREACH(nextLine)
+
 ENDMACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang)
 
 # Save the current LC_ALL, LC_MESSAGES, and LANG environment variables and set them

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8102dc32a386165e650c373cec5ef0cd313352a0
commit 8102dc32a386165e650c373cec5ef0cd313352a0
Author:     Alex Neundorf <neundorf at kde.org>
AuthorDate: Sun Aug 15 14:59:16 2010 +0200
Commit:     Alex Neundorf <neundorf at kde.org>
CommitDate: Sun Aug 15 14:59:16 2010 +0200

    Fix EclipseCDT include path parsing with spaces (#10868)
    
    Alex

diff --git a/Modules/CMakeFindEclipseCDT4.cmake b/Modules/CMakeFindEclipseCDT4.cmake
index f4c148f..a0b6caf 100644
--- a/Modules/CMakeFindEclipseCDT4.cmake
+++ b/Modules/CMakeFindEclipseCDT4.cmake
@@ -22,8 +22,8 @@ FIND_PROGRAM(CMAKE_ECLIPSE_EXECUTABLE NAMES eclipse DOC "The Eclipse executable"
 # so that Eclipse ca find the headers at runtime and parsing etc. works better
 # This is done here by actually running gcc with the options so it prints its
 # system include directories, which are parsed then and stored in the cache.
-MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _result _resultDefines)
-  SET(${_result})
+MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines)
+  SET(${_resultIncludeDirs})
   SET(_gccOutput)
   FILE(WRITE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy" "\n" )
   EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -v -E -x ${_lang} -dD dummy
@@ -33,11 +33,16 @@ MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _result _resultDefines)
   FILE(REMOVE "${CMAKE_BINARY_DIR}/CMakeFiles/dummy")
 
   IF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
-    SET(${_result} ${CMAKE_MATCH_1})
-    STRING(REPLACE "\n" " " ${_result} "${${_result}}")
-    SEPARATE_ARGUMENTS(${_result})
+
+    # split the output into lines and then remove leading and trailing spaces from each of them:
+    STRING(REGEX MATCHALL "[^\n]+\n" _includeLines "${CMAKE_MATCH_1}")
+    FOREACH(nextLine ${_includeLines})
+      STRING(STRIP "${nextLine}" _includePath)
+      LIST(APPEND ${_resultIncludeDirs} "${_includePath}")
+    ENDFOREACH(nextLine)
+
   ENDIF( "${_gccOutput}" MATCHES "> search starts here[^\n]+\n *(.+) *\n *End of (search) list" )
-  
+
   IF( "${_gccStdout}" MATCHES "built-in>\"\n(.+)# 1 +\"dummy\"" )
     SET(_builtinDefines ${CMAKE_MATCH_1})
     # Remove the '# 1 "<command-line>"' lines

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

Summary of changes:
 Modules/CMakeFindEclipseCDT4.cmake |   50 +++++++++++++++++++++++-------------
 Source/kwsys/kwsysDateStamp.cmake  |    2 +-
 2 files changed, 33 insertions(+), 19 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list