Make castv2 performance test work.
[chromium-blink-merge.git] / base / allocator / allocator.gyp
blobd426c9c3f17eca74147486e3c595ba6582c31fd2
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'target_defaults': {
7     'variables': {
8       # This code gets run a lot and debugged rarely, so it should be fast
9       # by default. See http://crbug.com/388949.
10       'debug_optimize': '2',
11       'win_debug_Optimization': '0',
12       # Run time checks are incompatible with any level of optimizations.
13       'win_debug_RuntimeChecks': '0',
14     },
15   },
16   'variables': {
17     'tcmalloc_dir': '../../third_party/tcmalloc/chromium',
18     'use_vtable_verify%': 0,
19   },
20   'targets': [
21     # Only executables and not libraries should depend on the
22     # allocator target; only the application (the final executable)
23     # knows what allocator makes sense.
24     {
25       'target_name': 'allocator',
26       'type': 'static_library',
27       'direct_dependent_settings': {
28         'configurations': {
29           'Common_Base': {
30             'msvs_settings': {
31               'VCLinkerTool': {
32                 'IgnoreDefaultLibraryNames': ['libcmtd.lib', 'libcmt.lib'],
33                 'AdditionalDependencies': [
34                   '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib'
35                 ],
36               },
37             },
38           },
39         },
40         'conditions': [
41           ['OS=="win"', {
42             'defines': [
43               'PERFTOOLS_DLL_DECL=',
44             ],
45           }],
46         ],
47       },
48       'dependencies': [
49         '../third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
50       ],
51       'msvs_settings': {
52         # TODO(sgk):  merge this with build/common.gypi settings
53         'VCLibrarianTool': {
54           'AdditionalOptions': ['/ignore:4006,4221'],
55         },
56         'VCLinkerTool': {
57           'AdditionalOptions': ['/ignore:4006'],
58         },
59       },
60       'configurations': {
61         'Debug_Base': {
62           'msvs_settings': {
63             'VCCLCompilerTool': {
64               'RuntimeLibrary': '0',
65             },
66           },
67           'variables': {
68             # Provide a way to force disable debugallocation in Debug builds,
69             # e.g. for profiling (it's more rare to profile Debug builds,
70             # but people sometimes need to do that).
71             'disable_debugallocation%': 0,
72           },
73           'conditions': [
74             ['disable_debugallocation==0', {
75               'defines': [
76                 # Use debugallocation for Debug builds to catch problems early
77                 # and cleanly, http://crbug.com/30715 .
78                 'TCMALLOC_FOR_DEBUGALLOCATION',
79               ],
80             }],
81           ],
82         },
83       },
84       'conditions': [
85         ['use_allocator=="tcmalloc"', {
86           # Disable the heap checker in tcmalloc.
87           'defines': [
88             'NO_HEAP_CHECK',
89           ],
90           'include_dirs': [
91             '.',
92             '<(tcmalloc_dir)/src/base',
93             '<(tcmalloc_dir)/src',
94             '../..',
95           ],
96           'sources': [
97             # Generated for our configuration from tcmalloc's build
98             # and checked in.
99             '<(tcmalloc_dir)/src/config.h',
100             '<(tcmalloc_dir)/src/config_android.h',
101             '<(tcmalloc_dir)/src/config_linux.h',
102             '<(tcmalloc_dir)/src/config_win.h',
104             # all tcmalloc native and forked files
105             '<(tcmalloc_dir)/src/addressmap-inl.h',
106             '<(tcmalloc_dir)/src/base/abort.cc',
107             '<(tcmalloc_dir)/src/base/abort.h',
108             '<(tcmalloc_dir)/src/base/arm_instruction_set_select.h',
109             '<(tcmalloc_dir)/src/base/atomicops-internals-arm-generic.h',
110             '<(tcmalloc_dir)/src/base/atomicops-internals-arm-v6plus.h',
111             '<(tcmalloc_dir)/src/base/atomicops-internals-linuxppc.h',
112             '<(tcmalloc_dir)/src/base/atomicops-internals-macosx.h',
113             '<(tcmalloc_dir)/src/base/atomicops-internals-windows.h',
114             '<(tcmalloc_dir)/src/base/atomicops-internals-x86.cc',
115             '<(tcmalloc_dir)/src/base/atomicops-internals-x86.h',
116             '<(tcmalloc_dir)/src/base/atomicops.h',
117             '<(tcmalloc_dir)/src/base/basictypes.h',
118             '<(tcmalloc_dir)/src/base/commandlineflags.h',
119             '<(tcmalloc_dir)/src/base/cycleclock.h',
120             # We don't list dynamic_annotations.c since its copy is already
121             # present in the dynamic_annotations target.
122             '<(tcmalloc_dir)/src/base/dynamic_annotations.h',
123             '<(tcmalloc_dir)/src/base/elf_mem_image.cc',
124             '<(tcmalloc_dir)/src/base/elf_mem_image.h',
125             '<(tcmalloc_dir)/src/base/elfcore.h',
126             '<(tcmalloc_dir)/src/base/googleinit.h',
127             '<(tcmalloc_dir)/src/base/linux_syscall_support.h',
128             '<(tcmalloc_dir)/src/base/linuxthreads.cc',
129             '<(tcmalloc_dir)/src/base/linuxthreads.h',
130             '<(tcmalloc_dir)/src/base/logging.cc',
131             '<(tcmalloc_dir)/src/base/logging.h',
132             '<(tcmalloc_dir)/src/base/low_level_alloc.cc',
133             '<(tcmalloc_dir)/src/base/low_level_alloc.h',
134             '<(tcmalloc_dir)/src/base/simple_mutex.h',
135             '<(tcmalloc_dir)/src/base/spinlock.cc',
136             '<(tcmalloc_dir)/src/base/spinlock.h',
137             '<(tcmalloc_dir)/src/base/spinlock_internal.cc',
138             '<(tcmalloc_dir)/src/base/spinlock_internal.h',
139             '<(tcmalloc_dir)/src/base/spinlock_linux-inl.h',
140             '<(tcmalloc_dir)/src/base/spinlock_posix-inl.h',
141             '<(tcmalloc_dir)/src/base/spinlock_win32-inl.h',
142             '<(tcmalloc_dir)/src/base/stl_allocator.h',
143             '<(tcmalloc_dir)/src/base/synchronization_profiling.h',
144             '<(tcmalloc_dir)/src/base/sysinfo.cc',
145             '<(tcmalloc_dir)/src/base/sysinfo.h',
146             '<(tcmalloc_dir)/src/base/thread_annotations.h',
147             '<(tcmalloc_dir)/src/base/thread_lister.c',
148             '<(tcmalloc_dir)/src/base/thread_lister.h',
149             '<(tcmalloc_dir)/src/base/vdso_support.cc',
150             '<(tcmalloc_dir)/src/base/vdso_support.h',
151             '<(tcmalloc_dir)/src/central_freelist.cc',
152             '<(tcmalloc_dir)/src/central_freelist.h',
153             '<(tcmalloc_dir)/src/common.cc',
154             '<(tcmalloc_dir)/src/common.h',
155             '<(tcmalloc_dir)/src/debugallocation.cc',
156             '<(tcmalloc_dir)/src/deep-heap-profile.cc',
157             '<(tcmalloc_dir)/src/deep-heap-profile.h',
158             '<(tcmalloc_dir)/src/free_list.cc',
159             '<(tcmalloc_dir)/src/free_list.h',
160             '<(tcmalloc_dir)/src/getpc.h',
161             '<(tcmalloc_dir)/src/gperftools/heap-checker.h',
162             '<(tcmalloc_dir)/src/gperftools/heap-profiler.h',
163             '<(tcmalloc_dir)/src/gperftools/malloc_extension.h',
164             '<(tcmalloc_dir)/src/gperftools/malloc_extension_c.h',
165             '<(tcmalloc_dir)/src/gperftools/malloc_hook.h',
166             '<(tcmalloc_dir)/src/gperftools/malloc_hook_c.h',
167             '<(tcmalloc_dir)/src/gperftools/profiler.h',
168             '<(tcmalloc_dir)/src/gperftools/stacktrace.h',
169             '<(tcmalloc_dir)/src/gperftools/tcmalloc.h',
170             '<(tcmalloc_dir)/src/heap-checker-bcad.cc',
171             '<(tcmalloc_dir)/src/heap-checker.cc',
172             '<(tcmalloc_dir)/src/heap-profile-table.cc',
173             '<(tcmalloc_dir)/src/heap-profile-table.h',
174             '<(tcmalloc_dir)/src/heap-profiler.cc',
175             '<(tcmalloc_dir)/src/internal_logging.cc',
176             '<(tcmalloc_dir)/src/internal_logging.h',
177             '<(tcmalloc_dir)/src/libc_override.h',
178             '<(tcmalloc_dir)/src/libc_override_gcc_and_weak.h',
179             '<(tcmalloc_dir)/src/libc_override_glibc.h',
180             '<(tcmalloc_dir)/src/libc_override_osx.h',
181             '<(tcmalloc_dir)/src/libc_override_redefine.h',
182             '<(tcmalloc_dir)/src/linked_list.h',
183             '<(tcmalloc_dir)/src/malloc_extension.cc',
184             '<(tcmalloc_dir)/src/malloc_hook-inl.h',
185             '<(tcmalloc_dir)/src/malloc_hook.cc',
186             '<(tcmalloc_dir)/src/malloc_hook_mmap_freebsd.h',
187             '<(tcmalloc_dir)/src/malloc_hook_mmap_linux.h',
188             '<(tcmalloc_dir)/src/maybe_threads.cc',
189             '<(tcmalloc_dir)/src/maybe_threads.h',
190             '<(tcmalloc_dir)/src/memfs_malloc.cc',
191             '<(tcmalloc_dir)/src/memory_region_map.cc',
192             '<(tcmalloc_dir)/src/memory_region_map.h',
193             '<(tcmalloc_dir)/src/packed-cache-inl.h',
194             '<(tcmalloc_dir)/src/page_heap.cc',
195             '<(tcmalloc_dir)/src/page_heap.h',
196             '<(tcmalloc_dir)/src/page_heap_allocator.h',
197             '<(tcmalloc_dir)/src/pagemap.h',
198             '<(tcmalloc_dir)/src/profile-handler.cc',
199             '<(tcmalloc_dir)/src/profile-handler.h',
200             '<(tcmalloc_dir)/src/profiledata.cc',
201             '<(tcmalloc_dir)/src/profiledata.h',
202             '<(tcmalloc_dir)/src/profiler.cc',
203             '<(tcmalloc_dir)/src/raw_printer.cc',
204             '<(tcmalloc_dir)/src/raw_printer.h',
205             '<(tcmalloc_dir)/src/sampler.cc',
206             '<(tcmalloc_dir)/src/sampler.h',
207             '<(tcmalloc_dir)/src/span.cc',
208             '<(tcmalloc_dir)/src/span.h',
209             '<(tcmalloc_dir)/src/stack_trace_table.cc',
210             '<(tcmalloc_dir)/src/stack_trace_table.h',
211             '<(tcmalloc_dir)/src/stacktrace.cc',
212             '<(tcmalloc_dir)/src/stacktrace_arm-inl.h',
213             '<(tcmalloc_dir)/src/stacktrace_config.h',
214             '<(tcmalloc_dir)/src/stacktrace_generic-inl.h',
215             '<(tcmalloc_dir)/src/stacktrace_libunwind-inl.h',
216             '<(tcmalloc_dir)/src/stacktrace_powerpc-inl.h',
217             '<(tcmalloc_dir)/src/stacktrace_win32-inl.h',
218             '<(tcmalloc_dir)/src/stacktrace_with_context.cc',
219             '<(tcmalloc_dir)/src/stacktrace_x86-inl.h',
220             '<(tcmalloc_dir)/src/static_vars.cc',
221             '<(tcmalloc_dir)/src/static_vars.h',
222             '<(tcmalloc_dir)/src/symbolize.cc',
223             '<(tcmalloc_dir)/src/symbolize.h',
224             '<(tcmalloc_dir)/src/system-alloc.cc',
225             '<(tcmalloc_dir)/src/system-alloc.h',
226             '<(tcmalloc_dir)/src/tcmalloc.cc',
227             '<(tcmalloc_dir)/src/tcmalloc_guard.h',
228             '<(tcmalloc_dir)/src/thread_cache.cc',
229             '<(tcmalloc_dir)/src/thread_cache.h',
231             'debugallocation_shim.cc',
232           ],
233           # sources! means that these are not compiled directly.
234           'sources!': [
235             # We simply don't use these, but list them above so that IDE
236             # users can view the full available source for reference, etc.
237             '<(tcmalloc_dir)/src/addressmap-inl.h',
238             '<(tcmalloc_dir)/src/base/atomicops-internals-linuxppc.h',
239             '<(tcmalloc_dir)/src/base/atomicops-internals-macosx.h',
240             '<(tcmalloc_dir)/src/base/atomicops-internals-x86-msvc.h',
241             '<(tcmalloc_dir)/src/base/atomicops-internals-x86.h',
242             '<(tcmalloc_dir)/src/base/atomicops.h',
243             '<(tcmalloc_dir)/src/base/basictypes.h',
244             '<(tcmalloc_dir)/src/base/commandlineflags.h',
245             '<(tcmalloc_dir)/src/base/cycleclock.h',
246             '<(tcmalloc_dir)/src/base/elf_mem_image.h',
247             '<(tcmalloc_dir)/src/base/elfcore.h',
248             '<(tcmalloc_dir)/src/base/googleinit.h',
249             '<(tcmalloc_dir)/src/base/linux_syscall_support.h',
250             '<(tcmalloc_dir)/src/base/simple_mutex.h',
251             '<(tcmalloc_dir)/src/base/spinlock_linux-inl.h',
252             '<(tcmalloc_dir)/src/base/spinlock_posix-inl.h',
253             '<(tcmalloc_dir)/src/base/spinlock_win32-inl.h',
254             '<(tcmalloc_dir)/src/base/stl_allocator.h',
255             '<(tcmalloc_dir)/src/base/thread_annotations.h',
256             '<(tcmalloc_dir)/src/getpc.h',
257             '<(tcmalloc_dir)/src/gperftools/heap-checker.h',
258             '<(tcmalloc_dir)/src/gperftools/heap-profiler.h',
259             '<(tcmalloc_dir)/src/gperftools/malloc_extension.h',
260             '<(tcmalloc_dir)/src/gperftools/malloc_extension_c.h',
261             '<(tcmalloc_dir)/src/gperftools/malloc_hook.h',
262             '<(tcmalloc_dir)/src/gperftools/malloc_hook_c.h',
263             '<(tcmalloc_dir)/src/gperftools/profiler.h',
264             '<(tcmalloc_dir)/src/gperftools/stacktrace.h',
265             '<(tcmalloc_dir)/src/gperftools/tcmalloc.h',
266             '<(tcmalloc_dir)/src/heap-checker-bcad.cc',
267             '<(tcmalloc_dir)/src/heap-checker.cc',
268             '<(tcmalloc_dir)/src/libc_override.h',
269             '<(tcmalloc_dir)/src/libc_override_gcc_and_weak.h',
270             '<(tcmalloc_dir)/src/libc_override_glibc.h',
271             '<(tcmalloc_dir)/src/libc_override_osx.h',
272             '<(tcmalloc_dir)/src/libc_override_redefine.h',
273             '<(tcmalloc_dir)/src/malloc_hook_mmap_freebsd.h',
274             '<(tcmalloc_dir)/src/malloc_hook_mmap_linux.h',
275             '<(tcmalloc_dir)/src/memfs_malloc.cc',
276             '<(tcmalloc_dir)/src/packed-cache-inl.h',
277             '<(tcmalloc_dir)/src/page_heap_allocator.h',
278             '<(tcmalloc_dir)/src/pagemap.h',
279             '<(tcmalloc_dir)/src/stacktrace_arm-inl.h',
280             '<(tcmalloc_dir)/src/stacktrace_config.h',
281             '<(tcmalloc_dir)/src/stacktrace_generic-inl.h',
282             '<(tcmalloc_dir)/src/stacktrace_libunwind-inl.h',
283             '<(tcmalloc_dir)/src/stacktrace_powerpc-inl.h',
284             '<(tcmalloc_dir)/src/stacktrace_win32-inl.h',
285             '<(tcmalloc_dir)/src/stacktrace_with_context.cc',
286             '<(tcmalloc_dir)/src/stacktrace_x86-inl.h',
287             '<(tcmalloc_dir)/src/tcmalloc_guard.h',
289             # Included by debugallocation_shim.cc.
290             '<(tcmalloc_dir)/src/debugallocation.cc',
291             '<(tcmalloc_dir)/src/tcmalloc.cc',
292           ]
293         },{
294           'include_dirs': [
295             '.',
296             '../..',
297           ],
298         }],
299         ['OS=="linux" and clang_type_profiler==1', {
300           'dependencies': [
301             'type_profiler_tcmalloc',
302           ],
303           # It is undoing dependencies and cflags_cc for type_profiler which
304           # build/common.gypi injects into all targets.
305           'dependencies!': [
306             'type_profiler',
307           ],
308           'cflags_cc!': [
309             '-fintercept-allocation-functions',
310           ],
311         }],
312         ['OS=="win"', {
313           'dependencies': [
314             'libcmt',
315           ],
316           'sources': [
317             'allocator_shim_win.cc',
318           ],
319         }],
320         ['profiling!=1', {
321           'sources!': [
322             # cpuprofiler
323             '<(tcmalloc_dir)/src/base/thread_lister.c',
324             '<(tcmalloc_dir)/src/base/thread_lister.h',
325             '<(tcmalloc_dir)/src/profile-handler.cc',
326             '<(tcmalloc_dir)/src/profile-handler.h',
327             '<(tcmalloc_dir)/src/profiledata.cc',
328             '<(tcmalloc_dir)/src/profiledata.h',
329             '<(tcmalloc_dir)/src/profiler.cc',
330           ],
331         }],
332         ['OS=="linux" or OS=="freebsd" or OS=="solaris" or OS=="android"', {
333           'sources!': [
334             '<(tcmalloc_dir)/src/system-alloc.h',
335           ],
336           # We enable all warnings by default, but upstream disables a few.
337           # Keep "-Wno-*" flags in sync with upstream by comparing against:
338           # http://code.google.com/p/google-perftools/source/browse/trunk/Makefile.am
339           'cflags': [
340             '-Wno-sign-compare',
341             '-Wno-unused-result',
342           ],
343           'cflags!': [
344             '-fvisibility=hidden',
345           ],
346           'link_settings': {
347             'ldflags': [
348               # Don't let linker rip this symbol out, otherwise the heap&cpu
349               # profilers will not initialize properly on startup.
350               '-Wl,-uIsHeapProfilerRunning,-uProfilerStart',
351               # Do the same for heap leak checker.
352               '-Wl,-u_Z21InitialMallocHook_NewPKvj,-u_Z22InitialMallocHook_MMapPKvS0_jiiix,-u_Z22InitialMallocHook_SbrkPKvi',
353               '-Wl,-u_Z21InitialMallocHook_NewPKvm,-u_Z22InitialMallocHook_MMapPKvS0_miiil,-u_Z22InitialMallocHook_SbrkPKvl',
354               '-Wl,-u_ZN15HeapLeakChecker12IgnoreObjectEPKv,-u_ZN15HeapLeakChecker14UnIgnoreObjectEPKv',
355           ]},
356         }],
357         [ 'use_vtable_verify==1', {
358           'cflags': [
359             '-fvtable-verify=preinit',
360           ],
361         }],
362         ['order_profiling != 0', {
363           'target_conditions' : [
364             ['_toolset=="target"', {
365               'cflags!': [ '-finstrument-functions' ],
366             }],
367           ],
368         }],
369       ],
370     },
371     {
372       # This library is linked in to src/base.gypi:base and allocator_unittests
373       # It can't depend on either and nothing else should depend on it - all
374       # other code should use the interfaced provided by base.
375       'target_name': 'allocator_extension_thunks',
376       'type': 'static_library',
377       'sources': [
378         'allocator_extension_thunks.cc',
379         'allocator_extension_thunks.h',
380       ],
381       'toolsets': ['host', 'target'],
382       'include_dirs': [
383         '../../'
384       ],
385       'conditions': [
386         ['OS=="linux" and clang_type_profiler==1', {
387           # It is undoing dependencies and cflags_cc for type_profiler which
388           # build/common.gypi injects into all targets.
389           'dependencies!': [
390             'type_profiler',
391           ],
392           'cflags_cc!': [
393             '-fintercept-allocation-functions',
394           ],
395         }],
396       ],
397     },
398    ],
399   'conditions': [
400     ['OS=="win"', {
401       'targets': [
402         {
403           'target_name': 'libcmt',
404           'type': 'none',
405           'actions': [
406             {
407               'action_name': 'libcmt',
408               'inputs': [
409                 'prep_libc.py',
410               ],
411               'outputs': [
412                 '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib',
413               ],
414               'action': [
415                 'python',
416                 'prep_libc.py',
417                 '$(VCInstallDir)lib',
418                 '<(SHARED_INTERMEDIATE_DIR)/allocator',
419                 '<(target_arch)',
420               ],
421             },
422           ],
423         },
424         {
425           'target_name': 'allocator_unittests',
426           'type': 'executable',
427           'dependencies': [
428             'allocator',
429             'allocator_extension_thunks',
430             '../../testing/gtest.gyp:gtest',
431           ],
432           'include_dirs': [
433             '.',
434             '../..',
435           ],
436           'sources': [
437             '../profiler/alternate_timer.cc',
438             '../profiler/alternate_timer.h',
439             'allocator_unittest.cc',
440           ],
441         },
442       ],
443     }],
444     ['OS=="win" and target_arch=="ia32"', {
445       'targets': [
446         {
447           'target_name': 'allocator_extension_thunks_win64',
448           'type': 'static_library',
449           'sources': [
450             'allocator_extension_thunks.cc',
451             'allocator_extension_thunks.h',
452           ],
453           'toolsets': ['host', 'target'],
454           'include_dirs': [
455             '../../'
456           ],
457           'configurations': {
458             'Common_Base': {
459               'msvs_target_platform': 'x64',
460             },
461           },
462         },
463       ],
464     }],
465     ['OS=="linux" and clang_type_profiler==1', {
466       # Some targets in this section undo dependencies and cflags_cc for
467       # type_profiler which build/common.gypi injects into all targets.
468       'targets': [
469         {
470           'target_name': 'type_profiler',
471           'type': 'static_library',
472           'dependencies!': [
473             'type_profiler',
474           ],
475           'cflags_cc!': [
476             '-fintercept-allocation-functions',
477           ],
478           'include_dirs': [
479             '../..',
480           ],
481           'sources': [
482             'type_profiler.cc',
483             'type_profiler.h',
484             'type_profiler_control.h',
485           ],
486           'toolsets': ['host', 'target'],
487         },
488         {
489           'target_name': 'type_profiler_tcmalloc',
490           'type': 'static_library',
491           'dependencies!': [
492             'type_profiler',
493           ],
494           'cflags_cc!': [
495             '-fintercept-allocation-functions',
496           ],
497           'include_dirs': [
498             '<(tcmalloc_dir)/src',
499             '../..',
500           ],
501           'sources': [
502             '<(tcmalloc_dir)/src/gperftools/type_profiler_map.h',
503             '<(tcmalloc_dir)/src/type_profiler_map.cc',
504             'type_profiler_tcmalloc.cc',
505             'type_profiler_tcmalloc.h',
506           ],
507         },
508         {
509           'target_name': 'type_profiler_unittests',
510           'type': 'executable',
511           'dependencies': [
512             '../../testing/gtest.gyp:gtest',
513             '../base.gyp:base',
514             'allocator',
515             'type_profiler_tcmalloc',
516           ],
517           'include_dirs': [
518             '../..',
519           ],
520           'sources': [
521             'type_profiler_control.cc',
522             'type_profiler_control.h',
523             'type_profiler_unittest.cc',
524           ],
525         },
526         {
527           'target_name': 'type_profiler_map_unittests',
528           'type': 'executable',
529           'dependencies': [
530             '../../testing/gtest.gyp:gtest',
531             '../base.gyp:base',
532             'allocator',
533           ],
534           'dependencies!': [
535             'type_profiler',
536           ],
537           'cflags_cc!': [
538             '-fintercept-allocation-functions',
539           ],
540           'include_dirs': [
541             '<(tcmalloc_dir)/src',
542             '../..',
543           ],
544           'sources': [
545             '<(tcmalloc_dir)/src/gperftools/type_profiler_map.h',
546             '<(tcmalloc_dir)/src/type_profiler_map.cc',
547             'type_profiler_map_unittest.cc',
548           ],
549         },
550       ],
551     }],
552     ['use_allocator=="tcmalloc"', {
553       'targets': [
554          {
555            'target_name': 'tcmalloc_unittest',
556            'type': 'executable',
557            'sources': [
558              'tcmalloc_unittest.cc',
559            ],
560            'include_dirs': [
561              '<(tcmalloc_dir)/src',
562              '../..',
563            ],
564            'dependencies': [
565              '../../testing/gtest.gyp:gtest',
566              'allocator',
567           ],
568         },
569       ],
570     }],
571   ],