53 lines · plain
1# This file introduces a templates for calling write_vcsrevision.py.2#3# Parameters:4#5# header (required) [string]6#7# names (optional) [list of strings]8# Writes "$foo_REVISION" and "$foo_REPOSITORY" for each foo in names.9# Defaults to [ "LLVM" ]10 11declare_args() {12 # If this is set to true, VCSRevision.h is updated after every git commit.13 # That's technically correct, but results in rebuilds after every commit.14 # If it's false (default), VCSRevision.h will not contain a revision.15 llvm_append_vc_rev = false16}17 18template("write_vcsrevision") {19 assert(defined(invoker.header), "must set 'header' in $target_name")20 21 action(target_name) {22 script = "//llvm/utils/gn/build/write_vcsrevision.py"23 header = invoker.header24 if (defined(invoker.names)) {25 names = invoker.names26 } else {27 names = [ "LLVM" ]28 }29 30 args = [ rebase_path(header, root_build_dir) ]31 if (llvm_append_vc_rev) {32 depfile = "$header.d"33 args += [34 "--write-git-rev",35 "-d",36 rebase_path(depfile, root_build_dir),37 ]38 }39 40 foreach(name, names) {41 args += [ "--name=$name" ]42 }43 44 outputs = [ header ]45 46 forward_variables_from(invoker,47 [48 "public_configs",49 "visibility",50 ])51 }52}53