Index: CMakeDetermineCCompiler.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeDetermineCCompiler.cmake,v
retrieving revision 1.52
diff -b -u -p -r1.52 CMakeDetermineCCompiler.cmake
--- CMakeDetermineCCompiler.cmake	25 Feb 2008 14:23:14 -0000	1.52
+++ CMakeDetermineCCompiler.cmake	14 May 2008 22:07:24 -0000
@@ -88,17 +88,19 @@ IF (NOT _CMAKE_TOOLCHAIN_LOCATION)
   GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
 ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION)
 
-# 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
+# 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" instead of the correct "arm-unknown-nto-qnx6.3.0-"
 IF (NOT _CMAKE_TOOLCHAIN_PREFIX)
-  GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME_WE)
-  IF (COMPILER_BASENAME MATCHES "^(.+-)g?cc")
-    STRING(REGEX REPLACE "^(.+-)g?cc"  "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}")
-  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?cc")
+  GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
+  IF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(\\.exe)?$")
+    STRING(REGEX REPLACE "^(.+-)g?cc(\\.exe)?$"  "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}")
+  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?cc(\\.exe)?$")
 ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX)
 
-
 # Build a small source file to identify the compiler.
 IF(${CMAKE_GENERATOR} MATCHES "Visual Studio")
   SET(CMAKE_C_COMPILER_ID_RUN 1)
Index: CMakeDetermineCXXCompiler.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeDetermineCXXCompiler.cmake,v
retrieving revision 1.45
diff -b -u -p -r1.45 CMakeDetermineCXXCompiler.cmake
--- CMakeDetermineCXXCompiler.cmake	25 Feb 2008 14:23:14 -0000	1.45
+++ CMakeDetermineCXXCompiler.cmake	14 May 2008 22:07:24 -0000
@@ -91,11 +91,14 @@ ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION)
 # 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" instead of the correct "arm-unknown-nto-qnx6.3.0-"
 IF (NOT _CMAKE_TOOLCHAIN_PREFIX)
-  GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME_WE)
-  IF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+")
-    STRING(REGEX REPLACE "^(.+-)[gc]\\+\\+"  "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}")
-  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+")
+  GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
+  IF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(\\.exe)?$")
+    STRING(REGEX REPLACE "^(.+-)[gc]\\+\\+(\\.exe)?$"  "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}")
+  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(\\.exe)?$")
 ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX)
 
 # This block was used before the compiler was identified by building a
Index: CMakeDetermineASMCompiler.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CMakeDetermineASMCompiler.cmake,v
retrieving revision 1.2
diff -b -u -p -r1.2 CMakeDetermineASMCompiler.cmake
--- CMakeDetermineASMCompiler.cmake	21 Apr 2008 22:51:55 -0000	1.2
+++ CMakeDetermineASMCompiler.cmake	14 May 2008 22:07:24 -0000
@@ -43,16 +43,20 @@ IF (NOT _CMAKE_TOOLCHAIN_LOCATION)
   GET_FILENAME_COMPONENT(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" PATH)
 ENDIF (NOT _CMAKE_TOOLCHAIN_LOCATION)
 
-# 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
+# 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" 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_WE)
-  IF (COMPILER_BASENAME MATCHES "^(.+-)g?as")
-    STRING(REGEX REPLACE "^(.+-)g?as"  "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}")
-  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?as")
+  GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" NAME)
+  IF (COMPILER_BASENAME MATCHES "^(.+-)g?as(\\.exe)?$")
+    STRING(REGEX REPLACE "^(.+-)g?as(\\.exe)?$"  "\\1" _CMAKE_TOOLCHAIN_PREFIX "${COMPILER_BASENAME}")
+  ENDIF (COMPILER_BASENAME MATCHES "^(.+-)g?as(\\.exe)?$")
 ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX)
 
+
 INCLUDE(CMakeFindBinUtils)
 
 SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_ENV_VAR "ASM")
