From 0b28ddb5a69ebe39319f2e23a62eae8972f76df9 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Fri, 16 Jun 2023 03:23:48 -0400 Subject: [PATCH 1/4] cmake: Use generator expression to target binary --- src/tzdb2nx/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/tzdb2nx/CMakeLists.txt b/src/tzdb2nx/CMakeLists.txt index ae5d614..e3622ef 100644 --- a/src/tzdb2nx/CMakeLists.txt +++ b/src/tzdb2nx/CMakeLists.txt @@ -3,5 +3,4 @@ add_executable(tzdb2nx tzif.cpp tzif.h) -set(TZDB2NX_PATH "${CMAKE_CURRENT_BINARY_DIR}/tzdb2nx" CACHE PATH "Path to tzdb2nx path") -set_target_properties(tzdb2nx PROPERTIES CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TZDB2NX_PATH}) +set(TZDB2NX_PATH "$" CACHE PATH "Path to tzdb2nx path") From 38c6fddfc3fb7e0d517147ab7d7235a0720b67a2 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Fri, 16 Jun 2023 03:34:40 -0400 Subject: [PATCH 2/4] cmake: Fix dependencies Now the files won't be built repeatedly each time it's called. --- src/tzdb/CMakeLists.txt | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/tzdb/CMakeLists.txt b/src/tzdb/CMakeLists.txt index 1b63da2..ca264d6 100644 --- a/src/tzdb/CMakeLists.txt +++ b/src/tzdb/CMakeLists.txt @@ -41,12 +41,16 @@ add_custom_target(x80e ${NX_VERSION_FILE}) set(BINARY_LIST_TXT ${NX_TZDB_DIR}/binaryList.txt) -add_custom_target(binary_list - bash ${CMAKE_CURRENT_SOURCE_DIR}/generate_binary_list_txt.sh ${BINARY_LIST_TXT} - BYPRODUCTS +add_custom_command( + OUTPUT ${BINARY_LIST_TXT} + COMMAND + bash ${CMAKE_CURRENT_SOURCE_DIR}/generate_binary_list_txt.sh ${BINARY_LIST_TXT} WORKING_DIRECTORY ${NX_ZONEINFO_DIR}) + +add_custom_target(binary_list + DEPENDS ${BINARY_LIST_TXT}) add_dependencies(x80e binary_list) file(STRINGS "${TZIF_LIST_FILE}" TZ_FILES) @@ -54,9 +58,10 @@ foreach(FILE ${TZ_FILES}) file(RELATIVE_PATH TARG "${TZ_ZONEINFO_DIR}" "${FILE}") get_filename_component(TARG_PATH "${NX_ZONEINFO_DIR}/${TARG}" DIRECTORY) string(REGEX REPLACE "\/" "_" TARG_SANITIZED "${TARG}") - add_custom_target(${TARG_SANITIZED} - BYPRODUCTS - ${NX_ZONEINFO_DIR}/${TARG} + set(NX_TZ_TARGET ${NX_ZONEINFO_DIR}/${TARG}) + add_custom_command( + OUTPUT + ${NX_TZ_TARGET} COMMAND mkdir -p ${TARG_PATH} COMMAND @@ -64,6 +69,9 @@ foreach(FILE ${TZ_FILES}) DEPENDS tzdb2nx) + add_custom_target(${TARG_SANITIZED} + DEPENDS ${NX_TZ_TARGET}) + add_dependencies(x80e ${TARG_SANITIZED}) add_dependencies(binary_list ${TARG_SANITIZED}) endforeach() From 3bcb7f0ed3b5e91f89a69c3c07842c91f2c802dc Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Fri, 16 Jun 2023 04:10:14 -0400 Subject: [PATCH 3/4] cmake: Reduce number of targets All of these files can be generated from one target --- src/tzdb/CMakeLists.txt | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/tzdb/CMakeLists.txt b/src/tzdb/CMakeLists.txt index ca264d6..a3ac35e 100644 --- a/src/tzdb/CMakeLists.txt +++ b/src/tzdb/CMakeLists.txt @@ -34,7 +34,7 @@ execute_process( set(NX_VERSION_FILE ${NX_TZDB_DIR}/version.txt) file(WRITE ${NX_VERSION_FILE} "${TZDB_VERSION}") -add_custom_target(x80e +add_custom_target(x80e ALL DEPENDS tzdb2nx @@ -49,9 +49,11 @@ add_custom_command( WORKING_DIRECTORY ${NX_ZONEINFO_DIR}) -add_custom_target(binary_list +add_custom_target(time_zone_binary_list DEPENDS ${BINARY_LIST_TXT}) -add_dependencies(x80e binary_list) +add_dependencies(x80e time_zone_binary_list) + +set(TZ_DATA_LIST "") file(STRINGS "${TZIF_LIST_FILE}" TZ_FILES) foreach(FILE ${TZ_FILES}) @@ -69,9 +71,11 @@ foreach(FILE ${TZ_FILES}) DEPENDS tzdb2nx) - add_custom_target(${TARG_SANITIZED} - DEPENDS ${NX_TZ_TARGET}) - - add_dependencies(x80e ${TARG_SANITIZED}) - add_dependencies(binary_list ${TARG_SANITIZED}) + list(APPEND TZ_DATA_LIST ${NX_TZ_TARGET}) endforeach() + +add_custom_target(time_zone_data + DEPENDS ${TZ_DATA_LIST}) + +add_dependencies(x80e time_zone_data) +add_dependencies(time_zone_binary_list time_zone_data) From 03c56aa26ccc9e21c3abfb44827586c8d1208876 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Fri, 16 Jun 2023 04:10:28 -0400 Subject: [PATCH 4/4] cmake: Remove x80e from all target --- src/tzdb/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/tzdb/CMakeLists.txt b/src/tzdb/CMakeLists.txt index a3ac35e..2be93dc 100644 --- a/src/tzdb/CMakeLists.txt +++ b/src/tzdb/CMakeLists.txt @@ -35,7 +35,6 @@ set(NX_VERSION_FILE ${NX_TZDB_DIR}/version.txt) file(WRITE ${NX_VERSION_FILE} "${TZDB_VERSION}") add_custom_target(x80e - ALL DEPENDS tzdb2nx ${NX_VERSION_FILE})