976550ef [nostalgia/sample_project] Add missing type descriptors 1fb0a866 [nostalgia/core] Fix CompactPalette TypeName and TypeVersion eb46aeeb [nfde] Fix compiler warnings on Gtk build 9244b735 [nostalgia] Fix non-Linux non-Apple systems not to build GLFW for Wayland 3fba36b4 [nfde] Make only option BUILD_SHARED_LIBS if not already set 6ddb6b42 Merge commit '5461f6700dac79e9e71e3966f8a1270706c385ba' 5461f670 Squashed 'deps/nfde/' changes from 28ade5a5c..5786fabce 1ecc7aa7 Merge commit '26c8cc348eacea01237cd64e1a68d0df8141e848' 26c8cc34 Squashed 'deps/glfw/' changes from 7d5a16ce7..7b6aead9f fc25c12d Merge commit 'ae51a422787bc3b720ff1748c0219c8f33363427' ae51a422 Squashed 'deps/imgui/' changes from f33737806..2db79d086 6c71e1e2 [nostalgia/core/studio,studio] Give TileSheetEditor Ctrl-A and Ctrl-G for selection 2ede01e7 [nostalgia/core/studio] Fix build deacd4ab [nostalgia/core/studio] Fix PaletteEditor add/remove color commands git-subtree-dir: deps/nostalgia git-subtree-split: 976550ef6fa269cf1e367e880f148b0ad7b1b163
49 lines
1.6 KiB
CMake
49 lines
1.6 KiB
CMake
# 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]")
|
|
if (line MATCHES "platform:Windows")
|
|
if (GLFW_WIN32_MAPPINGS)
|
|
string(APPEND GLFW_WIN32_MAPPINGS "\n")
|
|
endif()
|
|
string(APPEND GLFW_WIN32_MAPPINGS "\"${line}\",")
|
|
elseif (line MATCHES "platform:Mac OS X")
|
|
if (GLFW_COCOA_MAPPINGS)
|
|
string(APPEND GLFW_COCOA_MAPPINGS "\n")
|
|
endif()
|
|
string(APPEND GLFW_COCOA_MAPPINGS "\"${line}\",")
|
|
elseif (line MATCHES "platform:Linux")
|
|
if (GLFW_LINUX_MAPPINGS)
|
|
string(APPEND GLFW_LINUX_MAPPINGS "\n")
|
|
endif()
|
|
string(APPEND GLFW_LINUX_MAPPINGS "\"${line}\",")
|
|
endif()
|
|
endif()
|
|
endforeach()
|
|
|
|
configure_file("${template_path}" "${target_path}" @ONLY NEWLINE_STYLE UNIX)
|
|
file(REMOVE "${source_path}")
|
|
|