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() | ||||||
| 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 | ||||||
| # =================== | # =================== | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue