Add remoting and PPAPI tests to GN build
[chromium-blink-merge.git] / remoting / remoting_nacl.gyp
blob14af09a50d50ece84196f08928d0cf1641bccbcb
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': 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         '../native_client/tools.gyp:prep_toolchain',
78         '../third_party/protobuf/protobuf_nacl.gyp:protobuf_lite_nacl',
79         'proto/chromotocol.gyp:chromotocol_proto_lib',
80       ],
81       'export_dependent_settings': [
82         '../third_party/protobuf/protobuf_nacl.gyp:protobuf_lite_nacl',
83       ],
84       'direct_dependent_settings': {
85         'include_dirs': [
86           '<(proto_out_base)',
87         ],
88       },
89     },  # end of target 'remoting_proto_nacl'
91     {
92       'target_name': 'remoting_client_plugin_lib_nacl',
93       'type': 'none',
94       'variables': {
95         'nacl_untrusted_build': 1,
96         'nlib_target': 'libremoting_client_plugin_lib_nacl.a',
97         'build_glibc': 0,
98         'build_newlib': 0,
99         'build_pnacl_newlib': 1,
100       },
101       'dependencies': [
102         '../base/base_nacl.gyp:base_nacl',
103         '../jingle/jingle_nacl.gyp:jingle_glue_nacl',
104         '../native_client/tools.gyp:prep_toolchain',
105         '../native_client_sdk/native_client_sdk_untrusted.gyp:nacl_io_untrusted',
106         '../net/net_nacl.gyp:net_nacl',
107         '../third_party/boringssl/boringssl_nacl.gyp:boringssl_nacl',
108         '../third_party/khronos/khronos.gyp:khronos_headers',
109         '../third_party/libjingle/libjingle_nacl.gyp:libjingle_nacl',
110         '../third_party/libvpx/libvpx_nacl.gyp:libvpx_nacl',
111         '../third_party/libyuv/libyuv_nacl.gyp:libyuv_nacl',
112         '../third_party/opus/opus_nacl.gyp:opus_nacl',
113         'remoting_proto_nacl',
114         'remoting_webrtc_nacl',
115       ],
116       'sources': [
117         '../ui/events/keycodes/dom4/keycode_converter.cc',
118         '<@(remoting_base_sources)',
119         '<@(remoting_codec_sources)',
120         '<@(remoting_client_plugin_sources)',
121         '<@(remoting_client_sources)',
122         '<@(remoting_protocol_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/plugin/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/tools.gyp:prep_toolchain',
184         '../native_client_sdk/native_client_sdk_untrusted.gyp:nacl_io_untrusted',
185         '../net/net_nacl.gyp:net_nacl',
186         '../ppapi/native_client/native_client.gyp:ppapi_lib',
187         '../ppapi/ppapi_nacl.gyp:ppapi_cpp_lib',
188         '../third_party/expat/expat_nacl.gyp:expat_nacl',
189         '../third_party/icu/icu_nacl.gyp:icudata_nacl',
190         '../third_party/icu/icu_nacl.gyp:icui18n_nacl',
191         '../third_party/icu/icu_nacl.gyp:icuuc_nacl',
192         '../third_party/libjingle/libjingle_nacl.gyp:libjingle_nacl',
193         '../third_party/libyuv/libyuv_nacl.gyp:libyuv_nacl',
194         '../third_party/modp_b64/modp_b64_nacl.gyp:modp_b64_nacl',
195         '../third_party/boringssl/boringssl_nacl.gyp:boringssl_nacl',
196         '../url/url_nacl.gyp:url_nacl',
197         'remoting_client_plugin_lib_nacl',
198         'remoting_proto_nacl',
199         'remoting_webrtc_nacl',
200       ],
201       'link_flags': [
202         '-lppapi_stub',
204         # Plugin code.
205         '-lremoting_client_plugin_lib_nacl',
206         '-lremoting_proto_nacl',
208         # Chromium libraries.
209         '-ljingle_glue_nacl',
210         '-lmedia_yuv_nacl',
211         '-lnet_nacl',
212         '-lcrypto_nacl',
213         '-lbase_i18n_nacl',
214         '-lbase_nacl',
215         '-lurl_nacl',
217         # Third-party libraries.
218         '-lremoting_webrtc_nacl',
219         '-lyuv_nacl',
220         '-lvpx_nacl',
221         '-ljingle_p2p_constants_nacl',
222         '-ljingle_nacl',
223         '-lexpat_nacl',
224         '-lmodp_b64_nacl',
225         '-lopus_nacl',
226         '-lboringssl_nacl',
227         '-licui18n_nacl',
228         '-licuuc_nacl',
229         '-licudata_nacl',
230         '-lprotobuf_lite_nacl',
232         # Base NaCl libraries.
233         '-lppapi_cpp',
234         '-lpthread',
235         '-lnacl_io',
236       ],
237       'sources': [
238         'client/plugin/pepper_module.cc',
239       ],
240     },  # end of target 'remoting_client_plugin_nacl'
241   ]