tzdb_to_nx/externals/tz/CMakeLists.txt

64 lines
2.1 KiB
CMake
Raw Normal View History

2023-06-15 23:04:50 -07:00
set(TZ_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tz" CACHE PATH "Time zone source directory")
2023-06-15 22:16:02 -07:00
set(TZ_DIR "${CMAKE_CURRENT_BINARY_DIR}/tz")
set(TZ_TMP_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/tmpsrc")
2023-06-15 22:16:02 -07:00
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")
find_program(GNU_MAKE make)
if (NOT GNU_MAKE)
2023-06-15 22:16:02 -07:00
message(FATAL_ERROR "GNU make not found")
endif()
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
# separate directory before building.
file(COPY ${TZ_SOURCE_DIR}/ DESTINATION ${TZ_TMP_SOURCE_DIR})
if (APPLE)
set(TZ_MAKEFLAGS "LDLIBS=${Intl_LIBRARY}")
else()
set(TZ_MAKEFLAGS)
endif()
2023-06-15 22:16:02 -07:00
execute_process(
COMMAND
${GNU_MAKE} DESTDIR=${TZ_DIR} ${TZ_MAKEFLAGS} install
2023-06-15 22:16:02 -07:00
WORKING_DIRECTORY
${TZ_TMP_SOURCE_DIR}
2023-06-15 22:16:02 -07:00
COMMAND_ERROR_IS_FATAL ANY
)
unset(TZ_MAKEFLAGS)
2023-06-15 22:16:02 -07:00
# 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(
COMMAND
${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/CMakeModules/list_directory.cmake false ON
2023-06-23 14:24:33 -07:00
WORKING_DIRECTORY
"${TZ_ZONEINFO_DIR}"
OUTPUT_VARIABLE
TZIF_SCAN
2023-06-15 22:16:02 -07:00
)
2023-06-23 14:24:33 -07:00
set(TZIF_LIST "")
foreach(CANDIDATE ${TZIF_SCAN})
if (CANDIDATE STREQUAL "\n")
continue()
endif()
set(TZIF_FILE "${TZ_ZONEINFO_DIR}/${CANDIDATE}")
file(READ "${TZIF_FILE}" HEADER LIMIT 4)
string(SUBSTRING "${HEADER}" 0 4 HEADER) # Remove trailing newline
if (HEADER STREQUAL "TZif")
file(APPEND "${TZIF_LIST_FILE}" "${TZIF_FILE}\n")
endif()
endforeach()
2023-06-15 22:16:02 -07:00
endif()