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. 4 5 { 6 'includes': [ 7 '../native_client/build/untrusted.gypi', 8 'remoting_srcs.gypi', 9 ], 10 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 }, 19 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' 52 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)/video.pb.cc', 68 '<(proto_out_dir)/mux.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' 90 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/libjingle/libjingle_nacl.gyp:libjingle_nacl', 108 '../third_party/libvpx/libvpx_nacl.gyp:libvpx_nacl', 109 '../third_party/libwebm/libwebm_nacl.gyp:libwebm_nacl', 110 '../third_party/libyuv/libyuv_nacl.gyp:libyuv_nacl', 111 '../third_party/openssl/openssl_nacl.gyp:openssl_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_client_plugin_sources)', 120 '<@(remoting_client_sources)', 121 '<@(remoting_protocol_sources)', 122 ], 123 'sources!': [ 124 'base/url_request_context.cc', 125 'jingle_glue/chromium_socket_factory.cc', 126 ], 127 128 # Include normalizing_input_filter_mac.cc excluded by the filename 129 # exclusion rules. Must be in target_conditions to make sure it's 130 # evaluated after the filename rules. 131 'target_conditions': [ 132 ['1==1', { 133 'sources/': [ 134 [ 'include', 'client/plugin/normalizing_input_filter_mac.cc' ], 135 ], 136 }], 137 ], 138 }, # end of target 'remoting_client_plugin_lib_nacl' 139 140 { 141 'target_name': 'remoting_client_plugin_nacl', 142 'type': 'none', 143 'variables': { 144 'nacl_untrusted_build': 1, 145 'nexe_target': 'remoting_client_plugin', 146 'build_glibc': 0, 147 'build_newlib': 0, 148 'build_pnacl_newlib': 1, 149 'enable_x86_32': 0, 150 'enable_x86_64': 0, 151 'extra_deps_pnacl_newlib': [ 152 '>(tc_lib_dir_pnacl_newlib)/libbase_i18n_nacl.a', 153 '>(tc_lib_dir_pnacl_newlib)/libbase_nacl.a', 154 '>(tc_lib_dir_pnacl_newlib)/libexpat_nacl.a', 155 '>(tc_lib_dir_pnacl_newlib)/libicudata_nacl.a', 156 '>(tc_lib_dir_pnacl_newlib)/libcrypto_nacl.a', 157 '>(tc_lib_dir_pnacl_newlib)/libicui18n_nacl.a', 158 '>(tc_lib_dir_pnacl_newlib)/libicuuc_nacl.a', 159 '>(tc_lib_dir_pnacl_newlib)/libjingle_nacl.a', 160 '>(tc_lib_dir_pnacl_newlib)/libjingle_p2p_constants_nacl.a', 161 '>(tc_lib_dir_pnacl_newlib)/libmedia_yuv_nacl.a', 162 '>(tc_lib_dir_pnacl_newlib)/libmodp_b64_nacl.a', 163 '>(tc_lib_dir_pnacl_newlib)/libopenssl_nacl.a', 164 '>(tc_lib_dir_pnacl_newlib)/libopus_nacl.a', 165 '>(tc_lib_dir_pnacl_newlib)/libppapi.a', 166 '>(tc_lib_dir_pnacl_newlib)/libppapi_cpp.a', 167 '>(tc_lib_dir_pnacl_newlib)/libprotobuf_lite_nacl.a', 168 '>(tc_lib_dir_pnacl_newlib)/libjingle_glue_nacl.a', 169 '>(tc_lib_dir_pnacl_newlib)/libnet_nacl.a', 170 '>(tc_lib_dir_pnacl_newlib)/libremoting_client_plugin_lib_nacl.a', 171 '>(tc_lib_dir_pnacl_newlib)/libremoting_proto_nacl.a', 172 '>(tc_lib_dir_pnacl_newlib)/libremoting_webrtc_nacl.a', 173 '>(tc_lib_dir_pnacl_newlib)/liburl_nacl.a', 174 '>(tc_lib_dir_pnacl_newlib)/libvpx_nacl.a', 175 '>(tc_lib_dir_pnacl_newlib)/libwebm_nacl.a', 176 '>(tc_lib_dir_pnacl_newlib)/libyuv_nacl.a', 177 ], 178 }, 179 'dependencies': [ 180 '../base/base_nacl.gyp:base_i18n_nacl', 181 '../base/base_nacl.gyp:base_nacl', 182 '../crypto/crypto_nacl.gyp:crypto_nacl', 183 '../jingle/jingle_nacl.gyp:jingle_glue_nacl', 184 '../media/media_nacl.gyp:media_yuv_nacl', 185 '../native_client/tools.gyp:prep_toolchain', 186 '../native_client_sdk/native_client_sdk_untrusted.gyp:nacl_io_untrusted', 187 '../net/net_nacl.gyp:net_nacl', 188 '../ppapi/native_client/native_client.gyp:nacl_irt', 189 '../ppapi/native_client/native_client.gyp:ppapi_lib', 190 '../ppapi/ppapi_nacl.gyp:ppapi_cpp_lib', 191 '../third_party/expat/expat_nacl.gyp:expat_nacl', 192 '../third_party/icu/icu_nacl.gyp:icudata_nacl', 193 '../third_party/icu/icu_nacl.gyp:icui18n_nacl', 194 '../third_party/icu/icu_nacl.gyp:icuuc_nacl', 195 '../third_party/libjingle/libjingle_nacl.gyp:libjingle_nacl', 196 '../third_party/libwebm/libwebm_nacl.gyp:libwebm_nacl', 197 '../third_party/libyuv/libyuv_nacl.gyp:libyuv_nacl', 198 '../third_party/modp_b64/modp_b64_nacl.gyp:modp_b64_nacl', 199 '../third_party/openssl/openssl_nacl.gyp:openssl_nacl', 200 '../url/url_nacl.gyp:url_nacl', 201 'remoting_client_plugin_lib_nacl', 202 'remoting_proto_nacl', 203 'remoting_webrtc_nacl', 204 ], 205 'link_flags': [ 206 '-lppapi_stub', 207 208 # Plugin code. 209 '-lremoting_client_plugin_lib_nacl', 210 '-lremoting_proto_nacl', 211 212 # Chromium libraries. 213 '-ljingle_glue_nacl', 214 '-lmedia_yuv_nacl', 215 '-lnet_nacl', 216 '-lcrypto_nacl', 217 '-lbase_i18n_nacl', 218 '-lbase_nacl', 219 '-lurl_nacl', 220 221 # Third-party libraries. 222 '-lremoting_webrtc_nacl', 223 '-lyuv_nacl', 224 '-lvpx_nacl', 225 '-ljingle_p2p_constants_nacl', 226 '-ljingle_nacl', 227 '-lexpat_nacl', 228 '-lmodp_b64_nacl', 229 '-lopus_nacl', 230 '-lopenssl_nacl', 231 '-licui18n_nacl', 232 '-licuuc_nacl', 233 '-licudata_nacl', 234 '-lprotobuf_lite_nacl', 235 '-lwebm_nacl', 236 237 # Base NaCl libraries. 238 '-lppapi_cpp', 239 '-lpthread', 240 '-lnacl_io', 241 ], 242 'sources': [ 243 'client/plugin/pepper_module.cc', 244 ], 245 }, # end of target 'remoting_client_plugin_nacl' 246 ] 247 } 248