From bd57bc53127e9bd412dece59025c8fc8a6432a18 Mon Sep 17 00:00:00 2001
From: Alex Neundorf <neundorf@kde.org>
Date: Wed, 26 Jan 2011 20:51:25 +0100
Subject: Strip trailing whitespace.

Alex
---
 Modules/CMakeDetermineCCompiler.cmake   | 28 ++++++++++++++--------------
 Modules/CMakeDetermineCXXCompiler.cmake | 20 ++++++++++----------
 2 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/Modules/CMakeDetermineCCompiler.cmake b/Modules/CMakeDetermineCCompiler.cmake
index 639b426..c8afff8 100644
--- a/Modules/CMakeDetermineCCompiler.cmake
+++ b/Modules/CMakeDetermineCCompiler.cmake
@@ -15,14 +15,14 @@
 # determine the compiler to use for C programs
 # NOTE, a generator may set CMAKE_C_COMPILER before
 # loading this file to force a compiler.
-# use environment variable CC first if defined by user, next use 
+# use environment variable CC first if defined by user, next use
 # the cmake variable CMAKE_GENERATOR_CC which can be defined by a generator
 # as a default compiler
-# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used 
+# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
 # as prefix for the tools (e.g. arm-elf-gcc, arm-elf-ar etc.). This works
 # currently with the GNU crosscompilers.
 #
-# Sets the following variables: 
+# Sets the following variables:
 #   CMAKE_C_COMPILER
 #   CMAKE_AR
 #   CMAKE_RANLIB
@@ -41,12 +41,12 @@ IF(NOT CMAKE_C_COMPILER)
       SET(CMAKE_C_COMPILER_ARG1 "${CMAKE_C_FLAGS_ENV_INIT}" CACHE STRING "First argument to C compiler")
     ENDIF(CMAKE_C_FLAGS_ENV_INIT)
     IF(NOT EXISTS ${CMAKE_C_COMPILER_INIT})
-      MESSAGE(FATAL_ERROR "Could not find compiler set in environment variable CC:\n$ENV{CC}.") 
+      MESSAGE(FATAL_ERROR "Could not find compiler set in environment variable CC:\n$ENV{CC}.")
     ENDIF(NOT EXISTS ${CMAKE_C_COMPILER_INIT})
   ENDIF($ENV{CC} MATCHES ".+")
 
   # next try prefer the compiler specified by the generator
-  IF(CMAKE_GENERATOR_CC) 
+  IF(CMAKE_GENERATOR_CC)
     IF(NOT CMAKE_C_COMPILER_INIT)
       SET(CMAKE_C_COMPILER_INIT ${CMAKE_GENERATOR_CC})
     ENDIF(NOT CMAKE_C_COMPILER_INIT)
@@ -64,7 +64,7 @@ IF(NOT CMAKE_C_COMPILER)
     FIND_PROGRAM(CMAKE_C_COMPILER NAMES ${CMAKE_C_COMPILER_LIST} PATHS ${_CMAKE_USER_CXX_COMPILER_PATH} DOC "C compiler" NO_DEFAULT_PATH)
   ENDIF (_CMAKE_USER_CXX_COMPILER_PATH)
   FIND_PROGRAM(CMAKE_C_COMPILER NAMES ${CMAKE_C_COMPILER_LIST} DOC "C compiler")
-  
+
   IF(CMAKE_C_COMPILER_INIT AND NOT CMAKE_C_COMPILER)
     SET(CMAKE_C_COMPILER "${CMAKE_C_COMPILER_INIT}" CACHE FILEPATH "C compiler" FORCE)
   ENDIF(CMAKE_C_COMPILER_INIT AND NOT CMAKE_C_COMPILER)
@@ -72,7 +72,7 @@ ELSE(NOT CMAKE_C_COMPILER)
 
   # we only get here if CMAKE_C_COMPILER was specified using -D or a pre-made CMakeCache.txt
   # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
-  # if CMAKE_C_COMPILER is a list of length 2, use the first item as 
+  # if CMAKE_C_COMPILER is a list of length 2, use the first item as
   # CMAKE_C_COMPILER and the 2nd one as CMAKE_C_COMPILER_ARG1
 
   LIST(LENGTH CMAKE_C_COMPILER _CMAKE_C_COMPILER_LIST_LENGTH)
@@ -81,9 +81,9 @@ ELSE(NOT CMAKE_C_COMPILER)
     LIST(GET CMAKE_C_COMPILER 0 CMAKE_C_COMPILER)
   ENDIF("${_CMAKE_C_COMPILER_LIST_LENGTH}" EQUAL 2)
 
-  # if a compiler was specified by the user but without path, 
+  # if a compiler was specified by the user but without path,
   # now try to find it with the full path
-  # if it is found, force it into the cache, 
+  # if it is found, force it into the cache,
   # if not, don't overwrite the setting (which was given by the user) with "NOTFOUND"
   # if the C compiler already had a path, reuse it for searching the CXX compiler
   GET_FILENAME_COMPONENT(_CMAKE_USER_C_COMPILER_PATH "${CMAKE_C_COMPILER}" PATH)
@@ -143,13 +143,13 @@ IF(NOT CMAKE_C_COMPILER_ID_RUN)
   ENDIF("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
 ENDIF(NOT CMAKE_C_COMPILER_ID_RUN)
 
-# If we have a gcc cross compiler, they have usually some prefix, like 
+# If we have a gcc cross compiler, they have usually some prefix, like
 # e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc .
 # The other tools of the toolchain usually have the same prefix
 # NAME_WE cannot be used since then this test will fail for names lile
-# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be 
+# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
 # "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
-IF (CMAKE_CROSSCOMPILING  
+IF (CMAKE_CROSSCOMPILING
     AND "${CMAKE_C_COMPILER_ID}" MATCHES "GNU"
     AND NOT _CMAKE_TOOLCHAIN_PREFIX)
   GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
@@ -163,7 +163,7 @@ IF (CMAKE_CROSSCOMPILING
     SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
   ENDIF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
 
-ENDIF (CMAKE_CROSSCOMPILING  
+ENDIF (CMAKE_CROSSCOMPILING
     AND "${CMAKE_C_COMPILER_ID}" MATCHES "GNU"
     AND NOT _CMAKE_TOOLCHAIN_PREFIX)
 
@@ -179,5 +179,5 @@ ENDIF(MSVC_C_ARCHITECTURE_ID)
 CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
   "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCCompiler.cmake"
   @ONLY IMMEDIATE # IMMEDIATE must be here for compatibility mode <= 2.0
-  ) 
+  )
 SET(CMAKE_C_COMPILER_ENV_VAR "CC")
diff --git a/Modules/CMakeDetermineCXXCompiler.cmake b/Modules/CMakeDetermineCXXCompiler.cmake
index 555d20e..dbdaeef 100644
--- a/Modules/CMakeDetermineCXXCompiler.cmake
+++ b/Modules/CMakeDetermineCXXCompiler.cmake
@@ -15,10 +15,10 @@
 # determine the compiler to use for C++ programs
 # NOTE, a generator may set CMAKE_CXX_COMPILER before
 # loading this file to force a compiler.
-# use environment variable CXX first if defined by user, next use 
+# use environment variable CXX first if defined by user, next use
 # the cmake variable CMAKE_GENERATOR_CXX which can be defined by a generator
 # as a default compiler
-# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used 
+# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
 # as prefix for the tools (e.g. arm-elf-g++, arm-elf-ar etc.)
 #
 # Sets the following variables:
@@ -63,7 +63,7 @@ IF(NOT CMAKE_CXX_COMPILER)
     FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES ${CMAKE_CXX_COMPILER_LIST} PATHS ${_CMAKE_USER_C_COMPILER_PATH} DOC "C++ compiler" NO_DEFAULT_PATH)
   ENDIF (_CMAKE_USER_C_COMPILER_PATH)
   FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES ${CMAKE_CXX_COMPILER_LIST} DOC "C++ compiler")
-  
+
   IF(CMAKE_CXX_COMPILER_INIT AND NOT CMAKE_CXX_COMPILER)
     SET(CMAKE_CXX_COMPILER "${CMAKE_CXX_COMPILER_INIT}" CACHE FILEPATH "C++ compiler" FORCE)
   ENDIF(CMAKE_CXX_COMPILER_INIT AND NOT CMAKE_CXX_COMPILER)
@@ -72,7 +72,7 @@ ELSE(NOT CMAKE_CXX_COMPILER)
 # we only get here if CMAKE_CXX_COMPILER was specified using -D or a pre-made CMakeCache.txt
 # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
 #
-# if CMAKE_CXX_COMPILER is a list of length 2, use the first item as 
+# if CMAKE_CXX_COMPILER is a list of length 2, use the first item as
 # CMAKE_CXX_COMPILER and the 2nd one as CMAKE_CXX_COMPILER_ARG1
 
   LIST(LENGTH CMAKE_CXX_COMPILER _CMAKE_CXX_COMPILER_LIST_LENGTH)
@@ -81,9 +81,9 @@ ELSE(NOT CMAKE_CXX_COMPILER)
     LIST(GET CMAKE_CXX_COMPILER 0 CMAKE_CXX_COMPILER)
   ENDIF("${_CMAKE_CXX_COMPILER_LIST_LENGTH}" EQUAL 2)
 
-# if a compiler was specified by the user but without path, 
+# if a compiler was specified by the user but without path,
 # now try to find it with the full path
-# if it is found, force it into the cache, 
+# if it is found, force it into the cache,
 # if not, don't overwrite the setting (which was given by the user) with "NOTFOUND"
 # if the CXX compiler already had a path, reuse it for searching the C compiler
   GET_FILENAME_COMPONENT(_CMAKE_USER_CXX_COMPILER_PATH "${CMAKE_CXX_COMPILER}" PATH)
@@ -151,13 +151,13 @@ IF(NOT CMAKE_CXX_COMPILER_ID_RUN)
   ENDIF("${CMAKE_CXX_PLATFORM_ID}" MATCHES "MinGW")
 ENDIF(NOT CMAKE_CXX_COMPILER_ID_RUN)
 
-# if we have a g++ cross compiler, they have usually some prefix, like 
+# if we have a g++ cross compiler, they have usually some prefix, like
 # e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++
 # the other tools of the toolchain usually have the same prefix
 # NAME_WE cannot be used since then this test will fail for names lile
-# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be 
+# "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
 # "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
-IF (CMAKE_CROSSCOMPILING  
+IF (CMAKE_CROSSCOMPILING
     AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"
     AND NOT _CMAKE_TOOLCHAIN_PREFIX)
   GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
@@ -171,7 +171,7 @@ IF (CMAKE_CROSSCOMPILING
     SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
   ENDIF ("${_CMAKE_TOOLCHAIN_PREFIX}" MATCHES "(.+-)?llvm-$")
 
-ENDIF (CMAKE_CROSSCOMPILING  
+ENDIF (CMAKE_CROSSCOMPILING
     AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"
     AND NOT _CMAKE_TOOLCHAIN_PREFIX)
 
-- 
cgit v0.12


From 5883c5191ea350119abb4e1996bc4e68e0218692 Mon Sep 17 00:00:00 2001
From: Alex Neundorf <neundorf@kde.org>
Date: Wed, 26 Jan 2011 20:52:34 +0100
Subject: Fix parsing of compiler name with a version number

This fixes #11679, the toolchain prefix was not correctly detected
for arm-eabi-gcc-4.5.2

Alex
---
 Modules/CMakeDetermineASMCompiler.cmake | 7 ++++---
 Modules/CMakeDetermineCCompiler.cmake   | 7 ++++---
 Modules/CMakeDetermineCXXCompiler.cmake | 9 +++++----
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/Modules/CMakeDetermineASMCompiler.cmake b/Modules/CMakeDetermineASMCompiler.cmake
index 7a443e0..d6350bf 100644
--- a/Modules/CMakeDetermineASMCompiler.cmake
+++ b/Modules/CMakeDetermineASMCompiler.cmake
@@ -81,16 +81,17 @@ ENDIF()
 
 
 # If we have a gas/as cross compiler, they have usually some prefix, like
-# e.g. powerpc-linux-gas, arm-elf-gas or i586-mingw32msvc-gas .
+# e.g. powerpc-linux-gas, arm-elf-gas or i586-mingw32msvc-gas , optionally
+# with a 3-component version number at the end
 # The other tools of the toolchain usually have the same prefix
 # NAME_WE cannot be used since then this test will fail for names lile
 # "arm-unknown-nto-qnx6.3.0-gas.exe", where BASENAME would be
 # "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
 IF (NOT _CMAKE_TOOLCHAIN_PREFIX)
   GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" NAME)
-  IF (COMPILER_BASENAME MATCHES "^(.+-)g?as(\\.exe)?$")
+  IF (COMPILER_BASENAME MATCHES "^(.+-)g?as(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
     STRING(REGEX REPLACE "^(.+-)g?as(\\.exe)?$"  "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}")
-  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?as(\\.exe)?$")
+  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?as(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
 ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX)
 
 INCLUDE(CMakeFindBinUtils)
diff --git a/Modules/CMakeDetermineCCompiler.cmake b/Modules/CMakeDetermineCCompiler.cmake
index c8afff8..06664c1 100644
--- a/Modules/CMakeDetermineCCompiler.cmake
+++ b/Modules/CMakeDetermineCCompiler.cmake
@@ -144,7 +144,8 @@ IF(NOT CMAKE_C_COMPILER_ID_RUN)
 ENDIF(NOT CMAKE_C_COMPILER_ID_RUN)
 
 # If we have a gcc cross compiler, they have usually some prefix, like
-# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc .
+# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc, optionally
+# with a 3-component version number at the end (e.g. arm-eabi-gcc-4.5.2).
 # The other tools of the toolchain usually have the same prefix
 # NAME_WE cannot be used since then this test will fail for names lile
 # "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
@@ -153,9 +154,9 @@ IF (CMAKE_CROSSCOMPILING
     AND "${CMAKE_C_COMPILER_ID}" MATCHES "GNU"
     AND NOT _CMAKE_TOOLCHAIN_PREFIX)
   GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
-  IF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(\\.exe)?$")
+  IF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
     SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
-  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(\\.exe)?$")
+  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
 
   # if "llvm-" is part of the prefix, remove it, since llvm doesn't have its own binutils
   # but uses the regular ar, objcopy, etc. (instead of llvm-objcopy etc.)
diff --git a/Modules/CMakeDetermineCXXCompiler.cmake b/Modules/CMakeDetermineCXXCompiler.cmake
index dbdaeef..e77672d 100644
--- a/Modules/CMakeDetermineCXXCompiler.cmake
+++ b/Modules/CMakeDetermineCXXCompiler.cmake
@@ -152,8 +152,9 @@ IF(NOT CMAKE_CXX_COMPILER_ID_RUN)
 ENDIF(NOT CMAKE_CXX_COMPILER_ID_RUN)
 
 # if we have a g++ cross compiler, they have usually some prefix, like
-# e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++
-# the other tools of the toolchain usually have the same prefix
+# e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++ , optionally
+# with a 3-component version number at the end (e.g. arm-eabi-gcc-4.5.2).
+# The other tools of the toolchain usually have the same prefix
 # NAME_WE cannot be used since then this test will fail for names lile
 # "arm-unknown-nto-qnx6.3.0-gcc.exe", where BASENAME would be
 # "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
@@ -161,9 +162,9 @@ IF (CMAKE_CROSSCOMPILING
     AND "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU"
     AND NOT _CMAKE_TOOLCHAIN_PREFIX)
   GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
-  IF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(\\.exe)?$")
+  IF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
     SET(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
-  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(\\.exe)?$")
+  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
 
   # if "llvm-" is part of the prefix, remove it, since llvm doesn't have its own binutils
   # but uses the regular ar, objcopy, etc. (instead of llvm-objcopy etc.)
-- 
cgit v0.12