# 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", ]) } }