1// 2// Copyright (C) 2020 The Android Open Source Project 3// 4// Licensed under the Apache License, Version 2.0 (the "License"); 5// you may not use this file except in compliance with the License. 6// You may obtain a copy of the License at 7// 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// See the License for the specific language governing permissions and 14// limitations under the License. 15 16package { 17 default_applicable_licenses: ["Android-Apache-2.0"], 18} 19 20cc_library_static { 21 name: "libcuttlefish_webrtc", 22 srcs: [ 23 "lib/audio_device.cpp", 24 "lib/audio_track_source_impl.cpp", 25 "lib/camera_streamer.cpp", 26 "lib/client_handler.cpp", 27 "lib/keyboard.cpp", 28 "lib/local_recorder.cpp", 29 "lib/port_range_socket_factory.cpp", 30 "lib/streamer.cpp", 31 "lib/utils.cpp", 32 "lib/video_track_source_impl.cpp", 33 "lib/vp8only_encoder_factory.cpp", 34 "lib/server_connection.cpp", 35 ], 36 cflags: [ 37 // libwebrtc headers need this 38 "-Wno-unused-parameter", 39 "-DWEBRTC_POSIX", 40 "-DWEBRTC_LINUX", 41 ], 42 header_libs: [ 43 "webrtc_signaling_headers", 44 "libwebrtc_absl_headers", 45 ], 46 static_libs: [ 47 "libsrtp2", 48 "libcuttlefish_host_config", 49 "libcuttlefish_screen_connector", 50 "libcuttlefish_wayland_server", 51 "libgflags", 52 "libdrm", 53 "libffi", 54 "libwayland_crosvm_gpu_display_extension_server_protocols", 55 "libwayland_extension_server_protocols", 56 "libwayland_server", 57 "libwebsockets", 58 "libcap", 59 "libcuttlefish_utils", 60 "libwebrtc", 61 "libwebrtc_absl_base", 62 "libwebrtc_absl_types", 63 ], 64 shared_libs: [ 65 "libbase", 66 "libcn-cbor", 67 "libcuttlefish_fs", 68 "libfruit", 69 "libjsoncpp", 70 "libssl", 71 "libwebm_mkvmuxer", 72 ], 73 defaults: ["cuttlefish_buildhost_only"], 74} 75 76cc_binary_host { 77 name: "webRTC", 78 srcs: [ 79 "adb_handler.cpp", 80 "audio_handler.cpp", 81 "bluetooth_handler.cpp", 82 "client_server.cpp", 83 "connection_observer.cpp", 84 "cvd_video_frame_buffer.cpp", 85 "display_handler.cpp", 86 "kernel_log_events_handler.cpp", 87 "main.cpp", 88 ], 89 header_libs: [ 90 "webrtc_signaling_headers", 91 "libwebrtc_absl_headers", 92 "libcuttlefish_confui_host_headers", 93 ], 94 static_libs: [ 95 "libwebrtc_absl_base", 96 "libwebrtc_absl_container", 97 "libwebrtc_absl_debugging", 98 "libwebrtc_absl_flags", 99 "libwebrtc_absl_hash", 100 "libwebrtc_absl_numeric", 101 "libwebrtc_absl_status", 102 "libwebrtc_absl_strings", 103 "libwebrtc_absl_synchronization", 104 "libwebrtc_absl_time", 105 "libwebrtc_absl_types", 106 "libaom", 107 "libcap", 108 "libcn-cbor", 109 "libcuttlefish_audio_connector", 110 "libcuttlefish_confui", 111 "libcuttlefish_confui_host", 112 "libcuttlefish_host_config", 113 "libcuttlefish_security", 114 "libcuttlefish_screen_connector", 115 "libcuttlefish_utils", 116 "libcuttlefish_wayland_server", 117 "libft2.nodep", 118 "libteeui", 119 "libteeui_localization", 120 "libdrm", 121 "libevent", 122 "libffi", 123 "libgflags", 124 "libopus", 125 "libsrtp2", 126 "libvpx", 127 "libwayland_crosvm_gpu_display_extension_server_protocols", 128 "libwayland_extension_server_protocols", 129 "libwayland_server", 130 "libwebrtc", 131 "libcuttlefish_webrtc", 132 "libwebsockets", 133 "libyuv", 134 ], 135 shared_libs: [ 136 "libext2_blkid", 137 "android.hardware.keymaster@4.0", 138 "libbase", 139 "libcrypto", 140 "libcuttlefish_fs", 141 "libcuttlefish_kernel_log_monitor_utils", 142 "libjsoncpp", 143 "libfruit", 144 "libopus", 145 "libssl", 146 "libvpx", 147 "libyuv", 148 "libwebm_mkvmuxer", 149 ], 150 defaults: ["cuttlefish_buildhost_only"], 151} 152 153prebuilt_usr_share_host { 154 name: "webrtc_client.html", 155 src: "client/client.html", 156 filename: "client.html", 157 sub_dir: "webrtc/assets", 158} 159 160prebuilt_usr_share_host { 161 name: "webrtc_style.css", 162 src: "client/style.css", 163 filename: "style.css", 164 sub_dir: "webrtc/assets", 165} 166 167prebuilt_usr_share_host { 168 name: "webrtc_controls.css", 169 src: "client/controls.css", 170 filename: "controls.css", 171 sub_dir: "webrtc/assets", 172} 173 174prebuilt_usr_share_host { 175 name: "webrtc_adb.js", 176 src: "client/js/adb.js", 177 filename: "adb.js", 178 sub_dir: "webrtc/assets/js", 179} 180 181prebuilt_usr_share_host { 182 name: "webrtc_cf.js", 183 src: "client/js/cf_webrtc.js", 184 filename: "cf_webrtc.js", 185 sub_dir: "webrtc/assets/js", 186} 187 188prebuilt_usr_share_host { 189 name: "webrtc_app.js", 190 src: "client/js/app.js", 191 filename: "app.js", 192 sub_dir: "webrtc/assets/js", 193} 194 195prebuilt_usr_share_host { 196 name: "webrtc_controls.js", 197 src: "client/js/controls.js", 198 filename: "controls.js", 199 sub_dir: "webrtc/assets/js", 200} 201 202prebuilt_usr_share_host { 203 name: "webrtc_rootcanal.js", 204 src: "client/js/rootcanal.js", 205 filename: "rootcanal.js", 206 sub_dir: "webrtc/assets/js", 207} 208