Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1239)

Unified Diff: third_party/flatbuffers/flatbuffer.gni

Issue 1907603005: Add a dependency for FlatBuffers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments on license Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/flatbuffers/README.chromium ('k') | third_party/flatbuffers/flatbuffers.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/flatbuffers/flatbuffer.gni
diff --git a/third_party/flatbuffers/flatbuffer.gni b/third_party/flatbuffers/flatbuffer.gni
new file mode 100644
index 0000000000000000000000000000000000000000..01527d45931d87f0efb6697022c57e2696b220cc
--- /dev/null
+++ b/third_party/flatbuffers/flatbuffer.gni
@@ -0,0 +1,118 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Compile a flatbuffer.
+#
+# flatc_out_dir (optional)
+# Specifies the path suffix that output files are generated under. This
+# path will be appended to root_gen_dir.
+#
+# Targets that depend on the proto target will be able to include the
+# resulting flatbuffers header with an include like:
+# #include "dir/for/my_flatbuffer/buffer_generated.h"
+# If undefined, this defaults to matchign the input directory for each
+# .fbs file (you should almost always use the default mode).
+#
+# deps (optional)
+# Additional dependencies.
+#
+# Parameters for compiling the generated code:
+#
+# defines (optional)
+# Defines to supply to the source set that compiles the generated source
+# code.
+#
+# extra_configs (optional)
+# A list of config labels that will be appended to the configs applying
+# to the source set.
+#
+# testonly (optional)
+# Boolean to indicate whether the generated source sets should be labeled
+# as testonly.
+#
+# Example:
+# flatbuffer("mylib") {
+# sources = [
+# "foo.fbs",
+# ]
+# }
+
+import("//build/compiled_action.gni")
+
+template("flatbuffer") {
+ assert(defined(invoker.sources), "Need sources for flatbuffers_library")
+
+ # Don't apply OS-specific sources filtering to the assignments later on.
+ # Platform files should have gotten filtered out in the sources assignment
+ # when this template was invoked. If they weren't, it was on purpose and
+ # this template shouldn't re-apply the filter.
+ set_sources_assignment_filter([])
+
+ action_name = "${target_name}_gen"
+ source_set_name = target_name
+ compiled_action_foreach(action_name) {
+ visibility = [ ":$source_set_name" ]
+
+ tool = "//third_party/flatbuffers:flatc"
+
+ sources = invoker.sources
+
+ if (defined(invoker.flatc_out_dir)) {
+ out_dir = "$root_gen_dir/" + invoker.flatc_out_dir
+ } else {
+ out_dir = "{{source_gen_dir}}"
+ }
+
+ outputs = [
+ "$out_dir/{{source_name_part}}_generated.h",
+ ]
+
+ args = [
+ "-c",
+ "-o",
+ "$out_dir",
+ "{{source}}",
+ ]
+
+ # The deps may have steps that have to run before running flatc.
+ if (defined(invoker.deps)) {
+ deps += invoker.deps
+ }
+ }
+
+ source_set(target_name) {
+ forward_variables_from(invoker,
+ [
+ "visibility",
+ "defines",
+ ])
+
+ sources = get_target_outputs(":$action_name")
+
+ if (defined(invoker.extra_configs)) {
+ configs += invoker.extra_configs
+ }
+
+ if (defined(invoker.testonly)) {
+ testonly = invoker.testonly
+ }
+
+ public_configs = [ "//third_party/flatbuffers:flatbuffers_config" ]
+
+ public_deps = [
+ # The generated headers reference headers within flatbuffers, so
+ # dependencies must be able to find those headers too.
+ "//third_party/flatbuffers",
+ ]
+ deps = [
+ ":$action_name",
+ ]
+
+ # This will link any libraries in the deps (the use of invoker.deps in the
+ # action won't link it).
+ if (defined(invoker.deps)) {
+ deps += invoker.deps
+ }
+ }
+}
« no previous file with comments | « third_party/flatbuffers/README.chromium ('k') | third_party/flatbuffers/flatbuffers.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698