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