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

group("cpp") {
  deps = [
    ":cpp_after",
    ":cpp_before",
    ":cpp_during_1",
    ":cpp_during_2",
  ]
}

executable("cpp_before") {
  sources = [ "before.cc" ]
  defines = [ "BEFORE" ]
  deps = [ "../:fidl.test.before" ]
}

executable("cpp_during_1") {
  sources = [ "before.cc" ]
  deps = [ "../:fidl.test.during" ]
}

executable("cpp_during_2") {
  sources = [ "after.cc" ]
  deps = [ "../:fidl.test.during" ]
}

executable("cpp_after") {
  sources = [ "after.cc" ]
  defines = [ "AFTER" ]
  deps = [ "../:fidl.test.after" ]
}
