Files
renodx/test/download_reshade.cmake

45 lines
1.9 KiB
CMake

set(RESHADE_VERSION 6.7.3)
set(RESHADE_SETUP_SHA256 c78db69bd127e98054bd496fb422655f4a1cc664e28f8d12ce9835b2647bc571)
set(RESHADE_DLL_SHA256 ec9245d05c11751f2ac0d2256e6921ad8fb36be9172ef6d587856591eb729a25)
set(RESHADE_DLL ${RENODX_TEST_RESHADE_DIR}/ReShade64.dll)
file(MAKE_DIRECTORY ${RENODX_TEST_RESHADE_DIR})
if(EXISTS ${RENODX_TEST_RESHADE_SOURCE})
file(SHA256 ${RENODX_TEST_RESHADE_SOURCE} SOURCE_SHA256)
if(SOURCE_SHA256 STREQUAL RESHADE_DLL_SHA256)
file(COPY_FILE ${RENODX_TEST_RESHADE_SOURCE} ${RESHADE_DLL} ONLY_IF_DIFFERENT)
return()
endif()
endif()
set(RESHADE_SETUP ${RENODX_TEST_RESHADE_DIR}/ReShade_Setup_${RESHADE_VERSION}_Addon.exe)
file(DOWNLOAD
https://reshade.me/downloads/ReShade_Setup_${RESHADE_VERSION}_Addon.exe
${RESHADE_SETUP}
EXPECTED_HASH SHA256=${RESHADE_SETUP_SHA256}
STATUS DOWNLOAD_STATUS
TLS_VERIFY ON
)
list(GET DOWNLOAD_STATUS 0 DOWNLOAD_RESULT)
list(GET DOWNLOAD_STATUS 1 DOWNLOAD_MESSAGE)
if(NOT DOWNLOAD_RESULT EQUAL 0)
message(FATAL_ERROR "Failed to download ReShade ${RESHADE_VERSION}: ${DOWNLOAD_MESSAGE}")
endif()
set(RESHADE_EXTRACT_DIR ${RENODX_TEST_RESHADE_DIR}/package)
file(REMOVE_RECURSE ${RESHADE_EXTRACT_DIR})
file(MAKE_DIRECTORY ${RESHADE_EXTRACT_DIR})
file(ARCHIVE_EXTRACT INPUT ${RESHADE_SETUP} DESTINATION ${RESHADE_EXTRACT_DIR})
file(GLOB_RECURSE RESHADE_DLL_CANDIDATES ${RESHADE_EXTRACT_DIR}/ReShade64.dll)
list(LENGTH RESHADE_DLL_CANDIDATES RESHADE_DLL_COUNT)
if(NOT RESHADE_DLL_COUNT EQUAL 1)
message(FATAL_ERROR "Expected one ReShade64.dll in the ReShade package, found ${RESHADE_DLL_COUNT}")
endif()
list(GET RESHADE_DLL_CANDIDATES 0 RESHADE_EXTRACTED_DLL)
file(SHA256 ${RESHADE_EXTRACTED_DLL} EXTRACTED_SHA256)
if(NOT EXTRACTED_SHA256 STREQUAL RESHADE_DLL_SHA256)
message(FATAL_ERROR "ReShade64.dll hash mismatch: ${EXTRACTED_SHA256}")
endif()
file(COPY_FILE ${RESHADE_EXTRACTED_DLL} ${RESHADE_DLL} ONLY_IF_DIFFERENT)