# 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/components.gni")
import("//build/test.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" ]
}
