# Copyright (c) 2013 The Chromium 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/config/allocator.gni")

# Only executables and not libraries should depend on the allocator target;
# only the application (the final executable) knows what allocator makes sense.
# This "allocator" meta-target will forward to the default allocator according
# to the build settings.
group("allocator") {
  if (use_allocator == "tcmalloc") {
    deps = [
      ":tcmalloc",
    ]
  }
}

# This config and libc modification are only used on Windows.
if (is_win) {
  import("//build/config/win/visual_studio_version.gni")

  config("nocmt") {
    ldflags = [
      "/NODEFAULTLIB:libcmt",
      "/NODEFAULTLIB:libcmtd",
    ]
    libs = [ rebase_path("$target_gen_dir/allocator/libcmt.lib") ]
  }

  action("prep_libc") {
    script = "prep_libc.py"
    outputs = [
      "$target_gen_dir/allocator/libcmt.lib",
    ]
    args = [
      visual_studio_path + "/vc/lib",
      rebase_path("$target_gen_dir/allocator"),
      current_cpu,
    ]
  }
}

if (use_allocator == "tcmalloc") {
  # tcmalloc currently won't compile on Android.
  source_set("tcmalloc") {
    tcmalloc_dir = "//third_party/tcmalloc/chromium"

    # Don't check tcmalloc's includes. These files include various files like
    # base/foo.h and they actually refer to tcmalloc's forked copy of base
    # rather than the regular one, which confuses the header checker.
    check_includes = false

    sources = [
      # Generated for our configuration from tcmalloc"s build
      # and checked in.
      "$tcmalloc_dir/src/config.h",
      "$tcmalloc_dir/src/config_android.h",
      "$tcmalloc_dir/src/config_linux.h",
      "$tcmalloc_dir/src/config_win.h",

      # tcmalloc native and forked files.
      "$tcmalloc_dir/src/base/abort.cc",
      "$tcmalloc_dir/src/base/abort.h",
      "$tcmalloc_dir/src/base/arm_instruction_set_select.h",

      # We don't list dynamic_annotations.c since its copy is already
      # present in the dynamic_annotations target.
      "$tcmalloc_dir/src/base/elf_mem_image.cc",
      "$tcmalloc_dir/src/base/elf_mem_image.h",
      "$tcmalloc_dir/src/base/linuxthreads.cc",
      "$tcmalloc_dir/src/base/linuxthreads.h",
      "$tcmalloc_dir/src/base/logging.cc",
      "$tcmalloc_dir/src/base/logging.h",
      "$tcmalloc_dir/src/base/low_level_alloc.cc",
      "$tcmalloc_dir/src/base/low_level_alloc.h",
      "$tcmalloc_dir/src/base/spinlock.cc",
      "$tcmalloc_dir/src/base/spinlock.h",
      "$tcmalloc_dir/src/base/spinlock_internal.cc",
      "$tcmalloc_dir/src/base/spinlock_internal.h",
      "$tcmalloc_dir/src/base/synchronization_profiling.h",
      "$tcmalloc_dir/src/base/sysinfo.cc",
      "$tcmalloc_dir/src/base/sysinfo.h",
      "$tcmalloc_dir/src/base/thread_lister.c",
      "$tcmalloc_dir/src/base/thread_lister.h",
      "$tcmalloc_dir/src/base/vdso_support.cc",
      "$tcmalloc_dir/src/base/vdso_support.h",
      "$tcmalloc_dir/src/central_freelist.cc",
      "$tcmalloc_dir/src/central_freelist.h",
      "$tcmalloc_dir/src/common.cc",
      "$tcmalloc_dir/src/common.h",

      # #included by debugallocation_shim.cc
      #"$tcmalloc_dir/src/debugallocation.cc",
      "$tcmalloc_dir/src/deep-heap-profile.cc",
      "$tcmalloc_dir/src/deep-heap-profile.h",
      "$tcmalloc_dir/src/free_list.cc",
      "$tcmalloc_dir/src/free_list.h",
      "$tcmalloc_dir/src/heap-profile-table.cc",
      "$tcmalloc_dir/src/heap-profile-table.h",
      "$tcmalloc_dir/src/heap-profiler.cc",
      "$tcmalloc_dir/src/internal_logging.cc",
      "$tcmalloc_dir/src/internal_logging.h",
      "$tcmalloc_dir/src/linked_list.h",
      "$tcmalloc_dir/src/malloc_extension.cc",
      "$tcmalloc_dir/src/malloc_hook-inl.h",
      "$tcmalloc_dir/src/malloc_hook.cc",
      "$tcmalloc_dir/src/maybe_threads.cc",
      "$tcmalloc_dir/src/maybe_threads.h",
      "$tcmalloc_dir/src/memory_region_map.cc",
      "$tcmalloc_dir/src/memory_region_map.h",
      "$tcmalloc_dir/src/page_heap.cc",
      "$tcmalloc_dir/src/page_heap.h",
      "$tcmalloc_dir/src/profile-handler.cc",
      "$tcmalloc_dir/src/profile-handler.h",
      "$tcmalloc_dir/src/profiledata.cc",
      "$tcmalloc_dir/src/profiledata.h",
      "$tcmalloc_dir/src/profiler.cc",
      "$tcmalloc_dir/src/raw_printer.cc",
      "$tcmalloc_dir/src/raw_printer.h",
      "$tcmalloc_dir/src/sampler.cc",
      "$tcmalloc_dir/src/sampler.h",
      "$tcmalloc_dir/src/span.cc",
      "$tcmalloc_dir/src/span.h",
      "$tcmalloc_dir/src/stack_trace_table.cc",
      "$tcmalloc_dir/src/stack_trace_table.h",
      "$tcmalloc_dir/src/stacktrace.cc",
      "$tcmalloc_dir/src/static_vars.cc",
      "$tcmalloc_dir/src/static_vars.h",
      "$tcmalloc_dir/src/symbolize.cc",
      "$tcmalloc_dir/src/symbolize.h",
      "$tcmalloc_dir/src/system-alloc.cc",
      "$tcmalloc_dir/src/system-alloc.h",

      # #included by debugallocation_shim.cc
      #"$tcmalloc_dir/src/tcmalloc.cc",
      "$tcmalloc_dir/src/thread_cache.cc",
      "$tcmalloc_dir/src/thread_cache.h",
      "$tcmalloc_dir/src/windows/port.cc",
      "$tcmalloc_dir/src/windows/port.h",
      "allocator_shim.cc",
      "debugallocation_shim.cc",

      # These are both #included by allocator_shim for maximal linking.
      #"generic_allocators.cc",
      #"win_allocator.cc",
    ]

    # Disable the heap checker in tcmalloc.
    defines = [ "NO_HEAP_CHECK" ]

    include_dirs = [
      ".",
      "$tcmalloc_dir/src/base",
      "$tcmalloc_dir/src",
    ]

    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]

    deps = []

    if (is_win) {
      sources -= [
        "$tcmalloc_dir/src/base/elf_mem_image.cc",
        "$tcmalloc_dir/src/base/elf_mem_image.h",
        "$tcmalloc_dir/src/base/linuxthreads.cc",
        "$tcmalloc_dir/src/base/linuxthreads.h",
        "$tcmalloc_dir/src/base/vdso_support.cc",
        "$tcmalloc_dir/src/base/vdso_support.h",
        "$tcmalloc_dir/src/maybe_threads.cc",
        "$tcmalloc_dir/src/maybe_threads.h",
        "$tcmalloc_dir/src/symbolize.h",
        "$tcmalloc_dir/src/system-alloc.cc",
        "$tcmalloc_dir/src/system-alloc.h",

        # included by allocator_shim.cc
        "debugallocation_shim.cc",

        # cpuprofiler
        "$tcmalloc_dir/src/base/thread_lister.c",
        "$tcmalloc_dir/src/base/thread_lister.h",
        "$tcmalloc_dir/src/profile-handler.cc",
        "$tcmalloc_dir/src/profile-handler.h",
        "$tcmalloc_dir/src/profiledata.cc",
        "$tcmalloc_dir/src/profiledata.h",
        "$tcmalloc_dir/src/profiler.cc",
      ]
      defines += [ "PERFTOOLS_DLL_DECL=" ]

      configs -= [
        # Tcmalloc defines this itself, and we don't want duplicate definition
        # warnings.
        "//build/config/win:nominmax",
      ]

      public_configs = [ ":nocmt" ]

      deps += [ ":prep_libc" ]
    }

    if (is_linux || is_android) {
      sources -= [
        "$tcmalloc_dir/src/system-alloc.h",
        "$tcmalloc_dir/src/windows/port.cc",
        "$tcmalloc_dir/src/windows/port.h",

        # TODO(willchan): Support allocator shim later on.
        "allocator_shim.cc",
      ]

      # We enable all warnings by default, but upstream disables a few.
      # Keep "-Wno-*" flags in sync with upstream by comparing against:
      # http://code.google.com/p/google-perftools/source/browse/trunk/Makefile.am
      cflags = [
        "-Wno-sign-compare",
        "-Wno-unused-result",
      ]

      configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]

      ldflags = [
        # Don't let linker rip this symbol out, otherwise the heap&cpu
        # profilers will not initialize properly on startup.
        "-Wl,-uIsHeapProfilerRunning,-uProfilerStart",

        # Do the same for heap leak checker.
        "-Wl,-u_Z21InitialMallocHook_NewPKvj,-u_Z22InitialMallocHook_MMapPKvS0_jiiix,-u_Z22InitialMallocHook_SbrkPKvi",
        "-Wl,-u_Z21InitialMallocHook_NewPKvm,-u_Z22InitialMallocHook_MMapPKvS0_miiil,-u_Z22InitialMallocHook_SbrkPKvl",
        "-Wl,-u_ZN15HeapLeakChecker12IgnoreObjectEPKv,-u_ZN15HeapLeakChecker14UnIgnoreObjectEPKv",
      ]
    }

    # Make sure the allocation library is optimized as much as possible when
    # we"re in release mode.
    if (!is_debug) {
      configs -= [ "//build/config/compiler:optimize" ]
      configs += [ "//build/config/compiler:optimize_max" ]
    }

    deps += [ "//base/third_party/dynamic_annotations" ]

    if (is_win) {
      ldflags = [ "/ignore:4006:4221" ]
    }
  }
}  # !is_android

source_set("allocator_extension_thunks") {
  visibility = [ "//base/*" ]
  sources = [
    "allocator_extension_thunks.cc",
    "allocator_extension_thunks.h",
  ]
  if (is_android && !is_debug) {
    configs -= [ "//build/config/compiler:optimize" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }
}
