# This file introduces a templates for calling write_vcsrevision.py.
#
# Parameters:
#
# header (required) [string]
#
# names (optional) [list of strings]
# Writes "$foo_REVISION" and "$foo_REPOSITORY" for each foo in names.
# Defaults to [ "LLVM" ]
declare_args() {
# If this is set to true, VCSRevision.h is updated after every git commit.
# That's technically correct, but results in rebuilds after every commit.
# If it's false (default), VCSRevision.h will not contain a revision.
llvm_append_vc_rev = false
}
template("write_vcsrevision") {
assert(defined(invoker.header), "must set 'header' in $target_name")
action(target_name) {
script = "//llvm/utils/gn/build/write_vcsrevision.py"
header = invoker.header
if (defined(invoker.names)) {
names = invoker.names
} else {
names = [ "LLVM" ]
}
args = [ rebase_path(header, root_build_dir) ]
if (llvm_append_vc_rev) {
depfile = "$header.d"
args += [
"--write-git-rev",
"-d",
rebase_path(depfile, root_build_dir),
]
}
foreach(name, names) {
args += [ "--name=$name" ]
}
outputs = [ header ]
forward_variables_from(invoker,
[
"public_configs",
"visibility",
])
}
}