| 
									
										
										
										
											2023-06-03 13:18:51 -04:00
										 |  |  | # SPDX-FileCopyrightText: 2023 yuzu Emulator Project
 | 
					
						
							|  |  |  | # SPDX-License-Identifier: GPL-2.0-or-later
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set(ZONE_PATH ${CMAKE_ARGV3})
 | 
					
						
							|  |  |  | set(HEADER_NAME ${CMAKE_ARGV4})
 | 
					
						
							|  |  |  | set(NX_TZDB_INCLUDE_DIR ${CMAKE_ARGV5})
 | 
					
						
							|  |  |  | set(NX_TZDB_SOURCE_DIR ${CMAKE_ARGV6})
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | execute_process( | 
					
						
							|  |  |  |     COMMAND ${CMAKE_COMMAND} -P ${NX_TZDB_SOURCE_DIR}/ListFilesInDirectory.cmake
 | 
					
						
							|  |  |  |     WORKING_DIRECTORY ${ZONE_PATH}
 | 
					
						
							|  |  |  |     OUTPUT_VARIABLE FILE_LIST)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set(DIRECTORY_NAME ${HEADER_NAME})
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set(FILE_DATA "")
 | 
					
						
							|  |  |  | foreach(ZONE_FILE ${FILE_LIST})
 | 
					
						
							| 
									
										
										
										
											2023-06-17 01:35:35 -04:00
										 |  |  |     if (ZONE_FILE STREQUAL "\n")
 | 
					
						
							| 
									
										
										
										
											2023-06-03 13:18:51 -04:00
										 |  |  |         continue()
 | 
					
						
							|  |  |  |     endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     string(APPEND FILE_DATA "{\"${ZONE_FILE}\",\n{") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     file(READ ${ZONE_PATH}/${ZONE_FILE} ZONE_DATA HEX)
 | 
					
						
							|  |  |  |     string(LENGTH "${ZONE_DATA}" ZONE_DATA_LEN)
 | 
					
						
							|  |  |  |     foreach(I RANGE 0 ${ZONE_DATA_LEN} 2)
 | 
					
						
							|  |  |  |         math(EXPR BREAK_LINE "(${I} + 2) % 38")
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-17 01:35:35 -04:00
										 |  |  |         string(SUBSTRING "${ZONE_DATA}" "${I}" 2 HEX_DATA)
 | 
					
						
							|  |  |  |         if (NOT HEX_DATA)
 | 
					
						
							| 
									
										
										
										
											2023-06-03 13:18:51 -04:00
										 |  |  |             break()
 | 
					
						
							|  |  |  |         endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         string(APPEND FILE_DATA "0x${HEX_DATA},")
 | 
					
						
							| 
									
										
										
										
											2023-06-17 01:35:35 -04:00
										 |  |  |         if (BREAK_LINE EQUAL 0)
 | 
					
						
							| 
									
										
										
										
											2023-06-03 13:18:51 -04:00
										 |  |  |             string(APPEND FILE_DATA "\n")
 | 
					
						
							|  |  |  |         else()
 | 
					
						
							|  |  |  |             string(APPEND FILE_DATA " ")
 | 
					
						
							|  |  |  |         endif()
 | 
					
						
							|  |  |  |     endforeach()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     string(APPEND FILE_DATA "}},\n")
 | 
					
						
							|  |  |  | endforeach()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | file(READ ${NX_TZDB_SOURCE_DIR}/tzdb_template.h.in NX_TZDB_TEMPLATE_H_IN)
 | 
					
						
							|  |  |  | file(CONFIGURE OUTPUT ${NX_TZDB_INCLUDE_DIR}/nx_tzdb/${HEADER_NAME}.h CONTENT "${NX_TZDB_TEMPLATE_H_IN}")
 |