mirror of
https://github.com/Kitware/CMake.git
synced 2026-07-09 16:16:58 +00:00
Allow toolchain suffix without leading dash
FreeBSD installs both LLVM and gcc with tools named after the major version, in the form "clang<major>", such as "clang16". Detect compilers named this way, and find the related toolchain tools.
This commit is contained in:
@@ -162,7 +162,7 @@ if (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|QCC|LCC")
|
||||
get_filename_component(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(clang|g?cc)(-cl)?(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(clang|g?cc)(-cl)?(-?[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
set(_CMAKE_TOOLCHAIN_SUFFIX ${CMAKE_MATCH_4})
|
||||
set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_6})
|
||||
|
||||
@@ -167,7 +167,7 @@ if (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|QCC|LCC")
|
||||
get_filename_component(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(clang\\+\\+|[gc]\\+\\+|clang-cl)(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(clang\\+\\+|[gc]\\+\\+|clang-cl)(-?[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
set(_CMAKE_TOOLCHAIN_SUFFIX ${CMAKE_MATCH_3})
|
||||
set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
|
||||
|
||||
@@ -26,6 +26,7 @@ set(__clang_hints ${__clang_hint_1} ${__clang_hint_2})
|
||||
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR NAMES
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar-${__version_x_y}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar-${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ar"
|
||||
HINTS ${__clang_hints}
|
||||
NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
|
||||
@@ -37,6 +38,7 @@ mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR)
|
||||
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB NAMES
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib-${__version_x_y}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib-${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}llvm-ranlib"
|
||||
HINTS ${__clang_hints}
|
||||
NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
|
||||
@@ -48,6 +50,7 @@ mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB)
|
||||
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_CLANG_SCAN_DEPS NAMES
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}clang-scan-deps-${__version_x_y}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}clang-scan-deps-${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}clang-scan-deps${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}clang-scan-deps"
|
||||
HINTS ${__clang_hints}
|
||||
NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
|
||||
|
||||
@@ -18,6 +18,7 @@ get_filename_component(__gcc_hints "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPIL
|
||||
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR NAMES
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar-${__version_x_y}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar-${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar${_CMAKE_COMPILER_SUFFIX}"
|
||||
HINTS ${__gcc_hints}
|
||||
NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
|
||||
@@ -29,6 +30,7 @@ mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR)
|
||||
find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB NAMES
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib-${__version_x_y}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib-${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib${__version_x}"
|
||||
"${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib${_CMAKE_COMPILER_SUFFIX}"
|
||||
HINTS ${__gcc_hints}
|
||||
NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
|
||||
|
||||
Reference in New Issue
Block a user