Home | History | Annotate | Download | only in remoting
      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