# Copyright 2014 The Chromium 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/package.gni")

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

  sources = [
    "httpget.cc",
  ]

  deps = [
    "//garnet/public/fidl/fuchsia.net.oldhttp",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fidl/cpp",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

package("httpget_cpp") {
  meta = [
    {
      path = rebase_path("meta/httpget_cpp.cmx")
      dest = "httpget_cpp.cmx"
    },
  ]

  deps = [
    ":bin",
  ]

  binary = "httpget_cpp"
}
