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

import("//build/test.gni")
import("//src/sys/build/components.gni")

group("cpp") {
  deps = [ ":hello-world-cpp" ]
}

group("tests") {
  testonly = true

  deps = [ ":hello-world-cpp-unittests" ]
}

executable("bin") {
  output_name = "hello_world_cpp"

  sources = [ "hello_world.cc" ]
}

fuchsia_component("component") {
  component_name = "hello-world-cpp"
  manifest = "meta/hello_world_cpp.cmx"
  deps = [ ":bin" ]
}

fuchsia_package("hello-world-cpp") {
  deps = [ ":component" ]
}

executable("unittests") {
  testonly = true
  output_name = "hello_world_cpp_test_bin"
  sources = [ "hello_world_unittest.cc" ]
  deps = [ "//src/lib/fxl/test:gtest_main" ]
}

fuchsia_unittest_package("hello-world-cpp-unittests") {
  manifest = "meta/hello_world_cpp_unittests.cmx"
  deps = [ ":unittests" ]
}
