# Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

executable("bit") {
  sources = [ "main.cc" ]
  root_dir = rebase_path(root_out_dir)
  clang_dir = rebase_path("//buildtools/linux-x64/clang/bin")
  defines = [
    "BIT_BINARY_DIR=\"$root_dir\"",
    "BIT_CLANG_DIR=\"$clang_dir\"",
  ]
  deps = [ "../../../third_party/llvm:LLVMSupport" ]
  data_deps = [ "../codegen" ]
}

source_set("test") {
  sources = [ "test.cc" ]

  root_dir = rebase_path(root_out_dir)
  clang_dir = rebase_path("//buildtools/linux-x64/clang/bin")
  defines = [
    "BIT_BINARY_DIR=\"$root_dir\"",
    "BIT_CLANG_DIR=\"$clang_dir\"",
  ]

  deps = [ "../../../third_party/llvm:LLVMSupport" ]

  include_dirs = [ "//runtime" ]

  defines += [ "TESTING" ]
}
