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

group("no_cmx_whitelist") {
  #  ________  _________  ________  ________
  # |\   ____\|\___   ___\\   __  \|\   __  \
  # \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
  #  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
  #   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
  #     ____\_\  \   \ \__\ \ \_______\ \__\
  #    |\_________\   \|__|  \|_______|\|__|
  #    \|_________|
  # This is a whitelist of packages that have components that are missing cmx
  # files. Do not add to this list. Please add cmx files to your components
  # instead.
  # https://fuchsia.googlesource.com/docs/+/master/the-book/package_metadata.md#Component-manifest
  visibility = [
      "//garnet/bin/bluetooth/tools/bt-cli:*",
      "//garnet/bin/cpuperf:*",
      "//garnet/bin/developer/tiles:*",
      "//garnet/bin/dhcpd_test_client:*",
      "//garnet/bin/guest/runner:*",
      "//garnet/bin/mdns/standalone:*",
      "//garnet/bin/mdns/tool:*",
      "//garnet/bin/media:*",
      "//garnet/bin/net-cli:*",
      "//garnet/bin/network-speed-test:*",
      "//garnet/bin/network_loader:*",
      "//garnet/bin/overnet/onet:*",
      "//garnet/bin/run/test:*",
      "//garnet/bin/sl4f:*",
      "//garnet/bin/terminal:*",
      "//garnet/bin/trace_stress:*",
      "//garnet/bin/ui/benchmarks/image_grid_cpp:*",
      "//garnet/bin/ui/recovery_ui:*",
      "//garnet/bin/ui:*",
      "//garnet/bin/wayland/bridge:*",
      "//garnet/bin/wlan/wlan-smoke-test:*",
      "//garnet/bin/xi_core:*",
      "//garnet/examples/benchmark:*",
      "//garnet/examples/fidl/heartbeat_client_go:*",
      "//garnet/examples/fidl/heartbeat_server_go:*",
      "//garnet/examples/http/httpget_cpp:*",
      "//garnet/examples/http/httpget_rust:*",
      "//garnet/examples/profiler:*",
      "//garnet/examples/rust/staticlib:*",
      "//garnet/go/src/benchmarking:*",
      "//garnet/go/src/far:*",
      "//garnet/go/src/merkle:*",
      "//garnet/go/src/pmd:*",
      "//garnet/lib/magma/gnbuild/magma-arm-mali:*",
      "//garnet/lib/magma/gnbuild/magma-intel-gen:*",
      "//garnet/lib/magma/gnbuild/magma-vsl-gc:*",
      "//garnet/lib/ui/gfx/tests:*",
      "//peridot/bin/agents/clipboard:*",
      "//peridot/bin/basemgr:*",
      "//peridot/bin/context_engine:*",
      "//peridot/bin/sessionmgr/story_runner:*",
      "//peridot/bin/sessionmgr:*",
      "//peridot/bin/token_manager:*",
      "//peridot/examples/simple:*",
      "//peridot/examples/swap_cpp:*",
      "//peridot/examples/todo_cpp:*",
      "//topaz/examples/ui/noodles:*",
      "//topaz/runtime/web_runner_prototype:*",
  ]
}
