1# Modified `llvm/utils/gn/build/write_cmake_config.gni` file to suit clspv build 2# structure. 3import("//build_overrides/clspv.gni") 4 5# based on llvm/utils/gn/build/write_cmake_config.gni 6 7# This file introduces a templates for calling write_cmake_config.py. 8# 9# write_cmake_config behaves like CMake's configure_file(), but runs at build 10# time, not at generator time. See write_cmake_config.py for details. 11# 12# Parameters: 13# 14# input (required) [string] 15# 16# output (required) [string] 17# 18# values (required) [list of strings] 19# Each entry is a '='-separated key-value pair used for substitution. 20# 21# Example use: 22# 23# write_cmake_config("attributes_compat_func_gen") { 24# input = "Version.inc.in" 25# output = "$root_gen_dir/clang/include/clang/Basic/Version.inc", 26# values = [ 27# "CLANG_VERSION=$llvm_version", 28# ] 29# } 30 31template("write_cmake_config") { 32 assert(defined(invoker.input), "must set 'input' in $target_name") 33 assert(defined(invoker.output), "must set 'output' in $target_name") 34 assert(defined(invoker.values), "must set 'values' in $target_name") 35 36 action(target_name) { 37 script = "//$clspv_llvm_dir/llvm/utils/gn/build/write_cmake_config.py" 38 39 sources = [ invoker.input ] 40 outputs = [ invoker.output ] 41 args = [ 42 "-o", 43 rebase_path(outputs[0], root_build_dir), 44 rebase_path(sources[0], root_build_dir), 45 ] + invoker.values 46 47 forward_variables_from(invoker, 48 [ 49 "configs", 50 "deps", 51 "public_configs", 52 "public_deps", 53 "visibility", 54 ]) 55 } 56} 57