| Index: mojo/edk/mojo_edk.gni
|
| diff --git a/mojo/edk/mojo_edk.gni b/mojo/edk/mojo_edk.gni
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..34b82d488da8be842b6366672d28d81dee70671a
|
| --- /dev/null
|
| +++ b/mojo/edk/mojo_edk.gni
|
| @@ -0,0 +1,96 @@
|
| +# 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("../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:
|
| +# mojo_edk_configs
|
| +# allow_circular_mojo_edk_includes_from
|
| +# mojo_edk_public_deps
|
| +# mojo_edk_deps
|
| +
|
| +# Note that it is assumed that the Mojo EDK is a sibling of the Mojo SDK in a
|
| +# client repo; the distinctions made above are for the sake of clarity in
|
| +# writing targets.
|
| +template("mojo_edk_source_set") {
|
| + mojo_sdk_source_set(target_name) {
|
| + restrict_external_deps = false
|
| +
|
| + if (defined(invoker.visibility)) {
|
| + visibility = invoker.visibility
|
| + }
|
| + if (defined(invoker.mojo_edk_visibility)) {
|
| + mojo_sdk_visibility = invoker.mojo_edk_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
|
| + }
|
| + if (defined(invoker.mojo_edk_configs)) {
|
| + foreach(edk_config, invoker.mojo_edk_configs) {
|
| + # Check that the EDK config was not mistakenly given as an absolute
|
| + # path.
|
| + assert(get_path_info(edk_config, "abspath") != edk_config)
|
| + configs += [ rebase_path(edk_config, ".", mojo_root) ]
|
| + }
|
| + }
|
| +
|
| + 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_edk_public_deps)) {
|
| + # The EDK is required to be a sibling of the SDK, so the relative
|
| + # dependencies are rewritten in the same way.
|
| + mojo_sdk_public_deps = invoker.mojo_edk_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_edk_deps)) {
|
| + # The EDK is required to be a sibling of the SDK, so the relative
|
| + # dependencies are rewritten in the same way.
|
| + mojo_sdk_deps = invoker.mojo_edk_deps
|
| + }
|
| + if (defined(invoker.mojo_sdk_deps)) {
|
| + mojo_sdk_deps += invoker.mojo_sdk_deps
|
| + }
|
| + }
|
| +}
|
|
|