CMakeDetermineCompilerId: Use per-language regex to match Xcode compiler tool
Move the Ld invocation match expression from CMakeDetermineCompilerId into CMakeDetermine{C,CXX,Fortran}Compiler so that it can be specified on a per-language basis.
This commit is contained in:
parent
bbfebcbc13
commit
99d160385e
|
@ -105,6 +105,14 @@ if(NOT CMAKE_C_COMPILER_ID_RUN)
|
|||
set(CMAKE_C_COMPILER_ID_VENDOR_FLAGS_IAR )
|
||||
set(CMAKE_C_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
|
||||
|
||||
# Match the link line from xcodebuild output of the form
|
||||
# Ld ...
|
||||
# ...
|
||||
# /path/to/cc ...CompilerIdC/...
|
||||
# to extract the compiler front-end for the language.
|
||||
set(CMAKE_C_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdC/(\\./)?(CompilerIdC.xctest/)?CompilerIdC[ \t\n\\\"]")
|
||||
set(CMAKE_C_COMPILER_ID_TOOL_MATCH_INDEX 2)
|
||||
|
||||
include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
|
||||
CMAKE_DETERMINE_COMPILER_ID(C CFLAGS CMakeCCompilerId.c)
|
||||
|
||||
|
|
|
@ -100,6 +100,14 @@ if(NOT CMAKE_CXX_COMPILER_ID_RUN)
|
|||
set(CMAKE_CXX_COMPILER_ID_VENDOR_FLAGS_IAR )
|
||||
set(CMAKE_CXX_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
|
||||
|
||||
# Match the link line from xcodebuild output of the form
|
||||
# Ld ...
|
||||
# ...
|
||||
# /path/to/cc ...CompilerIdCXX/...
|
||||
# to extract the compiler front-end for the language.
|
||||
set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdCXX/(\\./)?(CompilerIdCXX.xctest/)?CompilerIdCXX[ \t\n\\\"]")
|
||||
set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_INDEX 2)
|
||||
|
||||
include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
|
||||
CMAKE_DETERMINE_COMPILER_ID(CXX CXXFLAGS CMakeCXXCompilerId.cpp)
|
||||
|
||||
|
|
|
@ -304,15 +304,12 @@ Id flags: ${testflags}
|
|||
set(ENV{MACOSX_DEPLOYMENT_TARGET} "${_ENV_MACOSX_DEPLOYMENT_TARGET}")
|
||||
endif()
|
||||
|
||||
# Match the link line from xcodebuild output of the form
|
||||
# Ld ...
|
||||
# ...
|
||||
# /path/to/cc ...CompilerId${lang}/...
|
||||
# to extract the compiler front-end for the language.
|
||||
if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerId${lang}/(\\./)?(CompilerId${lang}.xctest/)?CompilerId${lang}[ \t\n\\\"]")
|
||||
set(_comp "${CMAKE_MATCH_2}")
|
||||
if(EXISTS "${_comp}")
|
||||
set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE)
|
||||
if(DEFINED CMAKE_${lang}_COMPILER_ID_TOOL_MATCH_REGEX)
|
||||
if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "${CMAKE_${lang}_COMPILER_ID_TOOL_MATCH_REGEX}")
|
||||
set(_comp "${CMAKE_MATCH_${CMAKE_${lang}_COMPILER_ID_TOOL_MATCH_INDEX}}")
|
||||
if(EXISTS "${_comp}")
|
||||
set(CMAKE_${lang}_COMPILER_ID_TOOL "${_comp}" PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
|
|
|
@ -127,6 +127,14 @@ if(NOT CMAKE_Fortran_COMPILER_ID_RUN)
|
|||
set(CMAKE_Fortran_COMPILER_ID_VENDOR_FLAGS_NAG "-V")
|
||||
set(CMAKE_Fortran_COMPILER_ID_VENDOR_REGEX_NAG "NAG Fortran Compiler")
|
||||
|
||||
# Match the link line from xcodebuild output of the form
|
||||
# Ld ...
|
||||
# ...
|
||||
# /path/to/cc ...CompilerIdFortran/...
|
||||
# to extract the compiler front-end for the language.
|
||||
set(CMAKE_Fortran_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdFortran/(\\./)?(CompilerIdFortran.xctest/)?CompilerIdFortran[ \t\n\\\"]")
|
||||
set(CMAKE_Fortran_COMPILER_ID_TOOL_MATCH_INDEX 2)
|
||||
|
||||
set(_version_info "")
|
||||
foreach(m MAJOR MINOR PATCH TWEAK)
|
||||
set(_COMP "_${m}")
|
||||
|
|
Loading…
Reference in New Issue