mirror of
https://github.com/SFML/SFML.git
synced 2024-11-28 22:31:09 +08:00
29 lines
1.2 KiB
CMake
29 lines
1.2 KiB
CMake
# Check executable exists
|
|
if(NOT EXISTS ${CLANG_FORMAT_EXECUTABLE})
|
|
find_program(CLANG_FORMAT_EXEC_TEMP ${CLANG_FORMAT_EXECUTABLE})
|
|
if(CLANG_FORMAT_EXEC_TEMP)
|
|
set(CLANG_FORMAT_EXECUTABLE ${CLANG_FORMAT_EXEC_TEMP})
|
|
unset(CLANG_FORMAT_EXEC_TEMP)
|
|
else()
|
|
message(FATAL_ERROR "Unable to find clang-format executable: \"${CLANG_FORMAT_EXECUTABLE}\"")
|
|
endif()
|
|
endif()
|
|
|
|
# Check executable version
|
|
execute_process(COMMAND ${CLANG_FORMAT_EXECUTABLE} --version OUTPUT_VARIABLE CLANG_FORMAT_VERSION)
|
|
string(REGEX MATCH "clang-format version ([0-9]+)" CLANG_FORMAT_VERSION ${CLANG_FORMAT_VERSION})
|
|
unset(CLANG_FORMAT_VERSION)
|
|
if(NOT CMAKE_MATCH_1 EQUAL 17)
|
|
message(FATAL_ERROR "clang-format version ${CMAKE_MATCH_1} not supported. Must use version 17")
|
|
endif()
|
|
|
|
# Run
|
|
set(SOURCES "")
|
|
foreach(FOLDER IN ITEMS examples include src test tools)
|
|
file(GLOB_RECURSE folder_files "${FOLDER}/*.h" "${FOLDER}/*.hpp" "${FOLDER}/*.inl" "${FOLDER}/*.cpp" "${FOLDER}/*.mm" "${FOLDER}/*.m")
|
|
list(FILTER folder_files EXCLUDE REGEX "gl.h|vulkan.h|stb_perlin.h") # 3rd party code to exclude from formatting
|
|
list(APPEND SOURCES ${folder_files})
|
|
endforeach()
|
|
|
|
execute_process(COMMAND ${CLANG_FORMAT_EXECUTABLE} -i ${SOURCES})
|