Figure out the default graphics card on the Browser process
[chromium-blink-merge.git] / remoting / remoting.gyp
blob0f40d356663ce4fecd1cfe3fa22856c416d2875b
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   'variables': {
7     'chromium_code': 1,
9     # Set this to run the jscompile checks after building the webapp.
10     'run_jscompile%': 1,
12     # Set this to enable cast mode on the android client.
13     'enable_cast%': 0,
15     'variables': {
16       'conditions': [
17         # Enable the multi-process host on Windows by default.
18         ['OS=="win"', {
19           'remoting_multi_process%': 1,
20         }, {
21           'remoting_multi_process%': 0,
22         }],
23       ],
24     },
26     'remoting_multi_process%': '<(remoting_multi_process)',
27     'remoting_rdp_session%': 1,
29     'branding_path': '../remoting/branding_<(branding)',
31     'conditions': [
32       ['OS=="mac"', {
33         'mac_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_BUNDLE_ID@")',
34         'mac_creator': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_CREATOR@")',
35       }],
36       ['OS=="win"', {
37         # Each CLSID is a hash of the current version string salted with an
38         # arbitrary GUID. This ensures that the newly installed COM classes will
39         # be used during/after upgrade even if there are old instances running
40         # already.
41         # The IDs are not random to avoid rebuilding host when it's not
42         # necessary.
43         'daemon_controller_clsid':
44             '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'655bd819-c08c-4b04-80c2-f160739ff6ef\'), \'<(version_full)\')")',
45         'rdp_desktop_session_clsid':
46             '<!(python -c "import uuid; print uuid.uuid5(uuid.UUID(\'6a7699f0-ee43-43e7-aa30-a6738f9bd470\'), \'<(version_full)\')")',
48         # Java is not available on Windows bots, so we need to disable
49         # JScompile checks.
50         'run_jscompile': 0,
52       }],
53     ],
54   },
56   'includes': [
57     '../chrome/js_unittest_vars.gypi',
58     'remoting_android.gypi',
59     'remoting_client.gypi',
60     'remoting_host.gypi',
61     'remoting_host_srcs.gypi',
62     'remoting_key_tester.gypi',
63     'remoting_locales.gypi',
64     'remoting_srcs.gypi',
65     'remoting_test.gypi',
66     'remoting_version.gypi',
67     'remoting_webapp_files.gypi',
68     'app_remoting_webapp_files.gypi',
69   ],
71   'target_defaults': {
72     'defines': [
73       'BINARY_CORE=1',
74       'BINARY_DESKTOP=2',
75       'BINARY_HOST_ME2ME=3',
76       'BINARY_NATIVE_MESSAGING_HOST=4',
77       'BINARY_REMOTE_ASSISTANCE_HOST=5',
78     ],
79     'include_dirs': [
80       '..',  # Root of Chrome checkout
81     ],
82     'variables': {
83       'win_debug_RuntimeChecks': '0',
84     },
85     'conditions': [
86       ['OS=="mac" and mac_breakpad==1', {
87         'defines': [
88           'REMOTING_ENABLE_BREAKPAD'
89         ],
90       }],
91       ['OS=="win" and buildtype == "Official"', {
92         'defines': [
93           'REMOTING_ENABLE_BREAKPAD'
94         ],
95       }],
96       ['OS=="win" and remoting_multi_process != 0 and \
97           remoting_rdp_session != 0', {
98         'defines': [
99           'REMOTING_RDP_SESSION',
100         ],
101       }],
102       ['remoting_multi_process != 0', {
103         'defines': [
104           'REMOTING_MULTI_PROCESS',
105         ],
106       }],
107     ],
108   },
110   'targets': [
111     {
112       'target_name': 'remoting_breakpad',
113       'type': 'static_library',
114       'variables': { 'enable_wexit_time_destructors': 1, },
115       'dependencies': [
116         '../base/base.gyp:base',
117       ],
118       'sources': [
119         'base/breakpad.h',
120         'base/breakpad_linux.cc',
121         'base/breakpad_mac.mm',
122         'base/breakpad_win.cc',
123       ],
124       'conditions': [
125         ['OS=="mac"', {
126           'dependencies': [
127             '../breakpad/breakpad.gyp:breakpad',
128           ],
129         }],
130         ['OS=="win"', {
131           'dependencies': [
132             '../breakpad/breakpad.gyp:breakpad_handler',
133           ],
134         }],
135       ],
136     },  # end of target 'remoting_breakpad'
138     {
139       # GN version: //remoting/resources
140       'target_name': 'remoting_resources',
141       'type': 'none',
142       'dependencies': [
143         'remoting_webapp_html',
144       ],
145       'variables': {
146         'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)',
147         'sources': [
148           'base/resources_unittest.cc',
149           'host/continue_window_mac.mm',
150           'host/disconnect_window_mac.mm',
151           'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2',
152           'host/it2me/it2me_confirmation_dialog_chromeos.cc',
153           'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2',
154           'host/win/core.rc.jinja2',
155           'host/win/host_messages.mc.jinja2',
156           'host/win/version.rc.jinja2',
157           'resources/play_store_resources.cc',
158           '<@(desktop_remoting_webapp_localizable_files)',
159           '<@(app_remoting_webapp_localizable_files)',
160         ],
161       },
162       'actions': [
163         {
164           # GN version: //remoting/resources:verify_resources
165           'action_name': 'verify_resources',
166           'inputs': [
167             'resources/remoting_strings.grd',
168             'tools/verify_resources.py',
169             '<@(sources)'
170           ],
171           'outputs': [
172             '<(PRODUCT_DIR)/remoting_resources_verified.stamp',
173           ],
174           'action': [
175             'python',
176             'tools/verify_resources.py',
177             '-t', '<(PRODUCT_DIR)/remoting_resources_verified.stamp',
178             '-r', 'resources/remoting_strings.grd',
179             '<@(sources)',
180          ],
181         },
182         {
183           # GN version: //remoting/resources:strings
184           'action_name': 'remoting_strings',
185           'variables': {
186             'grit_grd_file': 'resources/remoting_strings.grd',
187           },
188           'includes': [ '../build/grit_action.gypi' ],
189         },
190         {
191           # GN version: //remoting/resources:copy_locales
192           'action_name': 'copy_locales',
193           'variables': {
194             'copy_output_dir%': '<(PRODUCT_DIR)',
195           },
196           'inputs': [
197             'tools/build/remoting_copy_locales.py',
198             '<!@pymod_do_main(remoting_copy_locales -i -p <(OS) -g <(grit_out_dir) <(remoting_locales))'
199           ],
200           'outputs': [
201             '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(copy_output_dir) <(remoting_locales))'
202           ],
203           'action': [
204             'python', 'tools/build/remoting_copy_locales.py',
205             '-p', '<(OS)',
206             '-g', '<(grit_out_dir)',
207             '-x', '<(copy_output_dir)/.',
208             '<@(remoting_locales)',
209           ],
210         }
211       ],
212       'includes': [ '../build/grit_target.gypi' ],
213     },  # end of target 'remoting_resources'
215     {
216       # GN version: //remoting/base
217       'target_name': 'remoting_base',
218       'type': 'static_library',
219       'variables': { 'enable_wexit_time_destructors': 1, },
220       'dependencies': [
221         '../base/base.gyp:base',
222         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
223         '../media/media.gyp:media',
224         '../media/media.gyp:shared_memory_support',
225         '../net/net.gyp:net',
226         '../third_party/libvpx/libvpx.gyp:libvpx',
227         '../third_party/libyuv/libyuv.gyp:libyuv',
228         '../third_party/opus/opus.gyp:opus',
229         '../third_party/protobuf/protobuf.gyp:protobuf_lite',
230         '../third_party/webrtc/modules/modules.gyp:desktop_capture',
231         '../ui/base/ui_base.gyp:ui_base',
232         '../ui/gfx/gfx.gyp:gfx',
233         '../ui/gfx/gfx.gyp:gfx_geometry',
234         'proto/chromotocol.gyp:chromotocol_proto_lib',
235         'remoting_resources',
236       ],
237       'export_dependent_settings': [
238         '../base/base.gyp:base',
239         '../net/net.gyp:net',
240         '../third_party/protobuf/protobuf.gyp:protobuf_lite',
241         'proto/chromotocol.gyp:chromotocol_proto_lib',
242       ],
243       # This target needs a hard dependency because dependent targets
244       # depend on chromotocol_proto_lib for headers.
245       'hard_dependency': 1,
246       'sources': [
247         '<@(remoting_base_sources)',
248       ],
249     },  # end of target 'remoting_base'
251     {
252       # GN version: //remoting/protocol
253       'target_name': 'remoting_protocol',
254       'type': 'static_library',
255       'variables': { 'enable_wexit_time_destructors': 1, },
256       'dependencies': [
257         '../base/base.gyp:base',
258         '../crypto/crypto.gyp:crypto',
259         '../jingle/jingle.gyp:jingle_glue',
260         '../jingle/jingle.gyp:notifier',
261         '../net/net.gyp:net',
262         '../third_party/libjingle/libjingle.gyp:libjingle',
263         'remoting_base',
264       ],
265       'export_dependent_settings': [
266         '../third_party/libjingle/libjingle.gyp:libjingle',
267       ],
268       'sources': [
269         '<@(remoting_protocol_sources)',
270       ],
271     },  # end of target 'remoting_protocol'
272   ],  # end of targets