# Copyright 2019 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.


# These are a set of temporarily allowed exceptions to the area dependency
# rules. This data is a mapping from areas to target prefixes.  Any target
# within an area is allowed to depend on any target whose label starts with a
# prefix in that area's list.
exceptions = {
    '//src/camera': [
        '//garnet/tests/zircon/',
        '//src/ui/lib/glm_workaround',
    ],
    '//src/cobalt': [
        '//src/connectivity/wlan/lib/mlme/cpp:mlme',
    ],
    '//src/connectivity/network': [
        '//garnet/go/src/fidlext/fuchsia/hardware/ethernet:fidlext_fuchsia_hardware_ethernet_fake_lib',
        '//garnet/go/src/grand_unified_binary:grand_unified_binary',
        '//src/connectivity/network/testing/netemul/lib/',
    ],
    '//src/connectivity/network/netstack3': [
        '//src/connectivity/network/testing/netemul/lib/',
    ],
    '//src/connectivity/network/testing/netemul': [
        '//garnet/lib/process:process',
    ],
    '//src/connectivity/overnet': [
        '//garnet/examples/fidl/services:echo',
    ],
    '//src/connectivity/wlan': [
        '//garnet/lib/wlan/',
        '//src/connectivity/wlan/drivers',
    ],
    '//src/connectivity/wlan/drivers': [
        '//garnet/lib/wlan/',
    ],
    '//src/connectivity/wlan/tools/wlantool': [
        '//garnet/lib/wlan/',
    ],
    '//src/connectivity/wlan/wlancfg': [
        '//garnet/lib/wlan/',
    ],
    '//src/connectivity/wlan/wlanstack': [
        '//garnet/lib/wlan/',
        '//src/connectivity/wlan/testing/wlantap-client',
    ],
    '//src/developer/debug': [
         '//garnet/lib/process:process',
    ],
    '//src/developer/feedback_agent': [
        '//src/ui/lib/escher/test',
    ],
    '//src/experiences/bin': [
        '//topaz/public',
        '//topaz/runtime',
    ],
    '//src/experiences/session_shells': [
        '//topaz/lib/tiler',
        '//topaz/public',
        '//topaz/runtime',
    ],
    '//src/lib/process_builder': [
        '//garnet/examples/fidl/services:echo-rustc',
    ],
    '//src/media/playback/mediaplayer': [
        '//garnet/bin/http:errors',
    ],
    '//src/modular': [
        '//garnet/testing/benchmarking',
        '//src/modular/bin',
        '//peridot/lib',
        '//peridot/public',
    ],
    '//src/stories/bin/discovermgr': [
        '//src/sys/component_index/fidl',
    ],
    '//src/sys': [
        '//examples/components/',
        '//garnet/examples/fidl',
    ],
    '//src/testing/host-target-testing': [
        '//garnet/go/src',
    ],
    '//src/ui': [
        '//garnet/bin/ui',
    ],
    '//src/ui/examples/escher': [
        '//garnet/bin/ui',
    ],
    '//src/virtualization': [
        '//src/graphics/lib/magma',
        '//garnet/packages/experimental:debian_guest',
        '//garnet/packages/experimental:zircon_guest',
        '//garnet/packages/prod:guest_runner',
    ],
}
