summaryrefslogtreecommitdiff
path: root/externals
diff options
context:
space:
mode:
authorGravatar lat9nq2023-06-16 01:03:46 -0400
committerGravatar lat9nq2023-06-16 05:17:03 -0400
commit7ffb96f474ec970823111d6274c495df95081a66 (patch)
tree774e3dc4e49466397fe6dda368f24ff980c2991c /externals
parentcmake: Add option to always download time zone data (diff)
downloadyuzu-7ffb96f474ec970823111d6274c495df95081a66.tar.gz
yuzu-7ffb96f474ec970823111d6274c495df95081a66.tar.xz
yuzu-7ffb96f474ec970823111d6274c495df95081a66.zip
cmake: Extra time zone data download checks
Extra sanitization for Windows hosts, and fail loudly when the download fails. cmake: Fix status code reading
Diffstat (limited to 'externals')
-rw-r--r--externals/nx_tzdb/CMakeLists.txt18
1 files changed, 13 insertions, 5 deletions
diff --git a/externals/nx_tzdb/CMakeLists.txt b/externals/nx_tzdb/CMakeLists.txt
index c15110fd6..67599faf4 100644
--- a/externals/nx_tzdb/CMakeLists.txt
+++ b/externals/nx_tzdb/CMakeLists.txt
@@ -12,27 +12,35 @@ find_program(GNU_DATE date)
12set(CAN_BUILD_NX_TZDB true) 12set(CAN_BUILD_NX_TZDB true)
13 13
14if ("${GIT}" STREQUAL "GIT-NOTFOUND") 14if ("${GIT}" STREQUAL "GIT-NOTFOUND")
15 message("git program not found")
16 set(CAN_BUILD_NX_TZDB false) 15 set(CAN_BUILD_NX_TZDB false)
17endif() 16endif()
18if ("${GNU_MAKE}" STREQUAL "GNU_MAKE-NOTFOUND") 17if ("${GNU_MAKE}" STREQUAL "GNU_MAKE-NOTFOUND")
19 message("GNU make program not found")
20 set(CAN_BUILD_NX_TZDB false) 18 set(CAN_BUILD_NX_TZDB false)
21endif() 19endif()
22if ("${GNU_DATE}" STREQUAL "GNU_DATE-NOTFOUND") 20if ("${GNU_DATE}" STREQUAL "GNU_DATE-NOTFOUND")
23 message("GNU date program not found") 21 set(CAN_BUILD_NX_TZDB false)
22endif()
23if ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows")
24 # tzdb_to_nx currently requires a posix-compliant host
24 set(CAN_BUILD_NX_TZDB false) 25 set(CAN_BUILD_NX_TZDB false)
25endif() 26endif()
26 27
27set(NX_TZDB_VERSION "220816") 28set(NX_TZDB_VERSION "220816")
28set(NX_TZDB_ARCHIVE "${CMAKE_CURRENT_BINARY_DIR}/${NX_TZDB_VERSION}.zip") 29set(NX_TZDB_ARCHIVE "${CMAKE_CURRENT_BINARY_DIR}/${NX_TZDB_VERSION}.zip")
29 30
31set(NX_TZDB_DIR "${CMAKE_CURRENT_BINARY_DIR}/nx_tzdb")
32
30if ((NOT ${CAN_BUILD_NX_TZDB} OR ${YUZU_DOWNLOAD_TIME_ZONE_DATA}) AND NOT EXISTS ${NX_TZDB_ARCHIVE}) 33if ((NOT ${CAN_BUILD_NX_TZDB} OR ${YUZU_DOWNLOAD_TIME_ZONE_DATA}) AND NOT EXISTS ${NX_TZDB_ARCHIVE})
31 set(NX_TZDB_DOWNLOAD_URL "https://github.com/lat9nq/tzdb_to_nx/releases/download/${NX_TZDB_VERSION}/${NX_TZDB_VERSION}.zip") 34 set(NX_TZDB_DOWNLOAD_URL "https://github.com/lat9nq/tzdb_to_nx/releases/download/${NX_TZDB_VERSION}/${NX_TZDB_VERSION}.zip")
32 35
33 set(NX_TZDB_DIR "${CMAKE_CURRENT_BINARY_DIR}/nx_tzdb" CACHE PATH "Path to Switch-style time zone data") 36 message(STATUS "Downloading time zone data from ${NX_TZDB_DOWNLOAD_URL}...")
37 file(DOWNLOAD ${NX_TZDB_DOWNLOAD_URL} ${NX_TZDB_ARCHIVE}
38 STATUS NX_TZDB_DOWNLOAD_STATUS)
39 list(GET NX_TZDB_DOWNLOAD_STATUS 0 NX_TZDB_DOWNLOAD_STATUS_CODE)
40 if (NOT "${NX_TZDB_DOWNLOAD_STATUS_CODE}" STREQUAL "0")
41 message(FATAL_ERROR "Time zone data download failed (status code ${NX_TZDB_DOWNLOAD_STATUS_CODE})")
42 endif()
34 43
35 file(DOWNLOAD ${NX_TZDB_DOWNLOAD_URL} ${NX_TZDB_ARCHIVE})
36 file(ARCHIVE_EXTRACT 44 file(ARCHIVE_EXTRACT
37 INPUT 45 INPUT
38 ${NX_TZDB_ARCHIVE} 46 ${NX_TZDB_ARCHIVE}