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