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