mirror of
https://github.com/RGBCube/serenity
synced 2025-05-23 17:25:09 +00:00
86 lines
2.2 KiB
Text
86 lines
2.2 KiB
Text
import("//Meta/gn/build/compiled_action.gni")
|
|
import("//Meta/gn/build/download_cache.gni")
|
|
import("//Meta/gn/build/download_file.gni")
|
|
import("//Meta/gn/build/extract_archive_contents.gni")
|
|
|
|
declare_args() {
|
|
# If true, Download tzdata from data.iana.org and use it in LibTimeZone
|
|
# Data will be downloaded to $cache_path/TZDB
|
|
enable_timezone_database_download = true
|
|
}
|
|
|
|
tzdb_cache = cache_path + "TZDB/"
|
|
|
|
if (enable_timezone_database_download) {
|
|
download_file("timezone_database_download") {
|
|
version = "2024a"
|
|
url =
|
|
"https://data.iana.org/time-zones/releases/tzdata" + version + ".tar.gz"
|
|
cache = tzdb_cache
|
|
output = "tzdb.tar.gz"
|
|
version_file = "version.txt"
|
|
}
|
|
extract_archive_contents("timezone_database_files") {
|
|
deps = [ ":timezone_database_download" ]
|
|
archive = get_target_outputs(":timezone_database_download")
|
|
directory = tzdb_cache
|
|
|
|
# NOSORT
|
|
files = [
|
|
"zone1970.tab",
|
|
"africa",
|
|
"antarctica",
|
|
"asia",
|
|
"australasia",
|
|
"backward",
|
|
"etcetera",
|
|
"europe",
|
|
"northamerica",
|
|
"southamerica",
|
|
]
|
|
}
|
|
compiled_action("generate_timezone_sources") {
|
|
tool = "//Meta/Lagom/Tools/CodeGenerators/LibTimeZone:GenerateTimeZoneData"
|
|
deps = [ ":timezone_database_files" ]
|
|
inputs = get_target_outputs(":timezone_database_files")
|
|
outputs = [
|
|
"$target_gen_dir/TimeZoneData.h",
|
|
"$target_gen_dir/TimeZoneData.cpp",
|
|
]
|
|
args = [
|
|
"-h",
|
|
rebase_path(outputs[0], root_build_dir),
|
|
"-c",
|
|
rebase_path(outputs[1], root_build_dir),
|
|
"-z",
|
|
|
|
# NOTE: Coordinates file must be inputs[0]
|
|
]
|
|
foreach(data_file, inputs) {
|
|
args += [ rebase_path(data_file, root_build_dir) ]
|
|
}
|
|
}
|
|
}
|
|
|
|
source_set("LibTimeZone") {
|
|
output_name = "timezone"
|
|
include_dirs = [
|
|
"//Userland/Libraries",
|
|
"$target_gen_dir/..",
|
|
]
|
|
sources = [
|
|
"DateTime.cpp",
|
|
"DateTime.h",
|
|
"Forward.h",
|
|
"TimeZone.cpp",
|
|
"TimeZone.h",
|
|
]
|
|
deps = [
|
|
"//AK",
|
|
"//Userland/Libraries/LibCore",
|
|
]
|
|
if (enable_timezone_database_download) {
|
|
deps += [ ":generate_timezone_sources" ]
|
|
sources += get_target_outputs(":generate_timezone_sources")
|
|
}
|
|
}
|