diff options
| author | 2023-06-16 01:03:46 -0400 | |
|---|---|---|
| committer | 2023-06-16 05:17:03 -0400 | |
| commit | 7ffb96f474ec970823111d6274c495df95081a66 (patch) | |
| tree | 774e3dc4e49466397fe6dda368f24ff980c2991c | |
| parent | cmake: Add option to always download time zone data (diff) | |
| download | yuzu-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
| -rw-r--r-- | externals/nx_tzdb/CMakeLists.txt | 18 |
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) | |||
| 12 | set(CAN_BUILD_NX_TZDB true) | 12 | set(CAN_BUILD_NX_TZDB true) |
| 13 | 13 | ||
| 14 | if ("${GIT}" STREQUAL "GIT-NOTFOUND") | 14 | if ("${GIT}" STREQUAL "GIT-NOTFOUND") |
| 15 | message("git program not found") | ||
| 16 | set(CAN_BUILD_NX_TZDB false) | 15 | set(CAN_BUILD_NX_TZDB false) |
| 17 | endif() | 16 | endif() |
| 18 | if ("${GNU_MAKE}" STREQUAL "GNU_MAKE-NOTFOUND") | 17 | if ("${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) |
| 21 | endif() | 19 | endif() |
| 22 | if ("${GNU_DATE}" STREQUAL "GNU_DATE-NOTFOUND") | 20 | if ("${GNU_DATE}" STREQUAL "GNU_DATE-NOTFOUND") |
| 23 | message("GNU date program not found") | 21 | set(CAN_BUILD_NX_TZDB false) |
| 22 | endif() | ||
| 23 | if ("${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) |
| 25 | endif() | 26 | endif() |
| 26 | 27 | ||
| 27 | set(NX_TZDB_VERSION "220816") | 28 | set(NX_TZDB_VERSION "220816") |
| 28 | set(NX_TZDB_ARCHIVE "${CMAKE_CURRENT_BINARY_DIR}/${NX_TZDB_VERSION}.zip") | 29 | set(NX_TZDB_ARCHIVE "${CMAKE_CURRENT_BINARY_DIR}/${NX_TZDB_VERSION}.zip") |
| 29 | 30 | ||
| 31 | set(NX_TZDB_DIR "${CMAKE_CURRENT_BINARY_DIR}/nx_tzdb") | ||
| 32 | |||
| 30 | if ((NOT ${CAN_BUILD_NX_TZDB} OR ${YUZU_DOWNLOAD_TIME_ZONE_DATA}) AND NOT EXISTS ${NX_TZDB_ARCHIVE}) | 33 | if ((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} |