OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 { | 5 { |
6 'target_defaults': { | 6 'target_defaults': { |
7 'variables': { | 7 'variables': { |
8 # This code gets run a lot and debugged rarely, so it should be fast | 8 # This code gets run a lot and debugged rarely, so it should be fast |
9 # by default. See http://crbug.com/388949. | 9 # by default. See http://crbug.com/388949. |
10 'debug_optimize': '2', | 10 'debug_optimize': '2', |
11 'win_debug_Optimization': '0', | 11 'win_debug_Optimization': '0', |
12 # Run time checks are incompatible with any level of optimizations. | 12 # Run time checks are incompatible with any level of optimizations. |
13 'win_debug_RuntimeChecks': '0', | 13 'win_debug_RuntimeChecks': '0', |
14 }, | 14 }, |
15 }, | 15 }, |
16 'variables': { | 16 'variables': { |
17 'tcmalloc_dir': '../../third_party/tcmalloc/chromium', | 17 'tcmalloc_dir': '../../third_party/tcmalloc/chromium', |
18 'use_vtable_verify%': 0, | 18 'use_vtable_verify%': 0, |
19 # Provide a way to force disable debugallocation in Debug builds | 19 # Provide a way to force disable debugallocation in Debug builds |
20 # e.g. for profiling (it's more rare to profile Debug builds, | 20 # e.g. for profiling (it's more rare to profile Debug builds, |
21 # but people sometimes need to do that). | 21 # but people sometimes need to do that). |
22 'disable_debugallocation%': 0, | 22 'disable_debugallocation%': 0, |
23 }, | 23 }, |
24 'targets': [ | 24 'targets': [ |
25 # Only executables and not libraries should depend on the | 25 # Only executables and not libraries should depend on the |
26 # allocator target; only the application (the final executable) | 26 # allocator target; only the application (the final executable) |
27 # knows what allocator makes sense. | 27 # knows what allocator makes sense. |
28 { | 28 { |
29 'target_name': 'allocator', | 29 'target_name': 'allocator', |
30 'variables': { | 30 # TODO(primiano): This should be type: none for the noop cases (an empty |
31 'conditions': [ | 31 # static lib can confuse some gyp generators). Fix it once the refactoring |
32 ['use_allocator!="none" or win_use_allocator_shim==1', { | 32 # (crbug.com/564618) bring this file to a saner state (fewer conditions). |
33 'allocator_target_type%': 'static_library', | 33 'type': 'static_library', |
34 }, { | |
35 'allocator_target_type%': 'none', | |
36 }], | |
37 ], | |
38 }, | |
39 'type': '<(allocator_target_type)', | |
40 'toolsets': ['host', 'target'], | |
41 'conditions': [ | 34 'conditions': [ |
42 ['OS=="win" and win_use_allocator_shim==1', { | 35 ['OS=="win" and win_use_allocator_shim==1', { |
43 'msvs_settings': { | 36 'msvs_settings': { |
44 # TODO(sgk): merge this with build/common.gypi settings | 37 # TODO(sgk): merge this with build/common.gypi settings |
45 'VCLibrarianTool': { | 38 'VCLibrarianTool': { |
46 'AdditionalOptions': ['/ignore:4006,4221'], | 39 'AdditionalOptions': ['/ignore:4006,4221'], |
47 }, | 40 }, |
48 'VCLinkerTool': { | 41 'VCLinkerTool': { |
49 'AdditionalOptions': ['/ignore:4006'], | 42 'AdditionalOptions': ['/ignore:4006'], |
50 }, | 43 }, |
51 }, | 44 }, |
52 'dependencies': [ | 45 'dependencies': [ |
53 'libcmt', | 46 'libcmt', |
54 ], | 47 ], |
55 'include_dirs': [ | 48 'include_dirs': [ |
56 '../..', | 49 '../..', |
57 ], | 50 ], |
58 'sources': [ | 51 'sources': [ |
59 'allocator_shim_win.cc', | 52 'allocator_shim_win.cc', |
60 ], | 53 ], |
61 'link_settings': { | |
62 'msvs_settings': { | |
63 'VCLinkerTool': { | |
64 'IgnoreDefaultLibraryNames': ['libcmtd.lib', 'libcmt.lib'], | |
65 'AdditionalDependencies': [ | |
66 '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib' | |
67 ], | |
68 }, | |
69 }, | |
70 }, | |
71 'configurations': { | 54 'configurations': { |
72 'Debug_Base': { | 55 'Debug_Base': { |
73 'msvs_settings': { | 56 'msvs_settings': { |
74 'VCCLCompilerTool': { | 57 'VCCLCompilerTool': { |
75 'RuntimeLibrary': '0', | 58 'RuntimeLibrary': '0', |
76 }, | 59 }, |
77 }, | 60 }, |
78 }, | 61 }, |
| 62 }, |
| 63 'direct_dependent_settings': { |
| 64 'configurations': { |
| 65 'Common_Base': { |
| 66 'msvs_settings': { |
| 67 'VCLinkerTool': { |
| 68 'IgnoreDefaultLibraryNames': ['libcmtd.lib', 'libcmt.lib'], |
| 69 'AdditionalDependencies': [ |
| 70 '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib' |
| 71 ], |
| 72 }, |
| 73 }, |
| 74 }, |
| 75 }, |
79 }, | 76 }, |
80 }], # OS=="win" | 77 }], # OS=="win" |
81 ['use_allocator=="tcmalloc"', { | 78 ['use_allocator=="tcmalloc"', { |
82 # Disable the heap checker in tcmalloc. | 79 # Disable the heap checker in tcmalloc. |
83 'defines': [ | 80 'defines': [ |
84 'NO_HEAP_CHECK', | 81 'NO_HEAP_CHECK', |
85 ], | 82 ], |
86 'dependencies': [ | 83 'dependencies': [ |
87 '../third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_
annotations', | 84 '../third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_
annotations', |
88 ], | 85 ], |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 'target_conditions' : [ | 365 'target_conditions' : [ |
369 ['_toolset=="target"', { | 366 ['_toolset=="target"', { |
370 'cflags!': [ '-finstrument-functions' ], | 367 'cflags!': [ '-finstrument-functions' ], |
371 }], | 368 }], |
372 ], | 369 ], |
373 }], | 370 }], |
374 ], # conditions of 'allocator' target. | 371 ], # conditions of 'allocator' target. |
375 }, # 'allocator' target. | 372 }, # 'allocator' target. |
376 ], # targets. | 373 ], # targets. |
377 'conditions': [ | 374 'conditions': [ |
378 ['OS=="win" and win_use_allocator_shim==1', { | 375 ['OS=="win" and component!="shared_library"', { |
379 'targets': [ | 376 'targets': [ |
380 { | 377 { |
381 'target_name': 'libcmt', | 378 'target_name': 'libcmt', |
382 'type': 'none', | 379 'type': 'none', |
383 'actions': [ | 380 'actions': [ |
384 { | 381 { |
385 'action_name': 'libcmt', | 382 'action_name': 'libcmt', |
386 'inputs': [ | 383 'inputs': [ |
387 'prep_libc.py', | 384 'prep_libc.py', |
388 ], | 385 ], |
389 'outputs': [ | 386 'outputs': [ |
390 '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib', | 387 '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib', |
391 ], | 388 ], |
392 'action': [ | 389 'action': [ |
393 'python', | 390 'python', |
394 'prep_libc.py', | 391 'prep_libc.py', |
395 '$(VCInstallDir)lib', | 392 '$(VCInstallDir)lib', |
396 '<(SHARED_INTERMEDIATE_DIR)/allocator', | 393 '<(SHARED_INTERMEDIATE_DIR)/allocator', |
397 '<(target_arch)', | 394 '<(target_arch)', |
398 ], | 395 ], |
399 }, | 396 }, |
400 ], | 397 ], |
401 }, | 398 }, |
402 ], | 399 ], |
403 }], | 400 }], |
404 ], | 401 ], |
405 } | 402 } |
OLD | NEW |