You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							33 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							33 lines
						
					
					
						
							1.0 KiB
						
					
					
				# Usage: | 
						|
# cmake -P GenerateMappings.cmake <path/to/mappings.h.in> <path/to/mappings.h> | 
						|
 | 
						|
set(source_url "https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt") | 
						|
set(source_path "${CMAKE_CURRENT_BINARY_DIR}/gamecontrollerdb.txt") | 
						|
set(template_path "${CMAKE_ARGV3}") | 
						|
set(target_path "${CMAKE_ARGV4}") | 
						|
 | 
						|
if (NOT EXISTS "${template_path}") | 
						|
    message(FATAL_ERROR "Failed to find template file ${template_path}") | 
						|
endif() | 
						|
 | 
						|
file(DOWNLOAD "${source_url}" "${source_path}" | 
						|
     STATUS download_status | 
						|
     TLS_VERIFY on) | 
						|
 | 
						|
list(GET download_status 0 status_code) | 
						|
list(GET download_status 1 status_message) | 
						|
 | 
						|
if (status_code) | 
						|
    message(FATAL_ERROR "Failed to download ${source_url}: ${status_message}") | 
						|
endif() | 
						|
 | 
						|
file(STRINGS "${source_path}" lines) | 
						|
foreach(line ${lines}) | 
						|
    if ("${line}" MATCHES "^[0-9a-fA-F].*$") | 
						|
        set(GLFW_GAMEPAD_MAPPINGS "${GLFW_GAMEPAD_MAPPINGS}\"${line}\",\n") | 
						|
    endif() | 
						|
endforeach() | 
						|
 | 
						|
configure_file("${template_path}" "${target_path}" @ONLY NEWLINE_STYLE UNIX) | 
						|
file(REMOVE "${source_path}") | 
						|
 | 
						|
 |