Merge pull request #5 from lat9nq/generator

cmake: Use generator expression to target binary
This commit is contained in:
toast2903 2023-06-16 04:11:38 -04:00 committed by GitHub
commit 34df65eff2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 13 deletions

View File

@ -35,28 +35,34 @@ 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})
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_dependencies(x80e binary_list)
add_custom_target(time_zone_binary_list
DEPENDS ${BINARY_LIST_TXT})
add_dependencies(x80e time_zone_binary_list)
set(TZ_DATA_LIST "")
file(STRINGS "${TZIF_LIST_FILE}" TZ_FILES)
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 +70,11 @@ foreach(FILE ${TZ_FILES})
DEPENDS
tzdb2nx)
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)

View File

@ -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 "$<TARGET_FILE:tzdb2nx>" CACHE PATH "Path to tzdb2nx path")