Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / remoting / remoting_nacl.gyp
blobbe51588378f1ec989a32f35405190b34035a6d8a
1 # Copyright 2014 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   'includes': [
7     '../build/common_untrusted.gypi',
8     'remoting_srcs.gypi',
9   ],
11   'variables': {
12     'protoc': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
13     'proto_out_base': '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
14     'proto_out_dir': '<(proto_out_base)/remoting/proto',
15     'use_nss_certs': 0,
16     'nacl_untrusted_build': 1,
17     'chromium_code': 1,
18   },
20   'targets': [
21     {
22       'target_name': 'remoting_webrtc_nacl',
23       'type': 'none',
24       'variables': {
25         'nacl_untrusted_build': 1,
26         'nlib_target': 'libremoting_webrtc_nacl.a',
27         'build_glibc': 0,
28         'build_newlib': 0,
29         'build_pnacl_newlib': 1,
30       },
31       'include_dirs': [
32         '../third_party',
33         '../third_party/webrtc',
34       ],
35       'sources': [
36         '../third_party/webrtc/modules/desktop_capture/desktop_frame.cc',
37         '../third_party/webrtc/modules/desktop_capture/desktop_frame.h',
38         '../third_party/webrtc/modules/desktop_capture/desktop_geometry.cc',
39         '../third_party/webrtc/modules/desktop_capture/desktop_geometry.h',
40         '../third_party/webrtc/modules/desktop_capture/desktop_region.cc',
41         '../third_party/webrtc/modules/desktop_capture/desktop_region.h',
42         '../third_party/webrtc/modules/desktop_capture/shared_desktop_frame.cc',
43         '../third_party/webrtc/modules/desktop_capture/shared_desktop_frame.h',
44       ],
45       'direct_dependent_settings': {
46         'include_dirs': [
47           '../third_party',
48           '../third_party/webrtc',
49         ],
50       }
51     },  # end of target 'remoting_webrtc_nacl'
53     {
54       'target_name': 'remoting_proto_nacl',
55       'type': 'none',
56       'variables': {
57         'nacl_untrusted_build': 1,
58         'nlib_target': 'libremoting_proto_nacl.a',
59         'build_glibc': 0,
60         'build_newlib': 0,
61         'build_pnacl_newlib': 1,
62         'files_list': [
63           '<(proto_out_dir)/audio.pb.cc',
64           '<(proto_out_dir)/control.pb.cc',
65           '<(proto_out_dir)/event.pb.cc',
66           '<(proto_out_dir)/internal.pb.cc',
67           '<(proto_out_dir)/mux.pb.cc',
68           '<(proto_out_dir)/video.pb.cc',
69         ],
70         'extra_deps': [ '<@(files_list)' ],
71         'extra_args': [ '<@(files_list)' ],
72       },
73       'defines': [
74         'GOOGLE_PROTOBUF_HOST_ARCH_64_BIT=1'
75       ],
76       'dependencies': [
77         '../third_party/protobuf/protobuf_nacl.gyp:protobuf_lite_nacl',
78         'proto/chromotocol.gyp:chromotocol_proto_lib',
79       ],
80       'export_dependent_settings': [
81         '../third_party/protobuf/protobuf_nacl.gyp:protobuf_lite_nacl',
82       ],
83       'direct_dependent_settings': {
84         'include_dirs': [
85           '<(proto_out_base)',
86         ],
87       },
88     },  # end of target 'remoting_proto_nacl'
90     {
91       'target_name': 'remoting_client_plugin_lib_nacl',
92       'type': 'none',
93       'variables': {
94         'nacl_untrusted_build': 1,
95         'nlib_target': 'libremoting_client_plugin_lib_nacl.a',
96         'build_glibc': 0,
97         'build_newlib': 0,
98         'build_pnacl_newlib': 1,
99       },
100       'dependencies': [
101         '../base/base_nacl.gyp:base_nacl',
102         '../jingle/jingle_nacl.gyp:jingle_glue_nacl',
103         '../native_client_sdk/native_client_sdk_untrusted.gyp:nacl_io_untrusted',
104         '../net/net_nacl.gyp:net_nacl',
105         '../third_party/boringssl/boringssl_nacl.gyp:boringssl_nacl',
106         '../third_party/expat/expat_nacl.gyp:expat_nacl',
107         '../third_party/khronos/khronos.gyp:khronos_headers',
108         '../third_party/libjingle/libjingle_nacl.gyp:libjingle_nacl',
109         '../third_party/libvpx/libvpx_nacl.gyp:libvpx_nacl',
110         '../third_party/libyuv/libyuv_nacl.gyp:libyuv_nacl',
111         '../third_party/opus/opus_nacl.gyp:opus_nacl',
112         'remoting_proto_nacl',
113         'remoting_webrtc_nacl',
114       ],
115       'sources': [
116         '../ui/events/keycodes/dom/keycode_converter.cc',
117         '<@(remoting_base_sources)',
118         '<@(remoting_codec_sources)',
119         '<@(remoting_client_plugin_sources)',
120         '<@(remoting_client_sources)',
121         '<@(remoting_protocol_sources)',
122         '<@(remoting_signaling_sources)',
123       ],
124       'sources!': [
125         'base/url_request_context_getter.cc',
126         'protocol/chromium_socket_factory.cc',
127       ],
129       # Include normalizing_input_filter_mac.cc excluded by the filename
130       # exclusion rules. Must be in target_conditions to make sure it's
131       # evaluated after the filename rules.
132       'target_conditions': [
133         ['1==1', {
134           'sources/': [
135             [ 'include', 'client/normalizing_input_filter_mac.cc' ],
136           ],
137         }],
138       ],
139     },  # end of target 'remoting_client_plugin_lib_nacl'
141     {
142       'target_name': 'remoting_client_plugin_nacl',
143       'type': 'none',
144       'variables': {
145         'nacl_untrusted_build': 1,
146         'nexe_target': 'remoting_client_plugin',
147         'build_glibc': 0,
148         'build_newlib': 0,
149         'build_pnacl_newlib': 1,
150         'extra_deps_pnacl_newlib': [
151           '>(tc_lib_dir_pnacl_newlib)/libbase_i18n_nacl.a',
152           '>(tc_lib_dir_pnacl_newlib)/libbase_nacl.a',
153           '>(tc_lib_dir_pnacl_newlib)/libexpat_nacl.a',
154           '>(tc_lib_dir_pnacl_newlib)/libicudata_nacl.a',
155           '>(tc_lib_dir_pnacl_newlib)/libcrypto_nacl.a',
156           '>(tc_lib_dir_pnacl_newlib)/libicui18n_nacl.a',
157           '>(tc_lib_dir_pnacl_newlib)/libicuuc_nacl.a',
158           '>(tc_lib_dir_pnacl_newlib)/libjingle_nacl.a',
159           '>(tc_lib_dir_pnacl_newlib)/libjingle_p2p_constants_nacl.a',
160           '>(tc_lib_dir_pnacl_newlib)/libmedia_yuv_nacl.a',
161           '>(tc_lib_dir_pnacl_newlib)/libmodp_b64_nacl.a',
162           '>(tc_lib_dir_pnacl_newlib)/libboringssl_nacl.a',
163           '>(tc_lib_dir_pnacl_newlib)/libopus_nacl.a',
164           '>(tc_lib_dir_pnacl_newlib)/libppapi.a',
165           '>(tc_lib_dir_pnacl_newlib)/libppapi_cpp.a',
166           '>(tc_lib_dir_pnacl_newlib)/libprotobuf_lite_nacl.a',
167           '>(tc_lib_dir_pnacl_newlib)/libjingle_glue_nacl.a',
168           '>(tc_lib_dir_pnacl_newlib)/libnet_nacl.a',
169           '>(tc_lib_dir_pnacl_newlib)/libremoting_client_plugin_lib_nacl.a',
170           '>(tc_lib_dir_pnacl_newlib)/libremoting_proto_nacl.a',
171           '>(tc_lib_dir_pnacl_newlib)/libremoting_webrtc_nacl.a',
172           '>(tc_lib_dir_pnacl_newlib)/liburl_nacl.a',
173           '>(tc_lib_dir_pnacl_newlib)/libvpx_nacl.a',
174           '>(tc_lib_dir_pnacl_newlib)/libyuv_nacl.a',
175         ],
176       },
177       'dependencies': [
178         '../base/base_nacl.gyp:base_i18n_nacl',
179         '../base/base_nacl.gyp:base_nacl',
180         '../crypto/crypto_nacl.gyp:crypto_nacl',
181         '../jingle/jingle_nacl.gyp:jingle_glue_nacl',
182         '../media/media_nacl.gyp:media_yuv_nacl',
183         '../native_client_sdk/native_client_sdk_untrusted.gyp:nacl_io_untrusted',
184         '../net/net_nacl.gyp:net_nacl',
185         '../ppapi/native_client/native_client.gyp:ppapi_lib',
186         '../ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
187         '../third_party/expat/expat_nacl.gyp:expat_nacl',
188         '../third_party/icu/icu_nacl.gyp:icudata_nacl',
189         '../third_party/icu/icu_nacl.gyp:icui18n_nacl',
190         '../third_party/icu/icu_nacl.gyp:icuuc_nacl',
191         '../third_party/libjingle/libjingle_nacl.gyp:libjingle_nacl',
192         '../third_party/libyuv/libyuv_nacl.gyp:libyuv_nacl',
193         '../third_party/modp_b64/modp_b64_nacl.gyp:modp_b64_nacl',
194         '../third_party/boringssl/boringssl_nacl.gyp:boringssl_nacl',
195         '../url/url_nacl.gyp:url_nacl',
196         'remoting_client_plugin_lib_nacl',
197         'remoting_proto_nacl',
198         'remoting_webrtc_nacl',
199       ],
200       'link_flags': [
201         '-lppapi_stub',
203         # Plugin code.
204         '-lremoting_client_plugin_lib_nacl',
205         '-lremoting_proto_nacl',
207         # Chromium libraries.
208         '-ljingle_glue_nacl',
209         '-lmedia_yuv_nacl',
210         '-lnet_nacl',
211         '-lcrypto_nacl',
212         '-lbase_i18n_nacl',
213         '-lbase_nacl',
214         '-lurl_nacl',
216         # Third-party libraries.
217         '-lremoting_webrtc_nacl',
218         '-lyuv_nacl',
219         '-lvpx_nacl',
220         '-ljingle_p2p_constants_nacl',
221         '-ljingle_nacl',
222         '-lexpat_nacl',
223         '-lmodp_b64_nacl',
224         '-lopus_nacl',
225         '-lboringssl_nacl',
226         '-licui18n_nacl',
227         '-licuuc_nacl',
228         '-licudata_nacl',
229         '-lprotobuf_lite_nacl',
231         # Base NaCl libraries.
232         '-lppapi_cpp',
233         '-lpthread',
234         '-lnacl_io',
235       ],
236       'sources': [
237         'client/plugin/pepper_module.cc',
238       ],
239     },  # end of target 'remoting_client_plugin_nacl'
240   ]