mirror of
https://github.com/clshortfuse/renodx.git
synced 2026-10-02 05:04:37 +08:00
45 lines
1.9 KiB
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) |