| # |
| # Copyright 2024 Google, Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at: |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| # Generate c++ headers for each sysprop file |
| # |
| # Parameters: |
| # sources: sysprop source files |
| template("sysprop") { |
| assert(defined(invoker.sources), "sources must be set") |
| |
| outdir = rebase_path(target_gen_dir, root_build_dir) |
| |
| action_foreach("${target_name}_sources") { |
| script = "//common-mk/file_generator_wrapper.py" |
| args = [ |
| "sysprop_cpp", |
| "--header-dir=${outdir}/include", |
| "--public-header-dir=${outdir}/public", |
| "--source-dir=${outdir}/src", |
| "--include-name={{source_file_part}}.h", |
| "{{source}}", |
| ] |
| sources = invoker.sources |
| outputs = [ |
| "${target_gen_dir}/include/{{source_file_part}}.h", |
| "${target_gen_dir}/src/{{source_file_part}}.cpp", |
| "${target_gen_dir}/public/{{source_file_part}}.h", |
| ] |
| } |
| |
| all_dependent_config_name = "_${target_name}_all_dependent_config" |
| config(all_dependent_config_name) { |
| include_dirs = [ "${target_gen_dir}/include" ] |
| } |
| |
| static_library(target_name) { |
| public_deps = [ ":${target_name}_sources" ] |
| sources = get_target_outputs(":${target_name}_sources") |
| deps = invoker.deps |
| all_dependent_configs = [ ":${all_dependent_config_name}" ] |
| } |
| } |