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

import("//peridot/build/executable_package.gni")

source_set("defs") {
  testonly = true

  sources = [
    "defs.h",
  ]
}

executable_package("intent_test_parent_module") {
  testonly = true

  meta = [
    {
      path = "meta/intent_test_parent_module.cmx"
      dest = "intent_test_parent_module.cmx"
    },
  ]

  sources = [
    "intent_test_parent_module.cc",
  ]

  deps = [
    ":defs",
    "//garnet/public/fidl/fuchsia.ui.viewsv1",
    "//peridot/public/lib/integration_testing/cpp",
    "//peridot/public/fidl/fuchsia.modular",
    "//peridot/public/lib/app_driver/cpp:module_driver",
    "//peridot/tests/common:defs",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

executable_package("intent_test_child_module") {
  testonly = true

  meta = [
    {
      path = "meta/intent_test_child_module.cmx"
      dest = "intent_test_child_module.cmx"
    },
  ]

  sources = [
    "intent_test_child_module.cc",
  ]

  deps = [
    ":defs",
    "//garnet/public/fidl/fuchsia.ui.viewsv1",
    "//garnet/public/lib/callback",
    "//peridot/public/lib/integration_testing/cpp",
    "//peridot/public/fidl/fuchsia.modular",
    "//peridot/public/lib/app_driver/cpp:module_driver",
    "//peridot/tests/common:defs",
    "//zircon/public/lib/async-loop-cpp",
  ]
}
