From 8e49f25ddc44284dec11308700069a3d29375a71 Mon Sep 17 00:00:00 2001 From: crueter Date: Wed, 27 Aug 2025 18:17:36 -0400 Subject: [PATCH] [cmake] add tzdb to json Signed-off-by: crueter --- CMakeModules/CPMUtil.cmake | 2 ++ docs/CPM.md | 2 +- externals/nx_tzdb/CMakeLists.txt | 7 +++++++ externals/nx_tzdb/cpmfile.json | 7 +++++++ tools/cpm-fetch.sh | 2 +- 5 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 externals/nx_tzdb/cpmfile.json diff --git a/CMakeModules/CPMUtil.cmake b/CMakeModules/CPMUtil.cmake index c89eed6eb5..b279d314fd 100644 --- a/CMakeModules/CPMUtil.cmake +++ b/CMakeModules/CPMUtil.cmake @@ -143,6 +143,7 @@ function(AddJsonPackage) get_json_element("${object}" hash hash "") get_json_element("${object}" sha sha "") + get_json_element("${object}" url url "") get_json_element("${object}" tag tag "") get_json_element("${object}" artifact artifact "") get_json_element("${object}" git_version git_version "") @@ -189,6 +190,7 @@ function(AddJsonPackage) AddPackage( NAME "${package}" VERSION "${version}" + URL "${url}" HASH "${hash}" SHA "${sha}" REPO "${repo}" diff --git a/docs/CPM.md b/docs/CPM.md index 0b03efb0a5..f90002891c 100644 --- a/docs/CPM.md +++ b/docs/CPM.md @@ -247,6 +247,6 @@ You may omit the first line if you are not utilizing cpmfile. Currently, `cpm-fetch.sh` defines the following directories for cpmfiles: -`externals src/yuzu/externals externals/ffmpeg src/dynarmic/externals` +`externals src/yuzu/externals externals/ffmpeg src/dynarmic/externals externals/nx_tzdb` Whenever you add a new cpmfile, update the script accordingly \ No newline at end of file diff --git a/externals/nx_tzdb/CMakeLists.txt b/externals/nx_tzdb/CMakeLists.txt index a86a97b4da..ad22d7b7f2 100644 --- a/externals/nx_tzdb/CMakeLists.txt +++ b/externals/nx_tzdb/CMakeLists.txt @@ -1,6 +1,10 @@ # SPDX-FileCopyrightText: 2023 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later +# Explicitly include CPMUtil here since we have a separate cpmfile for nx_tzdb +set(CPMUTIL_JSON_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cpmfile.json) +include(CPMUtil) + set(NX_TZDB_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/include") add_library(nx_tzdb INTERFACE) @@ -43,6 +47,8 @@ if ((NOT CAN_BUILD_NX_TZDB OR YUZU_DOWNLOAD_TIME_ZONE_DATA) AND NOT EXISTS ${NX_ message(FATAL_ERROR "Time zone data download failed (status code ${NX_TZDB_DOWNLOAD_STATUS_CODE})") endif() + AddJsonPackage(tzdb) + file(ARCHIVE_EXTRACT INPUT ${NX_TZDB_ARCHIVE} @@ -50,6 +56,7 @@ if ((NOT CAN_BUILD_NX_TZDB OR YUZU_DOWNLOAD_TIME_ZONE_DATA) AND NOT EXISTS ${NX_ ${NX_TZDB_ROMFS_DIR}) elseif (CAN_BUILD_NX_TZDB AND NOT YUZU_DOWNLOAD_TIME_ZONE_DATA) # TODO(crueter): this sucked to do with cpm, see if i can get it to work again + message(FATAL_ERROR "Building tzdb is currently unsupported. Check back later.") add_subdirectory(tzdb_to_nx) add_dependencies(nx_tzdb x80e) diff --git a/externals/nx_tzdb/cpmfile.json b/externals/nx_tzdb/cpmfile.json new file mode 100644 index 0000000000..fea39eb11c --- /dev/null +++ b/externals/nx_tzdb/cpmfile.json @@ -0,0 +1,7 @@ +{ + "tzdb": { + "url": "https://github.com/crueter/tzdb_to_nx/releases/download/250725/250725.zip", + "hash": "8f60b4b29f285e39c0443f3d5572a73780f3dbfcfd5b35004451fadad77f3a215b2e2aa8d0fffe7e348e2a7b0660882b35228b6178dda8804a14ce44509fd2ca", + "version": "250725" + } +} diff --git a/tools/cpm-fetch.sh b/tools/cpm-fetch.sh index 6e3f49f9c8..f0998d7ce7 100755 --- a/tools/cpm-fetch.sh +++ b/tools/cpm-fetch.sh @@ -92,7 +92,7 @@ ci_package() { for package in $@ do # prepare for cancer - JSON=$(find . externals src/yuzu/externals externals/ffmpeg src/dynarmic/externals -maxdepth 1 -name cpmfile.json -exec jq -r ".\"$package\" | select( . != null )" {} \;) + JSON=$(find . externals src/yuzu/externals externals/ffmpeg src/dynarmic/externals externals/nx_tzdb -maxdepth 1 -name cpmfile.json -exec jq -r ".\"$package\" | select( . != null )" {} \;) [ -z "$JSON" ] && echo "No cpmfile definition for $package" && continue echo $JSON