# Copyright (c) 2017, 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.

import("../configs.gni")
import("platform_sources.gni")

library_for_all_configs("libdart_platform") {
  target_type = "source_set"
  public_configs = [ "../vm:libdart_vm_config" ]
  sources = platform_sources
  include_dirs = [ ".." ]
  extra_deps = []
  configurable_deps = [ ":libdart_platform_no_tsan" ]

  if (is_fuchsia) {
    extra_deps += [
      "$fuchsia_sdk/pkg/inspect_component_cpp",
      "$fuchsia_sdk/pkg/sys_cpp",
    ]
  }
}

config("no_tsan_config") {
  if (!is_win) {
    cflags = [ "-fno-sanitize=thread" ]
  }
}

library_for_all_configs("libdart_platform_no_tsan") {
  target_type = "source_set"
  public_configs = [
    "../vm:libdart_vm_config",
    ":no_tsan_config",
  ]
  sources = [
    "no_tsan.cc",
    "no_tsan.h",
  ]
  include_dirs = [ ".." ]
}
