Files
FreeRDP/cmake/ClangDetectTool.cmake

43 lines
1.2 KiB
CMake
Raw Normal View History

function(clang_detect_tool VAR NAME OPTS)
set(NAMES "")
foreach(CNT RANGE 12 22)
list(APPEND NAMES "${NAME}-${CNT}")
endforeach()
list(REVERSE NAMES)
list(APPEND NAMES ${NAME})
2024-01-24 15:08:33 +01:00
find_program(${VAR} NAMES ${NAMES} ${OPTS})
if(NOT ${VAR})
message(WARNING "clang tool ${NAME} (${VAR}) not detected, skipping")
unset(${VAR})
return()
endif()
2024-01-24 15:08:33 +01:00
execute_process(
COMMAND ${${VAR}} "--version" OUTPUT_VARIABLE _CLANG_TOOL_VERSION RESULT_VARIABLE _CLANG_TOOL_VERSION_FAILED
)
2024-01-24 15:08:33 +01:00
if(_CLANG_TOOL_VERSION_FAILED)
message(WARNING "A problem was encountered with ${${VAR}}")
message(WARNING "${_CLANG_TOOL_VERSION_FAILED}")
unset(${VAR})
return()
endif()
2024-01-24 15:08:33 +01:00
string(REGEX MATCH "([7-9]|[1-9][0-9])\\.[0-9]\\.[0-9]" CLANG_TOOL_VERSION "${_CLANG_TOOL_VERSION}")
2024-01-24 15:08:33 +01:00
if(NOT CLANG_TOOL_VERSION)
message(WARNING "problem parsing ${NAME} version for ${${VAR}}")
unset(${VAR})
return()
endif()
2024-01-24 15:08:33 +01:00
set(_CLANG_TOOL_MINIMUM_VERSION "12.0.0")
if(${CLANG_TOOL_VERSION} VERSION_LESS ${_CLANG_TOOL_MINIMUM_VERSION})
message(WARNING "clang-format version ${CLANG_TOOL_VERSION} not supported")
message(WARNING "Minimum version required: ${_CLANG_TOOL_MINIMUM_VERSION}")
unset(${VAR})
return()
endif()
2024-01-24 15:08:33 +01:00
endfunction()