Skip to content
Snippets Groups Projects
Select Git revision
  • 11e47f08b14436c9759dcfb87af213c0696667db
  • for-vairdraw default protected
  • multi-context-windows
3 results

GenerateMappings.cmake

Blame
  • GenerateMappings.cmake 1.03 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\"\n")
        endif()
    endforeach()
    
    configure_file("${template_path}" "${target_path}" @ONLY NEWLINE_STYLE UNIX)
    file(REMOVE "${source_path}")