| # This file introduces a templates for calling write_cmake_config.py. |
| # |
| # write_cmake_config behaves like CMake's configure_file(), but runs at build |
| # time, not at generator time. See write_cmake_config.py for details. |
| # |
| # Parameters: |
| # |
| # input (required) [string] |
| # |
| # output (required) [string] |
| # |
| # values (required) [list of strings] |
| # Each entry is a '='-separated key-value pair used for substitution. |
| # |
| # Example use: |
| # |
| # write_cmake_config("attributes_compat_func_gen") { |
| # input = "Version.inc.in" |
| # output = "$root_gen_dir/clang/include/clang/Basic/Version.inc", |
| # values = [ |
| # "CLANG_VERSION=$llvm_version", |
| # ] |
| # } |
| |
| template("write_cmake_config") { |
| assert(defined(invoker.input), "must set 'input' in $target_name") |
| assert(defined(invoker.output), "must set 'output' in $target_name") |
| assert(defined(invoker.values), "must set 'values' in $target_name") |
| |
| action(target_name) { |
| script = "//llvm/utils/gn/build/write_cmake_config.py" |
| |
| sources = [ invoker.input ] |
| outputs = [ invoker.output ] |
| args = [ |
| "-o", |
| rebase_path(outputs[0], root_build_dir), |
| rebase_path(sources[0], root_build_dir), |
| ] + invoker.values |
| |
| forward_variables_from(invoker, |
| [ |
| "configs", |
| "deps", |
| "public_configs", |
| "public_deps", |
| "visibility", |
| ]) |
| } |
| } |