| # Copyright 2020 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Generates two `source_set` definitions, for use with and without the ddk. |
| # |
| # This template allows us to have a different source_set definition for targets that will become a |
| # driver and targets that will not. Notably, network-device libraries' tests and the network-tun |
| # component use the source_set without the DDK symbols. |
| # |
| # The DDK target will have DDK libraries added to its public deps and `NETDEV_DDK` to its defines. |
| # The non-DDK target will have the syslog library added to its public deps. Both targets have the |
| # `_ALL_SOURCE` define added. |
| # |
| # Parameters |
| # - sources and public_deps work as expected. |
| template("ddk_source_split") { |
| source_set(target_name + "_ddk") { |
| defines = [ "_ALL_SOURCE" ] |
| forward_variables_from(invoker, |
| [ |
| "sources", |
| "public_deps", |
| "public_configs", |
| ]) |
| if (defined(invoker.configs)) { |
| configs += invoker.configs |
| } |
| defines += [ "NETDEV_DDK" ] |
| public_deps += [ |
| "//src/lib/ddk", |
| "//src/lib/ddktl", |
| ] |
| if (defined(invoker.ddk_deps)) { |
| public_deps += invoker.ddk_deps |
| } |
| } |
| |
| source_set(target_name) { |
| defines = [ "_ALL_SOURCE" ] |
| forward_variables_from(invoker, |
| [ |
| "sources", |
| "public_deps", |
| "public_configs", |
| ]) |
| if (defined(invoker.configs)) { |
| configs += invoker.configs |
| } |
| public_deps += [ "//zircon/system/ulib/syslog" ] |
| if (defined(invoker.non_ddk_deps)) { |
| public_deps += invoker.non_ddk_deps |
| } |
| } |
| } |