summaryrefslogtreecommitdiff
path: root/sysprop/sysprop.gni
diff options
context:
space:
mode:
Diffstat (limited to 'sysprop/sysprop.gni')
-rw-r--r--sysprop/sysprop.gni55
1 files changed, 55 insertions, 0 deletions
diff --git a/sysprop/sysprop.gni b/sysprop/sysprop.gni
new file mode 100644
index 0000000000..bbf5af4dbf
--- /dev/null
+++ b/sysprop/sysprop.gni
@@ -0,0 +1,55 @@
+#
+# 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}" ]
+ }
+}