|
@@ -319,6 +319,53 @@ if (UNIX OR MINGW)
|
|
|
endif()
|
|
endif()
|
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|
|
|
|
+# Setup a custom clang-format target (if clang-format can be found) that will run
|
|
|
|
|
+# against all the src files. This should be used before making a pull request.
|
|
|
|
|
+# =======================================================================
|
|
|
|
|
+
|
|
|
|
|
+set(CLANG_FORMAT_POSTFIX "-6.0")
|
|
|
|
|
+find_program(CLANG_FORMAT
|
|
|
|
|
+ NAMES clang-format${CLANG_FORMAT_POSTFIX}
|
|
|
|
|
+ clang-format
|
|
|
|
|
+ PATHS ${CMAKE_BINARY_DIR}/externals)
|
|
|
|
|
+# if find_program doesn't find it, try to download from externals
|
|
|
|
|
+if (NOT CLANG_FORMAT)
|
|
|
|
|
+ if (WIN32)
|
|
|
|
|
+ message(STATUS "Clang format not found! Downloading...")
|
|
|
|
|
+ set(CLANG_FORMAT "${CMAKE_BINARY_DIR}/externals/clang-format${CLANG_FORMAT_POSTFIX}.exe")
|
|
|
|
|
+ file(DOWNLOAD
|
|
|
|
|
+ https://github.com/yuzu-emu/ext-windows-bin/raw/master/clang-format${CLANG_FORMAT_POSTFIX}.exe
|
|
|
|
|
+ "${CLANG_FORMAT}" SHOW_PROGRESS
|
|
|
|
|
+ STATUS DOWNLOAD_SUCCESS)
|
|
|
|
|
+ if (NOT DOWNLOAD_SUCCESS EQUAL 0)
|
|
|
|
|
+ message(WARNING "Could not download clang format! Disabling the clang format target")
|
|
|
|
|
+ file(REMOVE ${CLANG_FORMAT})
|
|
|
|
|
+ unset(CLANG_FORMAT)
|
|
|
|
|
+ endif()
|
|
|
|
|
+ else()
|
|
|
|
|
+ message(WARNING "Clang format not found! Disabling the clang format target")
|
|
|
|
|
+ endif()
|
|
|
|
|
+endif()
|
|
|
|
|
+
|
|
|
|
|
+if (CLANG_FORMAT)
|
|
|
|
|
+ set(SRCS ${CMAKE_SOURCE_DIR}/src)
|
|
|
|
|
+ set(CCOMMENT "Running clang format against all the .h and .cpp files in src/")
|
|
|
|
|
+ if (WIN32)
|
|
|
|
|
+ add_custom_target(clang-format
|
|
|
|
|
+ COMMAND powershell.exe -Command "${CLANG_FORMAT} -i @(Get-ChildItem -Recurse ${SRCS}/* -Include \'*.h\', \'*.cpp\')"
|
|
|
|
|
+ COMMENT ${CCOMMENT})
|
|
|
|
|
+ elseif(MINGW)
|
|
|
|
|
+ add_custom_target(clang-format
|
|
|
|
|
+ COMMAND find `cygpath -u ${SRCS}` -iname *.h -o -iname *.cpp | xargs `cygpath -u ${CLANG_FORMAT}` -i
|
|
|
|
|
+ COMMENT ${CCOMMENT})
|
|
|
|
|
+ else()
|
|
|
|
|
+ add_custom_target(clang-format
|
|
|
|
|
+ COMMAND find ${SRCS} -iname *.h -o -iname *.cpp | xargs ${CLANG_FORMAT} -i
|
|
|
|
|
+ COMMENT ${CCOMMENT})
|
|
|
|
|
+ endif()
|
|
|
|
|
+ unset(SRCS)
|
|
|
|
|
+ unset(CCOMMENT)
|
|
|
|
|
+endif()
|
|
|
|
|
|
|
|
# Include source code
|
|
# Include source code
|
|
|
# ===================
|
|
# ===================
|