Refactor Windows MessageBox fallback code.
[chromium-blink-merge.git] / chrome_elf / chrome_elf.gyp
blob3db44c6e6473c4450b274f137ebf7cc3cc20d15c
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.
5   'variables': {
6     'chromium_code': 1,
7   },
8   'includes': [
9     '../build/win_precompile.gypi',
10     '../chrome/version.gypi',
11     'blacklist.gypi',
12   ],
13   'targets': [
14     {
15       'target_name': 'chrome_elf',
16       'type': 'shared_library',
17       'include_dirs': [
18         '..',
19       ],
20       'sources': [
21         'chrome_elf.def',
22         'chrome_elf_main.cc',
23         'chrome_elf_main.h',
24       ],
25       'dependencies': [
26         'blacklist',
27         'chrome_elf_lib',
28       ],
29       'msvs_settings': {
30         'VCLinkerTool': {
31           'BaseAddress': '0x01c20000',
32           # Set /SUBSYSTEM:WINDOWS.
33           'SubSystem': '2',
34           'AdditionalDependencies!': [
35             'user32.lib',
36           ],
37           'IgnoreDefaultLibraryNames': [
38             'user32.lib',
39           ],
40         },
41       },
42     },
43     {
44       'target_name': 'chrome_elf_unittests_exe',
45       'product_name': 'chrome_elf_unittests',
46       'type': 'executable',
47       'sources': [
48         'blacklist/test/blacklist_test.cc',
49         'create_file/chrome_create_file_unittest.cc',
50         'elf_imports_unittest.cc',
51         'ntdll_cache_unittest.cc',
52       ],
53       'include_dirs': [
54         '..',
55         '<(SHARED_INTERMEDIATE_DIR)',
56       ],
57       'dependencies': [
58         'chrome_elf_lib',
59         '../base/base.gyp:base',
60         '../base/base.gyp:run_all_unittests',
61         '../base/base.gyp:test_support_base',
62         '../sandbox/sandbox.gyp:sandbox',
63         '../testing/gtest.gyp:gtest',
64         'blacklist',
65         'blacklist_test_dll_1',
66         'blacklist_test_dll_2',
67         'blacklist_test_dll_3',
68         'blacklist_test_main_dll',
69       ],
70       'conditions': [
71         ['component=="shared_library"', {
72           # In component builds, all targets depend on chrome_redirects by
73           # default. Remove it here so we are able to test it.
74           'dependencies!': [
75             '../chrome_elf/chrome_elf.gyp:chrome_redirects',
76           ],
77         }],
78       ],
79     },
80     {
81       # A dummy target to ensure that chrome_elf.dll and chrome.exe gets built
82       # when building chrome_elf_unittests.exe without introducing an
83       # explicit runtime dependency.
84       'target_name': 'chrome_elf_unittests',
85       'type': 'none',
86       'dependencies': [
87         '../chrome/chrome.gyp:chrome',
88         'chrome_elf',
89         'chrome_elf_unittests_exe',
90       ],
91     },
92     {
93       'target_name': 'chrome_elf_lib',
94       'type': 'static_library',
95       'include_dirs': [
96         '..',
97       ],
98       'sources': [
99         'chrome_elf_constants.cc',
100         'chrome_elf_constants.h',
101         'chrome_elf_types.h',
102         'create_file/chrome_create_file.cc',
103         'create_file/chrome_create_file.h',
104         'ntdll_cache.cc',
105         'ntdll_cache.h',
106       ],
107       'conditions': [
108         ['component=="shared_library"', {
109           # In component builds, all targets depend on chrome_redirects by
110           # default. Remove it here to avoid a circular dependency.
111           'dependencies!': [
112             '../chrome_elf/chrome_elf.gyp:chrome_redirects',
113           ],
114         }],
115       ],
116     },
117   ], # targets
118   'conditions': [
119     ['component=="shared_library"', {
120       'targets': [
121         {
122           'target_name': 'chrome_redirects',
123           'type': 'shared_library',
124           'include_dirs': [
125             '..',
126           ],
127           'sources': [
128             'chrome_redirects.def',
129           ],
130           'dependencies': [
131             'chrome_elf_lib',
132           ],
133           'msvs_settings': {
134             'VCLinkerTool': {
135               'BaseAddress': '0x01c10000',
136               # Set /SUBSYSTEM:WINDOWS.
137               'SubSystem': '2',
138             },
139           },
140           'conditions': [
141             ['component=="shared_library"', {
142               # In component builds, all targets depend on chrome_redirects by
143               # default. Remove it here to avoid a circular dependency.
144               'dependencies!': [
145                 '../chrome_elf/chrome_elf.gyp:chrome_redirects',
146               ],
147             }],
148           ],
149         },
150       ],
151     }],
152   ],