# Copyright (c) 2014, 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("runtime_args.gni")

declare_args() {
  # Instead of using is_debug, we introduce a different flag for specifying a
  # Debug build of Dart so that clients can still use a Release build of Dart
  # while themselves doing a Debug build.
  dart_debug = false

  # Set the runtime mode. This affects how the runtime is built and what
  # features it has. Valid values are:
  # 'develop' (the default) - VM is built to run as a JIT with all development
  # features enabled.
  # 'profile' - The VM is built to run with AOT compiled code with only the
  # CPU profiling features enabled.
  # 'release' - The VM is built to run with AOT compiled code with no developer
  # features enabled.
  #
  # These settings are only used for Flutter, at the moment. A standalone build
  # of the Dart VM should leave this set to "develop", and should set
  # 'is_debug', 'is_release', or 'is_product'.
  dart_runtime_mode = "develop"

  # Explicitly set the target architecture in case of precompilation. Leaving
  # this unspecified results in automatic target architecture detection.
  # Available options are: arm, arm64, mips, x64 and ia32
  dart_target_arch = ""

  # The optimization level to use for debug builds.
  dart_debug_optimization_level = "2"
}

config("dart_public_config") {
  include_dirs = [ "." ]
}

# Adds PRODUCT define if Flutter has specified "release" for dart_runtime_mode
config("dart_maybe_product_config") {
  defines = []

  if (dart_runtime_mode != "develop" && dart_runtime_mode != "profile" &&
      dart_runtime_mode != "release") {
    print("Invalid |dart_runtime_mode|")
    assert(false)
  }

  if (dart_runtime_mode == "release") {
    if (dart_debug) {
      print("Debug and release mode are mutually exclusive.")
    }
    assert(!dart_debug)
    defines += [ "PRODUCT" ]
  }
}

config("dart_precompiled_runtime_config") {
  defines = []
  defines += [ "DART_PRECOMPILED_RUNTIME" ]
}

# Controls DART_PRECOMPILER #define.
config("dart_precompiler_config") {
  defines = []
  defines += [ "DART_PRECOMPILER" ]
}

config("dart_no_snapshot_config") {
  defines = []
  defines += [ "DART_NO_SNAPSHOT" ]
}

config("dart_config") {
  defines = []

  if (target_os == "android") {
    defines += [ "TARGET_OS_ANDROID" ]
  } else if (target_os == "fuchsia") {
    defines += [ "TARGET_OS_FUCHSIA" ]
  } else if (target_os == "ios") {
    defines += [ "TARGET_OS_MACOS" ]
    defines += [ "TARGET_OS_MACOS_IOS" ]
  } else if (target_os == "linux") {
    defines += [ "TARGET_OS_LINUX" ]
  } else if (target_os == "mac") {
    defines += [ "TARGET_OS_MACOS" ]
  } else if (target_os == "win") {
    defines += [ "TARGET_OS_WINDOWS" ]
  } else {
    print("Unknown target_os: $target_os")
    assert(false)
  }

  if (dart_target_arch != "") {
    if (dart_target_arch == "arm" || dart_target_arch == "simarm") {
      defines += [ "TARGET_ARCH_ARM" ]
    } else if (dart_target_arch == "armv6" || dart_target_arch == "simarmv6") {
      defines += [ "TARGET_ARCH_ARM" ]
      defines += [ "TARGET_ARCH_ARM_6" ]
    } else if (dart_target_arch == "armv5te" ||
               dart_target_arch == "simarmv5te") {
      defines += [ "TARGET_ARCH_ARM" ]
      defines += [ "TARGET_ARCH_ARM_5TE" ]
    } else if (dart_target_arch == "arm64" || dart_target_arch == "simarm64") {
      defines += [ "TARGET_ARCH_ARM64" ]
    } else if (dart_target_arch == "mips" || dart_target_arch == "simmips") {
      defines += [ "TARGET_ARCH_MIPS" ]
    } else if (dart_target_arch == "x64") {
      defines += [ "TARGET_ARCH_X64" ]
    } else if (dart_target_arch == "ia32") {
      defines += [ "TARGET_ARCH_IA32" ]
    } else if (dart_target_arch == "dbc" || dart_target_arch == "simdbc" ||
               dart_target_arch == "simdbc64" ||
               dart_target_arch == "armsimdbc" ||
               dart_target_arch == "armsimdbc64") {
      defines += [ "TARGET_ARCH_DBC" ]
      defines += [ "USING_SIMULATOR" ]
    } else {
      print("Invalid dart_target_arch: $dart_target_arch")
      assert(false)
    }
  }

  if (dart_debug) {
    defines += [ "DEBUG" ]
  } else {
    defines += [ "NDEBUG" ]
  }

  include_dirs = []
  if (dart_use_tcmalloc) {
    defines += [ "DART_USE_TCMALLOC" ]
    include_dirs += [ "../third_party/tcmalloc/gperftools/src" ]
  }

  if (defined(is_fuchsia) && is_fuchsia) {
    defines += [ "DART_USE_JEMALLOC" ]
    include_dirs += [ "//magenta/third_party/ulib/jemalloc/include" ]
  }

  if (!is_win) {
    cflags = [
      "-Werror",
      "-Wall",
      "-Wextra",  # Also known as -W.
      "-Wno-unused-parameter",
      "-Wnon-virtual-dtor",
      "-Wvla",
      "-Wno-conversion-null",
      "-Woverloaded-virtual",
      "-g3",
      "-ggdb3",
      "-fno-rtti",
      "-fno-exceptions",
    ]

    if (dart_debug) {
      cflags += [ "-O${dart_debug_optimization_level}" ]
    } else {
      cflags += [ "-O3" ]
    }

    ldflags = []
    if (defined(is_asan) && is_asan) {
      ldflags += [ "-fsanitize=address" ]
    }
    if (defined(is_msan) && is_msan) {
      ldflags += [ "-fsanitize=memory" ]
    }
    if (defined(is_tsan) && is_tsan) {
      ldflags += [ "-fsanitize=thread" ]
    }
  }
}

source_set("dart_api") {
  public_configs = [ ":dart_public_config" ]
  sources = [
    "include/dart_api.h",
    "include/dart_mirrors_api.h",
    "include/dart_native_api.h",
    "include/dart_tools_api.h",
  ]
}

template("libdart_library") {
  extra_configs = []
  if (defined(invoker.extra_configs)) {
    extra_configs += invoker.extra_configs
  }
  extra_deps = []
  if (defined(invoker.extra_deps)) {
    extra_deps += invoker.extra_deps
  }
  static_library(target_name) {
    configs += [
                 ":dart_config",
                 ":dart_maybe_product_config",
               ] + extra_configs
    deps = [
             "vm:libdart_platform",
             "third_party/double-conversion/src:libdouble_conversion",
             ":generate_version_cc_file",
           ] + extra_deps
    include_dirs = [ "." ]
    public_configs = [ ":dart_public_config" ]
    sources = [
      "$target_gen_dir/version.cc",
      "include/dart_api.h",
      "include/dart_mirrors_api.h",
      "include/dart_native_api.h",
      "include/dart_tools_api.h",
      "vm/dart_api_impl.cc",
      "vm/debugger_api_impl.cc",
      "vm/mirrors_api_impl.cc",
      "vm/native_api_impl.cc",
      "vm/version.h",
    ]
    defines = [ "DART_SHARED_LIB" ]
  }
}

libdart_library("libdart_jit") {
  extra_deps = [
    "vm:libdart_lib_jit",
    "vm:libdart_vm_jit",
  ]
}

libdart_library("libdart_precompiled_runtime") {
  extra_configs = [ ":dart_precompiled_runtime_config" ]
  extra_deps = [
    "vm:libdart_lib_precompiled_runtime",
    "vm:libdart_vm_precompiled_runtime",
  ]
}

libdart_library("libdart_nosnapshot_with_precompiler") {
  extra_configs = [
    ":dart_no_snapshot_config",
    ":dart_precompiler_config",
  ]
  extra_deps = [
    "vm:libdart_lib_nosnapshot_with_precompiler",
    "vm:libdart_vm_nosnapshot_with_precompiler",
  ]
}

libdart_library("libdart_with_precompiler") {
  extra_configs = [ ":dart_precompiler_config" ]
  extra_deps = [
    "vm:libdart_lib_with_precompiler",
    "vm:libdart_vm_with_precompiler",
  ]
}

action("generate_version_cc_file") {
  deps = [
    ":libdart_dependency_helper",
  ]
  inputs = [
    "../tools/utils.py",
    "../tools/print_version.py",
    "../tools/VERSION",
    "vm/version_in.cc",
  ]
  output = "$target_gen_dir/version.cc"
  outputs = [
    output,
  ]

  script = "../tools/make_version.py"
  args = [
    "--quiet",
    "--output",
    rebase_path(output, root_build_dir),
    "--input",
    rebase_path("vm/version_in.cc", root_build_dir),
  ]
}

executable("libdart_dependency_helper") {
  configs += [
    ":dart_config",
    ":dart_maybe_product_config",
  ]
  deps = [
    "third_party/double-conversion/src:libdouble_conversion",
    "vm:libdart_lib_jit",
    "vm:libdart_lib_nosnapshot_with_precompiler",
    "vm:libdart_vm_jit",
    "vm:libdart_vm_nosnapshot_with_precompiler",
  ]
  sources = [
    "vm/libdart_dependency_helper.cc",
  ]
}
