# Find Clang format if(NOT ClangFormat_BIN_NAME) set(ClangFormat_BIN_NAME clang-format) endif() # if custom path check there first if(ClangFormat_ROOT_DIR) find_program(ClangFormat_BIN NAMES ${ClangFormat_BIN_NAME} PATHS "${ClangFormat_ROOT_DIR}" NO_DEFAULT_PATH) endif() find_program(ClangFormat_BIN NAMES ${ClangFormat_BIN_NAME}) include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS( ClangFormat DEFAULT_MSG ClangFormat_BIN) mark_as_advanced( ClangFormat_BIN) if(ClangFormat_FOUND) exec_program(${ClangFormat_BIN} ${CMAKE_CURRENT_SOURCE_DIR} ARGS --version OUTPUT_VARIABLE CLANG_VERSION_TEXT) string(REGEX MATCH "([0-9]+)\\.[0-9]+\\.[0-9]+" CLANG_VERSION ${CLANG_VERSION_TEXT}) if((${CLANG_VERSION} GREATER "9") OR (${CLANG_VERSION} EQUAL "9")) # A CMake script to find all source files and setup clang-format targets for them message(STATUS "found clang-format \"${CLANG_VERSION}\" adding formatting targets") include(clang-format) else() message(STATUS "clang-format version \"${CLANG_VERSION}\" found but need at least 9. Not setting up format targets") endif() else() message(STATUS "clang-format not found. Not setting up format targets") endif()