diff --git a/CMakeLists.txt b/CMakeLists.txt index e15cb29..a02a73f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,11 @@ cmake_minimum_required(VERSION 3.10) project(tzdb2nx VERSION 1.0) option(TZDB2NX_ZONEINFO_DIR "Specify a custom zoneinfo directory containing time zone data you wish to use" "") +option(TZDB2NX_VERSION "Specify a custom zoneinfo version with the directory" "") + +if ((TZDB2NX_ZONEINFO_DIR AND NOT TZDB2NX_VERSION) OR (TZDB2NX_VERSION AND NOT TZDB2NX_ZONEINFO_DIR)) + message(FATAL_ERROR "Either TZDB2NX_ZONEINFO_DIR or TZDB2NX_VERSION but not both were defined.") +endif() set(CMAKE_CXX_STANDARD 20) diff --git a/src/tzdb/CMakeLists.txt b/src/tzdb/CMakeLists.txt index baf3a88..0301616 100644 --- a/src/tzdb/CMakeLists.txt +++ b/src/tzdb/CMakeLists.txt @@ -13,29 +13,33 @@ set(NX_ZONEINFO_DIR "${NX_TZDB_DIR}/zoneinfo") set(TZDB_VERSION_FILE ${TZ_SOURCE_DIR}/NEWS) -execute_process( - COMMAND - ${GIT_PROGRAM} log --pretty=%at -n1 NEWS - OUTPUT_VARIABLE - TZ_COMMIT_TIME - WORKING_DIRECTORY - ${TZ_SOURCE_DIR} - COMMAND_ERROR_IS_FATAL ANY) +if (NOT "${TZDB2NX_VERSION}" STREQUAL "") + set(TZDB_VERSION "${TZDB2NX_VERSION}\n") +else() + execute_process( + COMMAND + ${GIT_PROGRAM} log --pretty=%at -n1 NEWS + OUTPUT_VARIABLE + TZ_COMMIT_TIME + WORKING_DIRECTORY + ${TZ_SOURCE_DIR} + COMMAND_ERROR_IS_FATAL ANY) -string(REPLACE "\n" "" TZ_COMMIT_TIME "${TZ_COMMIT_TIME}") + string(REPLACE "\n" "" TZ_COMMIT_TIME "${TZ_COMMIT_TIME}") -if (APPLE OR CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD|NetBSD|OpenBSD") - set(VERSION_COMMAND ${GNU_DATE} -r ${TZ_COMMIT_TIME} +%y%m%d) -else () - set(VERSION_COMMAND ${GNU_DATE} +%y%m%d --date=@${TZ_COMMIT_TIME}) -endif () + if (APPLE OR CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD|NetBSD|OpenBSD") + set(VERSION_COMMAND ${GNU_DATE} -r ${TZ_COMMIT_TIME} +%y%m%d) + else () + set(VERSION_COMMAND ${GNU_DATE} +%y%m%d --date=@${TZ_COMMIT_TIME}) + endif () -execute_process( - COMMAND - ${VERSION_COMMAND} - OUTPUT_VARIABLE - TZDB_VERSION - COMMAND_ERROR_IS_FATAL ANY) + execute_process( + COMMAND + ${VERSION_COMMAND} + OUTPUT_VARIABLE + TZDB_VERSION + COMMAND_ERROR_IS_FATAL ANY) +endif() set(NX_VERSION_FILE ${NX_TZDB_DIR}/version.txt) file(WRITE ${NX_VERSION_FILE} "${TZDB_VERSION}")