15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  'target_defaults': {
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    'variables': {
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      # This code gets run a lot and debugged rarely, so it should be fast
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      # by default. See http://crbug.com/388949.
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      'debug_optimize': '2',
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      'win_debug_Optimization': '2',
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      # Run time checks are incompatible with any level of optimizations.
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      'win_debug_RuntimeChecks': '0',
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    },
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  },
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  'variables': {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    'tcmalloc_dir': '../../third_party/tcmalloc/chromium',
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    'use_vtable_verify%': 0,
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  },
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  'targets': [
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    # Only executables and not libraries should depend on the
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    # allocator target; only the application (the final executable)
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    # knows what allocator makes sense.
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'target_name': 'allocator',
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'type': 'static_library',
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Make sure the allocation library is optimized to
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # the hilt in official builds.
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'variables': {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'optimize': 'max',
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      },
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'include_dirs': [
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '.',
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base',
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src',
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '../..',
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'direct_dependent_settings': {
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'configurations': {
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'Common_Base': {
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'msvs_settings': {
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              'VCLinkerTool': {
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                'IgnoreDefaultLibraryNames': ['libcmtd.lib', 'libcmt.lib'],
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                'AdditionalDependencies': [
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                  '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib'
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                ],
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              },
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            },
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          },
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'conditions': [
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ['OS=="win"', {
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'defines': [
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              'PERFTOOLS_DLL_DECL=',
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            ],
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          }],
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ],
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      },
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'sources': [
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # Generated for our configuration from tcmalloc's build
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # and checked in.
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/config.h',
6390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)        '<(tcmalloc_dir)/src/config_android.h',
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/config_linux.h',
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/config_win.h',
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # all tcmalloc native and forked files
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/addressmap-inl.h',
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/abort.cc',
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/abort.h',
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/arm_instruction_set_select.h',
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-linuxppc.h',
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-arm-generic.h',
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-arm-v6plus.h',
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-macosx.h',
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-windows.h',
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-x86.cc',
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-x86.h',
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops.h',
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/basictypes.h',
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/commandlineflags.h',
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/cycleclock.h',
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # We don't list dynamic_annotations.c since its copy is already
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # present in the dynamic_annotations target.
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/dynamic_annotations.h',
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/elf_mem_image.cc',
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/elf_mem_image.h',
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/elfcore.h',
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/googleinit.h',
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/linux_syscall_support.h',
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/linuxthreads.cc',
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/linuxthreads.h',
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/logging.cc',
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/logging.h',
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/low_level_alloc.cc',
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/low_level_alloc.h',
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/simple_mutex.h',
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock.cc',
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock.h',
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock_internal.cc',
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock_internal.h',
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock_linux-inl.h',
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock_posix-inl.h',
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock_win32-inl.h',
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/stl_allocator.h',
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/synchronization_profiling.h',
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/sysinfo.cc',
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/sysinfo.h',
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/thread_annotations.h',
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/thread_lister.c',
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/thread_lister.h',
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/vdso_support.cc',
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/vdso_support.h',
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/central_freelist.cc',
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/central_freelist.h',
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/common.cc',
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/common.h',
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/debugallocation.cc',
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/deep-heap-profile.cc',
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/deep-heap-profile.h',
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/free_list.cc',
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/free_list.h',
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/getpc.h',
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/heap-checker.h',
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/heap-profiler.h',
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/malloc_extension.h',
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/malloc_extension_c.h',
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/malloc_hook.h',
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/malloc_hook_c.h',
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/profiler.h',
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/stacktrace.h',
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/tcmalloc.h',
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/heap-checker-bcad.cc',
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/heap-checker.cc',
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/heap-profile-table.cc',
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/heap-profile-table.h',
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/heap-profiler.cc',
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/internal_logging.cc',
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/internal_logging.h',
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override.h',
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override_gcc_and_weak.h',
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override_glibc.h',
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override_osx.h',
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override_redefine.h',
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/linked_list.h',
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/malloc_extension.cc',
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/malloc_hook-inl.h',
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/malloc_hook.cc',
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/malloc_hook_mmap_freebsd.h',
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/malloc_hook_mmap_linux.h',
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/maybe_threads.cc',
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/maybe_threads.h',
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/memfs_malloc.cc',
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/memory_region_map.cc',
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/memory_region_map.h',
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/packed-cache-inl.h',
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/page_heap.cc',
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/page_heap.h',
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/page_heap_allocator.h',
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/pagemap.h',
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/profile-handler.cc',
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/profile-handler.h',
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/profiledata.cc',
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/profiledata.h',
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/profiler.cc',
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/raw_printer.cc',
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/raw_printer.h',
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/sampler.cc',
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/sampler.h',
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/span.cc',
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/span.h',
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stack_trace_table.cc',
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stack_trace_table.h',
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace.cc',
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_arm-inl.h',
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_config.h',
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_generic-inl.h',
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_libunwind-inl.h',
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_powerpc-inl.h',
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_win32-inl.h',
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_with_context.cc',
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_x86-inl.h',
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/static_vars.cc',
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/static_vars.h',
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/symbolize.cc',
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/symbolize.h',
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/system-alloc.cc',
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/system-alloc.h',
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/tcmalloc.cc',
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/tcmalloc_guard.h',
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/thread_cache.cc',
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/thread_cache.h',
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/config.h',
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/get_mangled_names.cc',
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/gperftools/tcmalloc.h',
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/ia32_modrm_map.cc',
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/ia32_opcode_map.cc',
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/mingw.h',
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/mini_disassembler.cc',
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/mini_disassembler.h',
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/mini_disassembler_types.h',
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/override_functions.cc',
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/patch_functions.cc',
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/port.cc',
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/port.h',
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/preamble_patcher.cc',
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/preamble_patcher.h',
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/preamble_patcher_with_stub.cc',
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'allocator_shim.cc',
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'allocator_shim.h',
2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        'debugallocation_shim.cc',
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'generic_allocators.cc',
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'win_allocator.cc',
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # sources! means that these are not compiled directly.
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'sources!': [
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # Included by allocator_shim.cc for maximal inlining.
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'generic_allocators.cc',
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'win_allocator.cc',
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        # Included by debugallocation_shim.cc.
2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        '<(tcmalloc_dir)/src/debugallocation.cc',
2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        '<(tcmalloc_dir)/src/tcmalloc.cc',
2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # We simply don't use these, but list them above so that IDE
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # users can view the full available source for reference, etc.
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/addressmap-inl.h',
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-linuxppc.h',
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-macosx.h',
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-x86-msvc.h',
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-x86.cc',
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops-internals-x86.h',
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/atomicops.h',
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/basictypes.h',
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/commandlineflags.h',
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/cycleclock.h',
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/elf_mem_image.h',
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/elfcore.h',
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/googleinit.h',
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/linux_syscall_support.h',
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/simple_mutex.h',
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock_linux-inl.h',
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock_posix-inl.h',
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/spinlock_win32-inl.h',
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/stl_allocator.h',
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/base/thread_annotations.h',
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/getpc.h',
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/heap-checker.h',
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/heap-profiler.h',
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/malloc_extension.h',
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/malloc_extension_c.h',
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/malloc_hook.h',
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/malloc_hook_c.h',
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/profiler.h',
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/stacktrace.h',
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/gperftools/tcmalloc.h',
2585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        '<(tcmalloc_dir)/src/heap-checker-bcad.cc',
2595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        '<(tcmalloc_dir)/src/heap-checker.cc',
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override.h',
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override_gcc_and_weak.h',
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override_glibc.h',
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override_osx.h',
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/libc_override_redefine.h',
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/malloc_hook_mmap_freebsd.h',
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/malloc_hook_mmap_linux.h',
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/memfs_malloc.cc',
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/packed-cache-inl.h',
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/page_heap_allocator.h',
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/pagemap.h',
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_arm-inl.h',
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_config.h',
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_generic-inl.h',
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_libunwind-inl.h',
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_powerpc-inl.h',
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_win32-inl.h',
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_with_context.cc',
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/stacktrace_x86-inl.h',
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/tcmalloc_guard.h',
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/config.h',
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/gperftools/tcmalloc.h',
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/get_mangled_names.cc',
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/ia32_modrm_map.cc',
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/ia32_opcode_map.cc',
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/mingw.h',
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/mini_disassembler.cc',
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/mini_disassembler.h',
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/mini_disassembler_types.h',
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/override_functions.cc',
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/patch_functions.cc',
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/preamble_patcher.cc',
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/preamble_patcher.h',
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '<(tcmalloc_dir)/src/windows/preamble_patcher_with_stub.cc',
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'dependencies': [
2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '../third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'msvs_settings': {
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # TODO(sgk):  merge this with build/common.gypi settings
3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'VCLibrarianTool': {
3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'AdditionalOptions': ['/ignore:4006,4221'],
3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'VCLinkerTool': {
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'AdditionalOptions': ['/ignore:4006'],
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      },
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'configurations': {
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'Debug_Base': {
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'msvs_settings': {
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'VCCLCompilerTool': {
3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              'RuntimeLibrary': '0',
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            },
3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          },
3142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          'variables': {
3152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            # Provide a way to force disable debugallocation in Debug builds,
3162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            # e.g. for profiling (it's more rare to profile Debug builds,
3172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            # but people sometimes need to do that).
3182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            'disable_debugallocation%': 0,
3192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          },
3202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          'conditions': [
321868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)            # TODO(phajdan.jr): Also enable on Windows.
322868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)            ['disable_debugallocation==0 and OS!="win"', {
3232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              'defines': [
3242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                # Use debugallocation for Debug builds to catch problems early
3252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                # and cleanly, http://crbug.com/30715 .
3262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                'TCMALLOC_FOR_DEBUGALLOCATION',
3272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)              ],
3282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            }],
3292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          ],
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      },
3325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      # Disable the heap checker in tcmalloc.
3335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      'defines': [
3345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        'NO_HEAP_CHECK',
3355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      ],
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'conditions': [
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ['OS=="linux" and clang_type_profiler==1', {
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies': [
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler_tcmalloc',
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # It is undoing dependencies and cflags_cc for type_profiler which
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # build/common.gypi injects into all targets.
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies!': [
3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler',
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'cflags_cc!': [
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '-fintercept-allocation-functions',
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        }],
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ['OS=="win"', {
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'defines': [
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'PERFTOOLS_DLL_DECL=',
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'defines!': [
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            # tcmalloc source files unconditionally define this, remove it from
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            # the list of defines that common.gypi defines globally.
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'NOMINMAX',
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies': [
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'libcmt',
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'include_dirs': [
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/windows',
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'sources!': [
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/base/elf_mem_image.cc',
3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/base/elf_mem_image.h',
3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/base/linuxthreads.cc',
3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/base/linuxthreads.h',
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/base/vdso_support.cc',
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/base/vdso_support.h',
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/maybe_threads.cc',
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/maybe_threads.h',
3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/symbolize.h',
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/system-alloc.cc',
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/system-alloc.h',
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            # included by allocator_shim.cc
3792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            'debugallocation_shim.cc',
380cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)          ],
381cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        }],
382cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        ['OS=="win" or profiling!=1', {
383cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)          'sources!': [
3845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)            # cpuprofiler
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/base/thread_lister.c',
3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/base/thread_lister.h',
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/profiledata.cc',
3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/profiledata.h',
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/profile-handler.cc',
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/profile-handler.h',
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/profiler.cc',
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        }],
39490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)        ['OS=="linux" or OS=="freebsd" or OS=="solaris" or OS=="android"', {
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'sources!': [
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/system-alloc.h',
3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/windows/port.cc',
3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/windows/port.h',
3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            # TODO(willchan): Support allocator shim later on.
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'allocator_shim.cc',
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # We enable all warnings by default, but upstream disables a few.
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # Keep "-Wno-*" flags in sync with upstream by comparing against:
4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # http://code.google.com/p/google-perftools/source/browse/trunk/Makefile.am
4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'cflags': [
4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '-Wno-sign-compare',
4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '-Wno-unused-result',
4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'cflags!': [
4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '-fvisibility=hidden',
4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'link_settings': {
4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'ldflags': [
4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              # Don't let linker rip this symbol out, otherwise the heap&cpu
4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              # profilers will not initialize properly on startup.
4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              '-Wl,-uIsHeapProfilerRunning,-uProfilerStart',
4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              # Do the same for heap leak checker.
4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              '-Wl,-u_Z21InitialMallocHook_NewPKvj,-u_Z22InitialMallocHook_MMapPKvS0_jiiix,-u_Z22InitialMallocHook_SbrkPKvi',
4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              '-Wl,-u_Z21InitialMallocHook_NewPKvm,-u_Z22InitialMallocHook_MMapPKvS0_miiil,-u_Z22InitialMallocHook_SbrkPKvl',
4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              '-Wl,-u_ZN15HeapLeakChecker12IgnoreObjectEPKv,-u_ZN15HeapLeakChecker14UnIgnoreObjectEPKv',
4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ]},
4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        }],
4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        [ 'use_vtable_verify==1', {
4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'cflags': [
4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '-fvtable-verify=preinit',
4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        }],
4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ['order_profiling != 0', {
4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'target_conditions' : [
4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            ['_toolset=="target"', {
4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              'cflags!': [ '-finstrument-functions' ],
4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            }],
4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        }],
4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # This library is linked in to src/base.gypi:base and allocator_unittests
4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # It can't depend on either and nothing else should depend on it - all
4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # other code should use the interfaced provided by base.
4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'target_name': 'allocator_extension_thunks',
4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'type': 'static_library',
4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'sources': [
4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'allocator_extension_thunks.cc',
4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        'allocator_extension_thunks.h',
4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'toolsets': ['host', 'target'],
4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'include_dirs': [
4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        '../../'
4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'conditions': [
4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ['OS=="linux" and clang_type_profiler==1', {
4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # It is undoing dependencies and cflags_cc for type_profiler which
4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # build/common.gypi injects into all targets.
4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies!': [
4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler',
4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'cflags_cc!': [
4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '-fintercept-allocation-functions',
4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        }],
4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    },
4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   ],
4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  'conditions': [
4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ['OS=="win"', {
4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'targets': [
4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'target_name': 'libcmt',
4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'type': 'none',
4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'actions': [
4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            {
4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              'action_name': 'libcmt',
4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              'inputs': [
4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                'prep_libc.py',
4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              ],
4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              'outputs': [
4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib',
4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              ],
4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              'action': [
4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                'python',
4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                'prep_libc.py',
4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                '$(VCInstallDir)lib',
4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                '<(SHARED_INTERMEDIATE_DIR)/allocator',
4862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                '<(target_arch)',
4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              ],
4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            },
4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'target_name': 'allocator_unittests',
4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'type': 'executable',
4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies': [
4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'allocator',
4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'allocator_extension_thunks',
4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../../testing/gtest.gyp:gtest',
4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'include_dirs': [
5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '.',
5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/base',
5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src',
5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../..',
5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'sources': [
5065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)            'allocator_unittest.cc',
5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../profiler/alternate_timer.cc',
5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../profiler/alternate_timer.h',
5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
5122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          'target_name': 'tcmalloc_unittest',
5132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          'type': 'executable',
5142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          'sources': [
5152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            'tcmalloc_unittest.cc',
5162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          ],
5172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          'include_dirs': [
5182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            '../..',
5192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            # For constants of TCMalloc.
5202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            '<(tcmalloc_dir)/src',
5212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          ],
5222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          'dependencies': [
5232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            '../../testing/gtest.gyp:gtest',
5242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            '../base.gyp:base',
5252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)            'allocator',
5262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          ],
5272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        },
5282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      ],
5292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }],
5302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    ['OS=="win" and target_arch=="ia32"', {
5312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      'targets': [
5322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        {
5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'target_name': 'allocator_extension_thunks_win64',
5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'type': 'static_library',
5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'sources': [
5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'allocator_extension_thunks.cc',
5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'allocator_extension_thunks.h',
5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'toolsets': ['host', 'target'],
5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'include_dirs': [
5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../../'
5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'configurations': {
5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'Common_Base': {
5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              'msvs_target_platform': 'x64',
5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            },
5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          },
5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }],
5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ['OS=="linux" and clang_type_profiler==1', {
5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Some targets in this section undo dependencies and cflags_cc for
5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # type_profiler which build/common.gypi injects into all targets.
5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'targets': [
5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'target_name': 'type_profiler',
5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'type': 'static_library',
5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies!': [
5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler',
5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'cflags_cc!': [
5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '-fintercept-allocation-functions',
5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'include_dirs': [
5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../..',
5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'sources': [
5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler.cc',
5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler.h',
5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler_control.h',
5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'toolsets': ['host', 'target'],
5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'target_name': 'type_profiler_tcmalloc',
5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'type': 'static_library',
5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies!': [
5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler',
5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'cflags_cc!': [
5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '-fintercept-allocation-functions',
5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'include_dirs': [
5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src',
5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../..',
5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'sources': [
5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler_tcmalloc.cc',
5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler_tcmalloc.h',
5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/gperftools/type_profiler_map.h',
5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/type_profiler_map.cc',
5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'target_name': 'type_profiler_unittests',
5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'type': 'executable',
5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies': [
5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../../testing/gtest.gyp:gtest',
5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../base.gyp:base',
6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'allocator',
6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler_tcmalloc',
6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'include_dirs': [
6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../..',
6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'sources': [
6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler_control.cc',
6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler_control.h',
6095d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)            'type_profiler_unittest.cc',
6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'target_name': 'type_profiler_map_unittests',
6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'type': 'executable',
6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies': [
6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../../testing/gtest.gyp:gtest',
6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../base.gyp:base',
6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'allocator',
6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'dependencies!': [
6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            'type_profiler',
6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'cflags_cc!': [
6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '-fintercept-allocation-functions',
6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'include_dirs': [
6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src',
6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '../..',
6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          'sources': [
6315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)            'type_profiler_map_unittest.cc',
6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/gperftools/type_profiler_map.h',
6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            '<(tcmalloc_dir)/src/type_profiler_map.cc',
6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ],
6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        },
6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ],
6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }],
6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ],
6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
640