diff options
author | Brad King <brad.king@kitware.com> | 2010-08-24 18:42:07 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2010-08-24 18:42:07 (GMT) |
commit | 612c0b68a02b7106fe80c456f4bae4ece3659ba9 (patch) | |
tree | 9fbb217cb48b7abf11f0101aef7c972b104568ac | |
parent | 888f61e6e392c21b7380b7363c221652bd2a486b (diff) | |
parent | 9fd4e1814b34da46a5a8b50c3492a68a1b5be3af (diff) | |
download | CMake-612c0b68a02b7106fe80c456f4bae4ece3659ba9.zip CMake-612c0b68a02b7106fe80c456f4bae4ece3659ba9.tar.gz CMake-612c0b68a02b7106fe80c456f4bae4ece3659ba9.tar.bz2 |
Merge topic 'FixEclipseIncludePathParsingWithSpaces'
9fd4e18 Fix parsing of builtin macros so Eclipse handles them properly (#10868)
-rw-r--r-- | Modules/CMakeFindEclipseCDT4.cmake | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/Modules/CMakeFindEclipseCDT4.cmake b/Modules/CMakeFindEclipseCDT4.cmake index 9cb7bed..836e4c9 100644 --- a/Modules/CMakeFindEclipseCDT4.cmake +++ b/Modules/CMakeFindEclipseCDT4.cmake @@ -47,16 +47,21 @@ MACRO(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines # now find the builtin macros: STRING(REGEX MATCHALL "#define[^\n]+\n" _defineLines "${_gccStdout}") +# A few example lines which the regexp below has to match properly: +# #define MAX(a,b) ((a) > (b) ? (a) : (b)) +# #define __fastcall __attribute__((__fastcall__)) +# #define FOO (23) +# #define __UINTMAX_TYPE__ long long unsigned int +# #define __UINTMAX_TYPE__ long long unsigned int +# #define __i386__ 1 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(REGEX MATCH "^#define +([A-Za-z_][A-Za-z0-9_]*)(\\([^\\)]+\\))? +(.+) *$" _dummy "${nextLine}") + SET(_name "${CMAKE_MATCH_1}${CMAKE_MATCH_2}") + STRING(STRIP "${CMAKE_MATCH_3}" _value) + #MESSAGE(STATUS "m1: -${CMAKE_MATCH_1}- m2: -${CMAKE_MATCH_2}- m3: -${CMAKE_MATCH_3}-") - STRING(REPLACE ${_name} "" _nameRemoved "${_defineRemoved}") - STRING(STRIP "${_nameRemoved}" _value) + LIST(APPEND ${_resultDefines} "${_name}") IF(_value) LIST(APPEND ${_resultDefines} "${_value}") ELSE() |