blob: f7d3ab8f6e278468f02c2a57d9b483f1716396e4 [file]
function(fetch_sdl2_library directory url filename hash)
if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/${filename})
message(STATUS "Downloading ${filename}")
file(DOWNLOAD ${url}${filename} ${CMAKE_CURRENT_LIST_DIR}/${filename}
SHOW_PROGRESS
TIMEOUT 120
EXPECTED_HASH SHA1=${hash}
TLS_VERIFY ON)
endif()
if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/${directory})
message(STATUS "Extracting ${filename}")
if(${CMAKE_VERSION} VERSION_LESS "3.18")
# tar -xf should work on Windows 10 build 17063 or later (Dec 2017)
execute_process(COMMAND tar -xf ${filename}
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
else()
file(ARCHIVE_EXTRACT INPUT ${CMAKE_CURRENT_LIST_DIR}/${filename} DESTINATION ${CMAKE_CURRENT_LIST_DIR})
endif()
endif()
endfunction(fetch_sdl2_library)
set(SDL2_VERSION 2.24.0)
set(SDL2_IMAGE_VERSION 2.6.2)
set(SDL2_NET_VERSION 2.2.0)
if(NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/include)
fetch_sdl2_library(
SDL2-${SDL2_VERSION}
https://github.com/libsdl-org/SDL/releases/download/release-${SDL2_VERSION}/
SDL2-devel-${SDL2_VERSION}-VC.zip
8a54459189e88c30ba024ee5f18ce4b1a5d1d9e7
)
fetch_sdl2_library(
SDL2_image-${SDL2_IMAGE_VERSION}
https://github.com/libsdl-org/SDL_image/releases/download/release-${SDL2_IMAGE_VERSION}/
SDL2_image-devel-${SDL2_IMAGE_VERSION}-VC.zip
4111affcca1f4b41c2f4b4c445ccf06fe081b5e9
)
fetch_sdl2_library(
SDL2_net-${SDL2_NET_VERSION}
https://github.com/libsdl-org/SDL_net/releases/download/release-${SDL2_NET_VERSION}/
SDL2_net-devel-${SDL2_NET_VERSION}-VC.zip
c8ff358a5c8338002b05ab6de7ce91ee1c86bd45
)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/SDL2-${SDL2_VERSION}/cmake/sdl2-config.cmake)
get_property(SDL2_DLL TARGET SDL2::SDL2 PROPERTY IMPORTED_LOCATION)
# help cmake to find the other libs
set(SDL2_image_DIR ${CMAKE_CURRENT_LIST_DIR}/SDL2_image-${SDL2_IMAGE_VERSION}/cmake)
set(SDL2_net_DIR ${CMAKE_CURRENT_LIST_DIR}/SDL2_net-${SDL2_NET_VERSION}/cmake)