- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / chrome_syzygy.gypi
1 # Copyright 2013 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.
4
5 # Intended to be included by chrome_syzygy.gyp. A variable 'dll_name' should
6 # be set to the base name of the DLL. This is used to generate the build steps
7 # for both chrome.dll and chrome_child.dll when in multiple dll mode.
8 {
9   # Reorder or instrument the initial chrome DLL executable, placing the
10   # optimized output and corresponding PDB file into the "syzygy"
11   # subdirectory.
12   # This target won't build in fastbuild, since there are no PDBs.
13   'dependencies': [
14     '<(DEPTH)/chrome/chrome.gyp:<(dll_name)_dll',
15   ],
16   'variables': {
17     'dest_dir': '<(PRODUCT_DIR)/syzygy',
18   },
19   'conditions': [
20     ['asan!=1', {
21       # Reorder chrome DLL executable.
22       # If there's a matching chrome.dll-ordering.json file present in
23       # the output directory, chrome.dll will be ordered according to
24       # that, otherwise it will be randomized.
25       'actions': [
26         {
27           'action_name': 'Reorder Chrome with Syzygy',
28           'msvs_cygwin_shell': 0,
29           'inputs': [
30             '<(PRODUCT_DIR)/<(dll_name).dll',
31             '<(PRODUCT_DIR)/<(dll_name).dll.pdb',
32           ],
33           'outputs': [
34             '<(dest_dir)/<(dll_name).dll',
35             '<(dest_dir)/<(dll_name).dll.pdb',
36           ],
37           'action': [
38             'python',
39             '<(DEPTH)/chrome/tools/build/win/syzygy_reorder.py',
40             '--input_executable', '<(PRODUCT_DIR)/<(dll_name).dll',
41             '--input_symbol', '<(PRODUCT_DIR)/<(dll_name).dll.pdb',
42             '--destination_dir', '<(dest_dir)',
43           ],
44         },
45       ],
46     }, {
47       # Instrument chrome DLL executable with SyzyAsan.
48       'actions': [
49         {
50           'action_name': 'Instrument Chrome with SyzyAsan',
51           'msvs_cygwin_shell': 0,
52           'inputs': [
53             '<(DEPTH)/chrome/tools/build/win/win-syzyasan-filter.txt',
54             '<(PRODUCT_DIR)/<(dll_name).dll',
55           ],
56           'outputs': [
57             '<(dest_dir)/<(dll_name).dll',
58             '<(dest_dir)/<(dll_name).dll.pdb',
59             '<(dest_dir)/win-syzyasan-filter-<(dll_name).txt.json',
60           ],
61           'action': [
62             'python',
63             '<(DEPTH)/chrome/tools/build/win/syzygy_instrument.py',
64             '--mode', 'asan',
65             '--input_executable', '<(PRODUCT_DIR)/<(dll_name).dll',
66             '--input_symbol', '<(PRODUCT_DIR)/<(dll_name).dll.pdb',
67             '--filter',
68             '<(DEPTH)/chrome/tools/build/win/win-syzyasan-filter.txt',
69             '--output-filter-file',
70             '<(dest_dir)/win-syzyasan-filter-<(dll_name).txt.json',
71             '--destination_dir', '<(dest_dir)',
72           ],
73         },
74       ],
75       'dependencies': [
76         'copy_syzyasan_binaries',
77       ],
78     }],
79   ],
80 }