mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-29 02:50:26 +00:00
88 lines
2.3 KiB
Text
88 lines
2.3 KiB
Text
#
|
|
# This file introduces a template for calling download_file.py
|
|
#
|
|
# download_file behaves like CMake's file(DOWNLOAD) with the addtion
|
|
# of version checking the file against a build system defined version.
|
|
#
|
|
# Parameters:
|
|
# url (required) [string]
|
|
#
|
|
# output (required) [string]
|
|
#
|
|
# version (required) [string]
|
|
# Version of the file for caching purposes
|
|
#
|
|
# version_file (reqiured) [string]
|
|
# Filename to write the version to in the filesystem
|
|
#
|
|
# cache [String]
|
|
# Directory to clear on version mismatch
|
|
#
|
|
# sha256 [String]
|
|
# Expected SHA-256 hash of the downloaded file
|
|
#
|
|
# Example use:
|
|
#
|
|
# download_file("my_tarball") {
|
|
# url = "http://example.com/xyz.tar.gz"
|
|
# output = "$root_gen_dir/MyModule/xyz.tar.gz"
|
|
# version = "1.2.3"
|
|
# version_file = "$root_gen_dir/MyModule/xyz_version.txt"
|
|
# }
|
|
#
|
|
|
|
template("download_file") {
|
|
assert(defined(invoker.url), "must set 'url' in $target_name")
|
|
assert(defined(invoker.output), "must set 'output' in $target_name")
|
|
assert(defined(invoker.version), "must set 'version' in $target_name")
|
|
assert(defined(invoker.version_file),
|
|
"must set 'version_file' in $target_name")
|
|
|
|
action(target_name) {
|
|
script = "//Meta/gn/build/download_file.py"
|
|
|
|
sources = []
|
|
if (defined(invoker.cache)) {
|
|
outputs = [
|
|
invoker.cache + "/" + invoker.output,
|
|
invoker.cache + "/" + invoker.version_file,
|
|
]
|
|
} else {
|
|
outputs = [
|
|
invoker.output,
|
|
invoker.version_file,
|
|
]
|
|
}
|
|
args = [
|
|
"-o",
|
|
rebase_path(outputs[0], root_build_dir),
|
|
"-f",
|
|
rebase_path(outputs[1], root_build_dir),
|
|
"-v",
|
|
invoker.version,
|
|
invoker.url,
|
|
]
|
|
if (defined(invoker.cache)) {
|
|
args += [
|
|
"-c",
|
|
rebase_path(invoker.cache, root_build_dir),
|
|
]
|
|
}
|
|
if (defined(invoker.sha256)) {
|
|
args += [
|
|
"-s",
|
|
invoker.sha256,
|
|
]
|
|
}
|
|
|
|
forward_variables_from(invoker,
|
|
[
|
|
"configs",
|
|
"deps",
|
|
"public_configs",
|
|
"public_deps",
|
|
"testonly",
|
|
"visibility",
|
|
])
|
|
}
|
|
}
|