Commit 99d83f9b authored by sergeyu's avatar sergeyu Committed by Commit bot

Compile remoting client plugin with GN

BUG=512899

Review URL: https://codereview.chromium.org/1312463005

Cr-Commit-Position: refs/heads/master@{#348752}
parent 3fa5b0ae
......@@ -19,9 +19,10 @@ declare_args() {
# True when we're using OpenSSL for representing certificates. When targeting
# Android, the platform certificate library is used for certificate
# verification. On other targets, this flag also enables OpenSSL for certificate
# verification, but this configuration is unsupported.
use_openssl_certs = is_android
# verification. On NaCl, verification isn't supported. On other targets, this
# flag also enables OpenSSL for certificate verification, but this configuration
# is unsupported.
use_openssl_certs = is_android || is_nacl
# True if NSS is used for certificate verification. Note that this is
# independent from use_openssl. It is possible to use OpenSSL for the crypto
......
......@@ -5,203 +5,194 @@
import("//build/config/crypto.gni")
import("//testing/test.gni")
if (is_nacl) {
component("crypto") {
output_name = "crcrypto" # Avoid colliding with OpenSSL's libcrypto.
sources = [
"random.cc",
"random.h",
component("crypto") {
output_name = "crcrypto" # Avoid colliding with OpenSSL's libcrypto.
sources = [
"aead_openssl.cc",
"aead_openssl.h",
"aes_128_gcm_helpers_nss.cc",
"aes_128_gcm_helpers_nss.h",
"apple_keychain.h",
"apple_keychain_ios.mm",
"apple_keychain_mac.mm",
"capi_util.cc",
"capi_util.h",
"crypto_export.h",
"cssm_init.cc",
"cssm_init.h",
"curve25519-donna.c",
"curve25519.cc",
"curve25519.h",
"ec_private_key.h",
"ec_private_key_nss.cc",
"ec_private_key_openssl.cc",
"ec_signature_creator.cc",
"ec_signature_creator.h",
"ec_signature_creator_impl.h",
"ec_signature_creator_nss.cc",
"ec_signature_creator_openssl.cc",
"encryptor.cc",
"encryptor.h",
"encryptor_nss.cc",
"encryptor_openssl.cc",
"ghash.cc",
"ghash.h",
"hkdf.cc",
"hkdf.h",
"hmac.cc",
"hmac.h",
"hmac_nss.cc",
"hmac_openssl.cc",
"mac_security_services_lock.cc",
"mac_security_services_lock.h",
# TODO(brettw) these mocks should be moved to a test_support_crypto target
# if possible.
"mock_apple_keychain.cc",
"mock_apple_keychain.h",
"mock_apple_keychain_ios.cc",
"mock_apple_keychain_mac.cc",
"nss_key_util.cc",
"nss_key_util.h",
"nss_util.cc",
"nss_util.h",
"nss_util_internal.h",
"openssl_bio_string.cc",
"openssl_bio_string.h",
"openssl_util.cc",
"openssl_util.h",
"p224.cc",
"p224.h",
"p224_spake.cc",
"p224_spake.h",
"random.cc",
"random.h",
"rsa_private_key.cc",
"rsa_private_key.h",
"rsa_private_key_nss.cc",
"rsa_private_key_openssl.cc",
"scoped_capi_types.h",
"scoped_nss_types.h",
"secure_hash.h",
"secure_hash_default.cc",
"secure_hash_openssl.cc",
"secure_util.cc",
"secure_util.h",
"sha2.cc",
"sha2.h",
"signature_creator.h",
"signature_creator_nss.cc",
"signature_creator_openssl.cc",
"signature_verifier.h",
"signature_verifier_nss.cc",
"signature_verifier_openssl.cc",
"symmetric_key.h",
"symmetric_key_nss.cc",
"symmetric_key_openssl.cc",
"third_party/nss/chromium-blapi.h",
"third_party/nss/chromium-blapit.h",
"third_party/nss/chromium-nss.h",
"third_party/nss/chromium-sha256.h",
"third_party/nss/pk11akey.cc",
"third_party/nss/rsawrapr.c",
"third_party/nss/secsign.cc",
"third_party/nss/sha512.cc",
]
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
deps = [
":platform",
"//base",
"//base/third_party/dynamic_annotations",
]
if (!is_mac && !is_ios) {
sources -= [
"apple_keychain.h",
"mock_apple_keychain.cc",
"mock_apple_keychain.h",
]
deps = [
"//base",
}
if (!is_mac) {
sources -= [
"cssm_init.cc",
"cssm_init.h",
"mac_security_services_lock.cc",
"mac_security_services_lock.h",
]
}
} else {
component("crypto") {
output_name = "crcrypto" # Avoid colliding with OpenSSL's libcrypto.
sources = [
"aead_openssl.cc",
"aead_openssl.h",
"aes_128_gcm_helpers_nss.cc",
"aes_128_gcm_helpers_nss.h",
"apple_keychain.h",
"apple_keychain_ios.mm",
"apple_keychain_mac.mm",
if (!is_win) {
sources -= [
"capi_util.cc",
"capi_util.h",
"crypto_export.h",
"cssm_init.cc",
"cssm_init.h",
"curve25519-donna.c",
"curve25519.cc",
"curve25519.h",
"ec_private_key.h",
]
}
if (is_android) {
deps += [ "//third_party/android_tools:cpu_features" ]
}
if (use_openssl) {
# Remove NSS files when using OpenSSL
sources -= [
"aes_128_gcm_helpers_nss.cc",
"aes_128_gcm_helpers_nss.h",
"ec_private_key_nss.cc",
"ec_private_key_openssl.cc",
"ec_signature_creator.cc",
"ec_signature_creator.h",
"ec_signature_creator_impl.h",
"ec_signature_creator_nss.cc",
"ec_signature_creator_openssl.cc",
"encryptor.cc",
"encryptor.h",
"encryptor_nss.cc",
"encryptor_openssl.cc",
"ghash.cc",
"ghash.h",
"hkdf.cc",
"hkdf.h",
"hmac.cc",
"hmac.h",
"hmac_nss.cc",
"hmac_openssl.cc",
"mac_security_services_lock.cc",
"mac_security_services_lock.h",
# TODO(brettw) these mocks should be moved to a test_support_crypto target
# if possible.
"mock_apple_keychain.cc",
"mock_apple_keychain.h",
"mock_apple_keychain_ios.cc",
"mock_apple_keychain_mac.cc",
"nss_key_util.cc",
"nss_key_util.h",
"nss_util.cc",
"nss_util.h",
"nss_util_internal.h",
"openssl_bio_string.cc",
"openssl_bio_string.h",
"openssl_util.cc",
"openssl_util.h",
"p224.cc",
"p224.h",
"p224_spake.cc",
"p224_spake.h",
"random.cc",
"random.h",
"rsa_private_key.cc",
"rsa_private_key.h",
"rsa_private_key_nss.cc",
"rsa_private_key_openssl.cc",
"scoped_capi_types.h",
"scoped_nss_types.h",
"secure_hash.h",
"secure_hash_default.cc",
"secure_hash_openssl.cc",
"secure_util.cc",
"secure_util.h",
"sha2.cc",
"sha2.h",
"signature_creator.h",
"signature_creator_nss.cc",
"signature_creator_openssl.cc",
"signature_verifier.h",
"signature_verifier_nss.cc",
"signature_verifier_openssl.cc",
"symmetric_key.h",
"symmetric_key_nss.cc",
"symmetric_key_openssl.cc",
"third_party/nss/chromium-blapi.h",
"third_party/nss/chromium-blapit.h",
"third_party/nss/chromium-nss.h",
"third_party/nss/chromium-sha256.h",
"third_party/nss/pk11akey.cc",
"third_party/nss/rsawrapr.c",
"third_party/nss/secsign.cc",
"third_party/nss/sha512.cc",
]
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
deps = [
":platform",
"//base",
"//base/third_party/dynamic_annotations",
} else {
# Remove OpenSSL when using NSS.
sources -= [
"aead_openssl.cc",
"aead_openssl.h",
"ec_private_key_openssl.cc",
"ec_signature_creator_openssl.cc",
"encryptor_openssl.cc",
"hmac_openssl.cc",
"openssl_bio_string.cc",
"openssl_bio_string.h",
"openssl_util.cc",
"openssl_util.h",
"rsa_private_key_openssl.cc",
"secure_hash_openssl.cc",
"signature_creator_openssl.cc",
"signature_verifier_openssl.cc",
"symmetric_key_openssl.cc",
]
}
if (!is_mac && !is_ios) {
sources -= [
"apple_keychain.h",
"mock_apple_keychain.cc",
"mock_apple_keychain.h",
]
}
if (!is_mac) {
sources -= [
"cssm_init.cc",
"cssm_init.h",
"mac_security_services_lock.cc",
"mac_security_services_lock.h",
]
}
if (!is_win) {
sources -= [
"capi_util.cc",
"capi_util.h",
]
}
if (is_android) {
deps += [ "//third_party/android_tools:cpu_features" ]
}
if (use_openssl) {
# Remove NSS files when using OpenSSL
sources -= [
"aes_128_gcm_helpers_nss.cc",
"aes_128_gcm_helpers_nss.h",
"ec_private_key_nss.cc",
"ec_signature_creator_nss.cc",
"encryptor_nss.cc",
"hmac_nss.cc",
"rsa_private_key_nss.cc",
"secure_hash_default.cc",
"signature_creator_nss.cc",
"signature_verifier_nss.cc",
"symmetric_key_nss.cc",
"third_party/nss/chromium-blapi.h",
"third_party/nss/chromium-blapit.h",
"third_party/nss/chromium-nss.h",
"third_party/nss/pk11akey.cc",
"third_party/nss/rsawrapr.c",
"third_party/nss/secsign.cc",
]
} else {
# Remove OpenSSL when using NSS.
sources -= [
"aead_openssl.cc",
"aead_openssl.h",
"ec_private_key_openssl.cc",
"ec_signature_creator_openssl.cc",
"encryptor_openssl.cc",
"hmac_openssl.cc",
"openssl_bio_string.cc",
"openssl_bio_string.h",
"openssl_util.cc",
"openssl_util.h",
"rsa_private_key_openssl.cc",
"secure_hash_openssl.cc",
"signature_creator_openssl.cc",
"signature_verifier_openssl.cc",
"symmetric_key_openssl.cc",
]
}
# Some files are built when NSS is used at all, either for the internal crypto
# library or the platform certificate library.
if (use_openssl && !use_nss_certs) {
sources -= [
"nss_key_util.cc",
"nss_key_util.h",
"nss_util.cc",
"nss_util.h",
"nss_util_internal.h",
]
}
# Some files are built when NSS is used at all, either for the internal crypto
# library or the platform certificate library.
if (use_openssl && !use_nss_certs) {
sources -= [
"nss_key_util.cc",
"nss_key_util.h",
"nss_util.cc",
"nss_util.h",
"nss_util_internal.h",
]
}
defines = [ "CRYPTO_IMPLEMENTATION" ]
defines = [ "CRYPTO_IMPLEMENTATION" ]
if (is_nacl) {
deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
}
}
......
......@@ -24,6 +24,14 @@ if (enable_webrtc || !is_android) {
]
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
if (is_nacl) {
sources -= [
"glue/chrome_async_socket.cc",
"glue/proxy_resolving_client_socket.cc",
"glue/xmpp_client_socket_factory.cc",
]
}
}
# A library for sending and receiving peer-issued notifications.
......
This diff is collapsed.
......@@ -156,8 +156,6 @@
'socket/ssl_client_socket.h',
'socket/ssl_client_socket_openssl.cc',
'socket/ssl_client_socket_openssl.h',
'socket/ssl_client_socket_pool.cc',
'socket/ssl_client_socket_pool.h',
'socket/ssl_socket.h',
'ssl/channel_id_service.cc',
'ssl/channel_id_service.h',
......@@ -225,8 +223,6 @@
'quic/crypto/aes_128_gcm_12_decrypter_openssl.cc',
'quic/crypto/aes_128_gcm_12_encrypter.h',
'quic/crypto/aes_128_gcm_12_encrypter_openssl.cc',
'quic/crypto/cert_compressor.cc',
'quic/crypto/cert_compressor.h',
'quic/crypto/chacha20_poly1305_decrypter.h',
'quic/crypto/chacha20_poly1305_decrypter_openssl.cc',
'quic/crypto/chacha20_poly1305_encrypter.h',
......@@ -264,15 +260,9 @@
'quic/crypto/p256_key_exchange.h',
'quic/crypto/p256_key_exchange_openssl.cc',
'quic/crypto/proof_source.h',
'quic/crypto/proof_source_chromium.h',
'quic/crypto/proof_source_chromium_openssl.cc',
'quic/crypto/proof_verifier.h',
'quic/crypto/proof_verifier_chromium.cc',
'quic/crypto/proof_verifier_chromium.h',
'quic/crypto/quic_crypto_client_config.cc',
'quic/crypto/quic_crypto_client_config.h',
'quic/crypto/quic_crypto_server_config.cc',
'quic/crypto/quic_crypto_server_config.h',
'quic/crypto/quic_decrypter.cc',
'quic/crypto/quic_decrypter.h',
'quic/crypto/quic_encrypter.cc',
......@@ -288,8 +278,6 @@
'quic/crypto/strike_register_client.h',
'quic/iovector.cc',
'quic/iovector.h',
'quic/network_connection.cc',
'quic/network_connection.h',
'quic/p2p/quic_p2p_crypto_config.cc',
'quic/p2p/quic_p2p_crypto_config.h',
'quic/p2p/quic_p2p_crypto_stream.cc',
......@@ -323,17 +311,10 @@
'quic/quic_connection_logger.h',
'quic/quic_connection_stats.cc',
'quic/quic_connection_stats.h',
'quic/quic_crypto_client_stream.cc',
'quic/quic_crypto_client_stream.h',
'quic/quic_crypto_client_stream_factory.h',
'quic/quic_crypto_server_stream.cc',
'quic/quic_crypto_server_stream.h',
'quic/quic_crypto_stream.cc',
'quic/quic_crypto_stream.h',
'quic/quic_data_reader.cc',
'quic/quic_data_reader.h',
'quic/quic_data_stream.cc',
'quic/quic_data_stream.h',
'quic/quic_data_writer.cc',
'quic/quic_data_writer.h',
'quic/quic_default_packet_writer.cc',
......@@ -357,8 +338,6 @@
'quic/quic_protocol.h',
'quic/quic_received_packet_manager.cc',
'quic/quic_received_packet_manager.h',
'quic/quic_reliable_client_stream.cc',
'quic/quic_reliable_client_stream.h',
'quic/quic_sent_entropy_manager.cc',
'quic/quic_sent_entropy_manager.h',
'quic/quic_sent_packet_manager.cc',
......@@ -369,8 +348,6 @@
'quic/quic_session.h',
'quic/quic_socket_address_coder.cc',
'quic/quic_socket_address_coder.h',
'quic/quic_spdy_session.cc',
'quic/quic_spdy_session.h',
'quic/quic_stream_sequencer.cc',
'quic/quic_stream_sequencer.h',
'quic/quic_sustained_bandwidth_recorder.cc',
......@@ -980,7 +957,9 @@
'quic/crypto/chacha20_poly1305_encrypter_nss.cc',
'quic/crypto/channel_id_nss.cc',
'quic/crypto/p256_key_exchange_nss.cc',
'quic/crypto/proof_source_chromium.h',
'quic/crypto/proof_source_chromium_nss.cc',
'quic/crypto/proof_source_chromium_openssl.cc',
'quic/quic_chromium_client_session.cc',
'quic/quic_chromium_client_session.h',
'quic/quic_client_session_base.cc',
......@@ -994,6 +973,25 @@
'quic/quic_stream_factory.cc',
'quic/quic_stream_factory.h',
'quic/spdy_utils.cc',
'quic/crypto/cert_compressor.cc',
'quic/crypto/cert_compressor.h',
'quic/crypto/quic_crypto_client_config.cc',
'quic/crypto/quic_crypto_client_config.h',
'quic/crypto/quic_crypto_server_config.cc',
'quic/crypto/quic_crypto_server_config.h',
'quic/network_connection.cc',
'quic/network_connection.h',
'quic/quic_crypto_client_stream.cc',
'quic/quic_crypto_client_stream.h',
'quic/quic_crypto_client_stream_factory.h',
'quic/quic_crypto_server_stream.cc',
'quic/quic_crypto_server_stream.h',
'quic/quic_data_stream.cc',
'quic/quic_data_stream.h',
'quic/quic_reliable_client_stream.cc',
'quic/quic_reliable_client_stream.h',
'quic/quic_spdy_session.cc',
'quic/quic_spdy_session.h',
'quic/spdy_utils.h',
'sdch/sdch_owner.cc',
'sdch/sdch_owner.h',
......@@ -1025,6 +1023,8 @@
'socket/socks_client_socket_pool.h',
'socket/ssl_client_socket_nss.cc',
'socket/ssl_client_socket_nss.h',
'socket/ssl_client_socket_pool.cc',
'socket/ssl_client_socket_pool.h',
'socket/ssl_server_socket.h',
'socket/ssl_server_socket_nss.cc',
'socket/ssl_server_socket_nss.h',
......
......@@ -19,14 +19,13 @@ source_set("base") {
]
deps = [
"//base/third_party/dynamic_annotations",
"//media",
"//media:shared_memory_support",
"//remoting/resources",
"//third_party/libvpx",
"//third_party/libyuv",
"//third_party/webrtc/modules/desktop_capture",
"//ui/base",
"//third_party/webrtc/modules/desktop_capture:primitives",
]
if (is_nacl) {
sources -= [ "url_request_context_getter.cc" ]
}
}
source_set("breakpad") {
......@@ -77,7 +76,7 @@ source_set("unit_tests") {
"//testing/gmock",
"//testing/gtest",
"//third_party/libyuv",
"//third_party/webrtc/modules/desktop_capture",
"//third_party/webrtc/modules/desktop_capture:primitives",
]
if (is_win || is_mac || is_chromeos) {
......
......@@ -5,9 +5,13 @@
import("//remoting/remoting_srcs.gni")
source_set("client") {
# Disabled the source filters because there are _mac files that need to
# be compiled on all platforms.
set_sources_assignment_filter([])
sources = rebase_path(remoting_srcs_gypi_values.remoting_client_sources,
".",
"//remoting")
set_sources_assignment_filter(sources_assignment_filter)
configs += [
"//build/config/compiler:wexit_time_destructors",
......@@ -19,13 +23,23 @@ source_set("client") {
"//remoting/codec",
"//remoting/protocol",
"//third_party/libyuv",
"//third_party/webrtc/modules/desktop_capture",
"//third_party/webrtc/modules/desktop_capture:primitives",
]
if (is_nacl) {
sources -= [
"client_status_logger.cc",
"server_log_entry_client.cc",
]
}
}
source_set("unit_tests") {
testonly = true
# Disabled the source filters because there are _mac files that need to
# be compiled on all platforms.
set_sources_assignment_filter([])
sources = [
"audio_player_unittest.cc",
"client_status_logger_unittest.cc",
......@@ -37,6 +51,7 @@ source_set("unit_tests") {
"software_video_renderer_unittest.cc",
"touch_input_scaler_unittest.cc",
]
set_sources_assignment_filter(sources_assignment_filter)
configs += [ "//remoting:version" ]
......
# Copyright 2014 The Chromium Authors. All rights reserved.
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
assert(is_nacl,
"These targets must only be built using the untrusted NaCl toolchains.")
import("//remoting/remoting_srcs.gni")
# TODO(sergeyu): Port this target to NaCl.
source_set("plugin") {
executable("remoting_client_plugin_newlib") {
sources =
rebase_path(remoting_srcs_gypi_values.remoting_client_plugin_sources,
".",
......@@ -13,17 +15,18 @@ source_set("plugin") {
configs += [ "//build/config/compiler:wexit_time_destructors" ]
defines = [ "HAVE_STDINT_H" ] # Required by on2_integer.h.
deps = [
"//net",
"//ppapi/cpp:objects",
"//ppapi/cpp/private:internal_module",
"//ppapi/cpp",
"//ppapi/native_client:ppapi_lib",
"//remoting/base",
"//remoting/client",
"//remoting/codec",
"//remoting/protocol",
"//third_party/webrtc/modules/desktop_capture",
"//third_party/libyuv",
"//third_party/webrtc/modules/desktop_capture:primitives",
"//ui/events:dom_keycode_converter",
]
include_dirs = [ "//ppapi/lib/gl/include" ]
}
......@@ -16,12 +16,32 @@ source_set("codec") {
"//media",
"//media:shared_memory_support",
"//remoting/proto",
"//remoting/resources",
"//third_party/libvpx",
"//third_party/libyuv",
"//third_party/opus",
"//third_party/webrtc/modules/desktop_capture",
"//third_party/webrtc/modules/desktop_capture:primitives",
]
if (is_nacl) {
deps -= [
"//media",
"//media:shared_memory_support",
]
sources -= [
"audio_encoder.h",
"audio_encoder_opus.cc",
"audio_encoder_opus.h",
"audio_encoder_verbatim.cc",
"audio_encoder_verbatim.h",
"video_encoder.h",
"video_encoder_helper.cc",
"video_encoder_helper.h",
"video_encoder_verbatim.cc",
"video_encoder_verbatim.h",
"video_encoder_vpx.cc",
"video_encoder_vpx.h",
]
}
}
source_set("unit_tests") {
......
......@@ -28,6 +28,13 @@ source_set("protocol") {
"//remoting/codec",
"//remoting/signaling",
]
if (is_nacl) {
sources -= [
"chromium_port_allocator.cc",
"chromium_socket_factory.cc",
]
}
}
source_set("test_support") {
......
......@@ -273,6 +273,7 @@
'client/plugin/pepper_cursor_setter.h',
'client/plugin/pepper_input_handler.cc',
'client/plugin/pepper_input_handler.h',
'client/plugin/pepper_module.cc',
'client/plugin/pepper_mouse_locker.cc',
'client/plugin/pepper_mouse_locker.h',
'client/plugin/pepper_network_manager.cc',
......
......@@ -26,6 +26,14 @@ source_set("signaling") {
"//net",
"//remoting/base",
]
if (is_nacl) {
sources -= [
"log_to_server.cc",
"server_log_entry.cc",
"xmpp_signal_strategy.cc",
]
}
}
source_set("test_support") {
......
......@@ -5,6 +5,7 @@
# Keep in sync with 'remoting_webapp' target in remoting/remoting_client.gypi.
import("//build/config/chrome_build.gni")
import("//build/config/features.gni")
import("//build/util/version.gni")
import("//remoting/remoting_locales.gni")
import("//remoting/remoting_options.gni")
......@@ -183,6 +184,17 @@ template("desktop_remoting_webapp") {
"$target_gen_dir/credits.html",
]
if (enable_pnacl) {
pexe_dir = get_label_info(
"//remoting/client/plugin:remoting_client_plugin_newlib(//build/toolchain/nacl:newlib_pnacl)",
"root_out_dir")
extra_files += [ "$pexe_dir/remoting_client_plugin_newlib.pexe" ]
if (is_debug) {
extra_files += [ "$pexe_dir/remoting_client_plugin_newlib.pexe.debug" ]
}
}
inputs = [ rebase_path("crd/manifest.json.jinja2", root_build_dir) ] +
remoting_version_files +
rebase_path(remoting_webapp_crd_files, root_build_dir) +
......@@ -202,6 +214,12 @@ template("desktop_remoting_webapp") {
"//remoting/webapp:credits",
]
if (enable_pnacl) {
deps += [
"//remoting/client/plugin:remoting_client_plugin_newlib(//build/toolchain/nacl:newlib_pnacl)",
]
}
# Create a file that contains a list of all the resource files needed
# to build the webapp. This is needed to avoid problems on platforms that
# limit the size of a command line.
......
......@@ -95,4 +95,8 @@ component("boringssl") {
} else {
defines += [ "OPENSSL_NO_ASM" ]
}
if (is_nacl) {
deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
}
}
......@@ -266,6 +266,10 @@ static_library("libjingle") {
cflags = [ "/wd4005" ]
}
if (is_nacl) {
deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
}
configs += [ ":jingle_unexported_configs" ]
public_configs = [ ":jingle_public_configs" ]
all_dependent_configs = [ ":jingle_all_dependent_configs" ]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment