LinkerId: Suppress decorated diagnostics during linker inspection

Fixes: #26747
This commit is contained in:
Marc Chevrier 2025-03-08 16:36:16 +01:00 committed by Brad King
parent abee5a5068
commit ee066d2271
3 changed files with 11 additions and 0 deletions

View File

@ -67,6 +67,8 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src)
# executables. This may lead to issues when their stderr output (which
# contains the relevant compiler internals) becomes interweaved.
string(REGEX REPLACE "(^| )-pipe( |$)" " " ${v} "${${v}}")
# Suppress any formatting of warnings and/or errors
string(REGEX REPLACE "(-f|/)diagnostics(-|:)color(=[a-z]+)?" "" ${v} "${${v}}")
endforeach()
# Save the current LC_ALL, LC_MESSAGES, and LANG environment variables

View File

@ -0,0 +1,5 @@
enable_language(C)
if(NOT CMAKE_C_COMPILER_LINKER OR NOT CMAKE_C_COMPILER_LINKER_ID)
message(FATAL_ERROR "Failed to determine Linker.")
endif()

View File

@ -39,3 +39,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Darwin|Windows|AIX|SunOS)$|BSD"
)
endif()
endif()
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID MATCHES Clang)
run_cmake_with_options(CheckCompilerLinkerId "-DCMAKE_C_FLAGS=-fdiagnostics-color=always")
endif()