blob: efb2a5f46def6a7cb113b7e8f0ff6ade280351ba [file] [log] [blame]
# 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
}
}
}