summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2008-05-15 12:07:43 -0400
committerAlexander Neundorf <neundorf@kde.org>2008-05-15 12:07:43 -0400
commit3e6decf31205ecfcbe837c0d0344f4597aa33369 (patch)
tree53f86f9b97adecfefd551b29e852eb1942fe8954
parent7327037508bebd45cda415e9061501fb3f0723bc (diff)
downloadcmake-3e6decf31205ecfcbe837c0d0344f4597aa33369.tar.gz
BUG: make the toolchain-prefix recognition work with prefixes which contain
dots (as in arm-unknown-nto-qnx6.3.0-gcc.exe), NAME_WE returns only up to the 6, instead of everything in front of the .exe Alex
-rw-r--r--Modules/CMakeDetermineASMCompiler.cmake17
-rw-r--r--Modules/CMakeDetermineCCompiler.cmake17
-rw-r--r--Modules/CMakeDetermineCXXCompiler.cmake11
3 files changed, 27 insertions, 18 deletions
diff --git a/Modules/CMakeDetermineASMCompiler.cmake b/Modules/CMakeDetermineASMCompiler.cmake
index 44bd234d8c..eac8c55cdd 100644
--- a/Modules/CMakeDetermineASMCompiler.cmake
+++ b/Modules/CMakeDetermineASMCompiler.cmake
@@ -43,14 +43,17 @@ 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)
diff --git a/Modules/CMakeDetermineCCompiler.cmake b/Modules/CMakeDetermineCCompiler.cmake
index ffe0703f01..ae68f1886e 100644
--- a/Modules/CMakeDetermineCCompiler.cmake
+++ b/Modules/CMakeDetermineCCompiler.cmake
@@ -88,14 +88,17 @@ 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)
diff --git a/Modules/CMakeDetermineCXXCompiler.cmake b/Modules/CMakeDetermineCXXCompiler.cmake
index b024034818..1cd401fc53 100644
--- a/Modules/CMakeDetermineCXXCompiler.cmake
+++ b/Modules/CMakeDetermineCXXCompiler.cmake
@@ -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