mirror of
https://github.com/starr-dusT/tzdb_to_nx
synced 2024-03-05 21:18:52 -08:00
cmake: Add option to specify custom zoneinfo
Enables developers to use a different zoneinfo source than the included submodule.
This commit is contained in:
parent
14733f4575
commit
76de8f4115
@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.10)
|
|||||||
|
|
||||||
project(tzdb2nx VERSION 1.0)
|
project(tzdb2nx VERSION 1.0)
|
||||||
|
|
||||||
|
option(TZDB2NX_ZONEINFO_DIR "Specify a custom zoneinfo directory containing time zone data you wish to use" "")
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
|
73
externals/tz/CMakeLists.txt
vendored
73
externals/tz/CMakeLists.txt
vendored
@ -1,48 +1,59 @@
|
|||||||
set(TZ_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tz" CACHE PATH "Time zone source directory")
|
set(TZ_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tz" CACHE PATH "Time zone source directory")
|
||||||
set(TZ_DIR "${CMAKE_CURRENT_BINARY_DIR}/tz")
|
set(TZ_DIR "${CMAKE_CURRENT_BINARY_DIR}/tz")
|
||||||
set(TZ_TMP_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/tmpsrc")
|
set(TZ_TMP_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/tmpsrc")
|
||||||
set(TZ_ZONEINFO_DIR "${TZ_DIR}/usr/share/zoneinfo" CACHE PATH "Time zone info data directory")
|
|
||||||
set(TZIF_LIST_FILE "${CMAKE_CURRENT_BINARY_DIR}/tzif_list.txt" CACHE PATH "List of zone info files")
|
set(TZIF_LIST_FILE "${CMAKE_CURRENT_BINARY_DIR}/tzif_list.txt" CACHE PATH "List of zone info files")
|
||||||
|
if (TZDB2NX_ZONEINFO_DIR)
|
||||||
|
set(TZ_ZONEINFO_DIR "${TZDB2NX_ZONEINFO_DIR}" CACHE PATH "Time zone info data directory")
|
||||||
|
else()
|
||||||
|
set(TZ_ZONEINFO_DIR "${TZ_DIR}/usr/share/zoneinfo" CACHE PATH "Time zone info data directory")
|
||||||
|
endif()
|
||||||
|
|
||||||
find_program(GNU_MAKE make)
|
find_program(GNU_MAKE make)
|
||||||
if (NOT GNU_MAKE)
|
if (NOT GNU_MAKE)
|
||||||
message(FATAL_ERROR "GNU make not found")
|
message(FATAL_ERROR "GNU make not found")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
find_program(GIT_PROGRAM git)
|
||||||
|
if (NOT GIT_PROGRAM)
|
||||||
|
message(FATAL_ERROR "git program not found")
|
||||||
|
endif()
|
||||||
|
|
||||||
if (NOT EXISTS "${TZ_DIR}" OR NOT EXISTS "${TZIF_LIST_FILE}")
|
if (NOT EXISTS "${TZ_DIR}" OR NOT EXISTS "${TZIF_LIST_FILE}")
|
||||||
# tz's makefile can only build in-tree, so copy the whole source tree to a
|
if (NOT TZDB2NX_ZONEINFO_DIR)
|
||||||
# separate directory before building.
|
# tz's makefile can only build in-tree, so copy the whole source tree to a
|
||||||
execute_process(
|
# separate directory before building.
|
||||||
COMMAND
|
execute_process(
|
||||||
${GIT_PROGRAM} clone --depth 1 "file://${TZ_SOURCE_DIR}" "${TZ_TMP_SOURCE_DIR}"
|
COMMAND
|
||||||
COMMAND_ERROR_IS_FATAL ANY
|
${GIT_PROGRAM} clone --depth 1 "file://${TZ_SOURCE_DIR}" "${TZ_TMP_SOURCE_DIR}"
|
||||||
)
|
COMMAND_ERROR_IS_FATAL ANY
|
||||||
|
)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(TZ_MAKEFLAGS "LDLIBS=${Intl_LIBRARY}")
|
set(TZ_MAKEFLAGS "LDLIBS=${Intl_LIBRARY}")
|
||||||
else()
|
else()
|
||||||
set(TZ_MAKEFLAGS)
|
set(TZ_MAKEFLAGS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND
|
||||||
|
${GNU_MAKE} DESTDIR=${TZ_DIR} ${TZ_MAKEFLAGS} install
|
||||||
|
WORKING_DIRECTORY
|
||||||
|
${TZ_TMP_SOURCE_DIR}
|
||||||
|
COMMAND_ERROR_IS_FATAL ANY
|
||||||
|
)
|
||||||
|
|
||||||
|
unset(TZ_MAKEFLAGS)
|
||||||
|
|
||||||
|
# Step taken by Arch Linux packaging, but Nintendo apparently skips it
|
||||||
|
# execute_process(
|
||||||
|
# COMMAND
|
||||||
|
# "${TZDB_LOCATION}/zic" -b fat -d ${TZDB_ZONEINFO} africa antarctica asia australasia europe northamerica southamerica etcetera backward factory
|
||||||
|
# WORKING_DIRECTORY
|
||||||
|
# "${TZDB_LOCATION}"
|
||||||
|
# COMMAND_ERROR_IS_FATAL ANY
|
||||||
|
# )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND
|
|
||||||
${GNU_MAKE} DESTDIR=${TZ_DIR} ${TZ_MAKEFLAGS} install
|
|
||||||
WORKING_DIRECTORY
|
|
||||||
${TZ_TMP_SOURCE_DIR}
|
|
||||||
COMMAND_ERROR_IS_FATAL ANY
|
|
||||||
)
|
|
||||||
|
|
||||||
unset(TZ_MAKEFLAGS)
|
|
||||||
|
|
||||||
# Step taken by Arch Linux packaging, but Nintendo apparently skips it
|
|
||||||
# execute_process(
|
|
||||||
# COMMAND
|
|
||||||
# "${TZDB_LOCATION}/zic" -b fat -d ${TZDB_ZONEINFO} africa antarctica asia australasia europe northamerica southamerica etcetera backward factory
|
|
||||||
# WORKING_DIRECTORY
|
|
||||||
# "${TZDB_LOCATION}"
|
|
||||||
# COMMAND_ERROR_IS_FATAL ANY
|
|
||||||
# )
|
|
||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND
|
COMMAND
|
||||||
${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/CMakeModules/list_directory.cmake false ON
|
${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/CMakeModules/list_directory.cmake false ON
|
||||||
|
Loading…
Reference in New Issue
Block a user