# 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("//build/go/go_binary.gni")
import("//build/package.gni")

go_binary("syz-stress") {
  gopackage = "github.com/google/syzkaller/tools/syz-stress"
  deps = [ "//garnet/public/go/third_party:github.com/google/syzkaller" ]
}

go_binary("syz-fuzzer") {
  gopackage = "github.com/google/syzkaller/syz-fuzzer"
  deps = [ "//garnet/public/go/third_party:github.com/google/syzkaller" ]
}

go_binary("syz-execprog") {
  gopackage = "github.com/google/syzkaller/tools/syz-execprog"
  deps = [ "//garnet/public/go/third_party:github.com/google/syzkaller" ]
}

executable("syz-executor") {
  sources = [
    "//third_party/syzkaller/executor/executor_fuchsia.cc",
  ]
  libs = [ "zircon" ]
}

package("syzkaller") {
  deps = [
    ":syz-execprog",
    ":syz-executor",
    ":syz-fuzzer",
    ":syz-stress",
  ]

  binaries = [
    {
      name = "syz-executor"
    },
    {
      name = "syz-execprog"
    },
    {
      name = "syz-fuzzer"
    },
    {
      name = "syz-stress"
    },
  ]
}
