Blame cmake/ClangFormat.cmake
|
Packit Service |
b1ea74 |
# get all project files
|
|
Packit Service |
b1ea74 |
file(GLOB_RECURSE ALL_SOURCE_FILES *.cpp *.c *.h *.m *.java)
|
|
Packit Service |
b1ea74 |
# minimum version required
|
|
Packit Service |
b1ea74 |
set(_CLANG_FORMAT_MINIMUM_VERSION 7.0.0)
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
find_program(CLANG_FORMAT
|
|
Packit Service |
b1ea74 |
NAMES
|
|
Packit Service |
b1ea74 |
clang-format-8
|
|
Packit Service |
b1ea74 |
clang-format-7
|
|
Packit Service |
b1ea74 |
clang-format
|
|
Packit Service |
b1ea74 |
)
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
if (NOT CLANG_FORMAT)
|
|
Packit Service |
b1ea74 |
message(WARNING "clang-format not found in path! code format target not available.")
|
|
Packit Service |
b1ea74 |
else()
|
|
Packit Service |
b1ea74 |
execute_process(
|
|
Packit Service |
b1ea74 |
COMMAND ${CLANG_FORMAT} "--version"
|
|
Packit Service |
b1ea74 |
OUTPUT_VARIABLE _CLANG_FORMAT_VERSION
|
|
Packit Service |
b1ea74 |
RESULT_VARIABLE _CLANG_FORMAT_VERSION_FAILED
|
|
Packit Service |
b1ea74 |
)
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
if (_CLANG_FORMAT_VERSION_FAILED)
|
|
Packit Service |
b1ea74 |
message(WARNING "A problem was encounterd with ${CLANG_FORMAT}")
|
|
Packit Service |
b1ea74 |
return()
|
|
Packit Service |
b1ea74 |
endif()
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
string(REGEX MATCH "([7-9]|[1-9][0-9])\\.[0-9]\\.[0-9]" CLANG_FORMAT_VERSION
|
|
Packit Service |
b1ea74 |
"${_CLANG_FORMAT_VERSION}")
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
if (NOT CLANG_FORMAT_VERSION)
|
|
Packit Service |
b1ea74 |
message(WARNING "problem parsing clang-fromat version for ${CLANG_FORMAT}")
|
|
Packit Service |
b1ea74 |
return()
|
|
Packit Service |
b1ea74 |
endif()
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
if (${CLANG_FORMAT_VERSION} VERSION_LESS ${_CLANG_FORMAT_MINIMUM_VERSION})
|
|
Packit Service |
b1ea74 |
message(WARNING "clang-format version ${CLANG_FORMAT_VERSION} not supported")
|
|
Packit Service |
b1ea74 |
message(WARNING "Minimum version required: ${_CLANG_FORMAT_MINIMUM_VERSION}")
|
|
Packit Service |
b1ea74 |
return()
|
|
Packit Service |
b1ea74 |
endif()
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
add_custom_target(
|
|
Packit Service |
b1ea74 |
clangformat
|
|
Packit Service |
b1ea74 |
COMMAND ${CLANG_FORMAT}
|
|
Packit Service |
b1ea74 |
-style=file
|
|
Packit Service |
b1ea74 |
-i
|
|
Packit Service |
b1ea74 |
${ALL_SOURCE_FILES}
|
|
Packit Service |
b1ea74 |
)
|
|
Packit Service |
b1ea74 |
endif()
|