summaryrefslogtreecommitdiffstats
path: root/mojo/edk/mojo_edk.gni
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/edk/mojo_edk.gni')
-rw-r--r--mojo/edk/mojo_edk.gni69
1 files changed, 69 insertions, 0 deletions
diff --git a/mojo/edk/mojo_edk.gni b/mojo/edk/mojo_edk.gni
new file mode 100644
index 0000000..efb2a5f
--- /dev/null
+++ b/mojo/edk/mojo_edk.gni
@@ -0,0 +1,69 @@
+# Copyright 2014 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.
+
+import("../../third_party/mojo/src/mojo/public/mojo_sdk.gni")
+
+# A mojo_edk_source_set is a mojo_sdk_source_set that does not restrict
+# external dependencies and understands the following additional variables, all
+# of which admit a list of the relevant elements specified relative to the
+# location of the Mojo EDK:
+# allow_circular_mojo_edk_includes_from
+template("mojo_edk_source_set") {
+ mojo_sdk_source_set(target_name) {
+ if (defined(invoker.public_deps) || defined(invoker.deps)) {
+ restrict_external_deps = false
+ }
+
+ if (defined(invoker.visibility)) {
+ visibility = invoker.visibility
+ }
+ if (defined(invoker.testonly)) {
+ testonly = invoker.testonly
+ }
+ if (defined(invoker.sources)) {
+ sources = invoker.sources
+ }
+ if (defined(invoker.defines)) {
+ defines = invoker.defines
+ }
+ if (defined(invoker.public_configs)) {
+ public_configs = invoker.public_configs
+ }
+
+ configs = []
+ if (defined(invoker.configs)) {
+ configs = invoker.configs
+ }
+
+ allow_circular_includes_from = []
+ if (defined(invoker.allow_circular_includes_from)) {
+ allow_circular_includes_from += invoker.allow_circular_includes_from
+ }
+ if (defined(invoker.allow_circular_mojo_edk_includes_from)) {
+ foreach(edk_target, invoker.allow_circular_mojo_edk_includes_from) {
+ # Check that the EDK target was not mistakenly given as an absolute
+ # path.
+ assert(get_path_info(edk_target, "abspath") != edk_target)
+ allow_circular_includes_from +=
+ [ rebase_path(edk_target, ".", mojo_root) ]
+ }
+ }
+
+ if (defined(invoker.public_deps)) {
+ public_deps = invoker.public_deps
+ }
+ mojo_sdk_public_deps = []
+ if (defined(invoker.mojo_sdk_public_deps)) {
+ mojo_sdk_public_deps += invoker.mojo_sdk_public_deps
+ }
+
+ if (defined(invoker.deps)) {
+ deps = invoker.deps
+ }
+ mojo_sdk_deps = []
+ if (defined(invoker.mojo_sdk_deps)) {
+ mojo_sdk_deps += invoker.mojo_sdk_deps
+ }
+ }
+}