mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	CMake: Add a custom clang format target
Checks to see if clang-format can be found, and if it is, sets up a custom target that will run against the src dir and auto formats all files. In MSVC, this is a project, and in Makefiles, its a make target
This commit is contained in:
		
							parent
							
								
									ebb8a9b8f0
								
							
						
					
					
						commit
						47ea473018
					
				
					 1 changed files with 47 additions and 0 deletions
				
			
		|  | @ -274,6 +274,53 @@ if (UNIX OR MINGW) | |||
|     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 | ||||
| # =================== | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue