Files
platform-external-webrtc/webrtc/modules/video_processing/BUILD.gn
kjellander b62dbbe985 GN: Change rtc_source_set targets --> rtc_static_library
This changes most non-test related rtc_source_set targets to be
rtc_static_library instead. Targets without any .cc files are excluded.
This should bring back the build behavior we used to have with GYP
(i.e. same symbols exported in the libjingle_peerconnection.a file, which
are used by some downstream projects).

After doing an Android build with these changes:
$ nm --defined-only -g -C out/Release/lib.unstripped/libjingle_peerconnection_so.so | grep -i createpeerconnectionf
00077c51 T Java_org_webrtc_PeerConnectionFactory_nativeCreatePeerConnectionFactory
$ nm --defined-only -g -C out/Release/obj/webrtc/api/libjingle_peerconnection.a | grep -i createpeerconnectionf
00000001 T webrtc::CreatePeerConnectionFactory(rtc::Thread*, rtc::Thread*, rtc::Thread*, webrtc::AudioDeviceModule*, cricket::WebRtcVideoEncoderFactory*, cricket::WebRtcVideoDecoderFactory*)
00000001 T webrtc::CreatePeerConnectionFactory()

See https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/cookbook.md#Note-on-static-libraries
for more details on this.

NOTICE: This should be further cleaned up in the future, to reduce
binary bloat and unnecessary linking time. Right now it's more
important to restore the desired build output though.

BUG=webrtc:6410, chromium:630755

Review-Url: https://codereview.webrtc.org/2361623004
Cr-Commit-Position: refs/heads/master@{#14364}
2016-09-23 07:38:58 +00:00

89 lines
2.4 KiB
Plaintext

# Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
import("//build/config/arm.gni")
import("../../build/webrtc.gni")
build_video_processing_sse2 = current_cpu == "x86" || current_cpu == "x64"
rtc_static_library("video_processing") {
sources = [
"frame_preprocessor.cc",
"frame_preprocessor.h",
"include/video_processing.h",
"include/video_processing_defines.h",
"spatial_resampler.cc",
"spatial_resampler.h",
"util/denoiser_filter.cc",
"util/denoiser_filter.h",
"util/denoiser_filter_c.cc",
"util/denoiser_filter_c.h",
"util/noise_estimation.cc",
"util/noise_estimation.h",
"util/skin_detection.cc",
"util/skin_detection.h",
"video_decimator.cc",
"video_decimator.h",
"video_denoiser.cc",
"video_denoiser.h",
"video_processing_impl.cc",
"video_processing_impl.h",
]
deps = [
"../../common_audio",
"../../common_video",
"../../modules/utility",
"../../system_wrappers",
]
if (build_video_processing_sse2) {
deps += [ ":video_processing_sse2" ]
}
if (rtc_build_with_neon) {
deps += [ ":video_processing_neon" ]
}
if (is_clang) {
# Suppress warnings from Chrome's Clang plugins.
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
if (build_video_processing_sse2) {
rtc_static_library("video_processing_sse2") {
sources = [
"util/denoiser_filter_sse2.cc",
"util/denoiser_filter_sse2.h",
]
if (is_clang) {
# Suppress warnings from Chrome's Clang plugins.
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
if (is_posix) {
cflags = [ "-msse2" ]
}
}
}
if (rtc_build_with_neon) {
rtc_static_library("video_processing_neon") {
sources = [
"util/denoiser_filter_neon.cc",
"util/denoiser_filter_neon.h",
]
if (current_cpu != "arm64") {
suppressed_configs += [ "//build/config/compiler:compiler_arm_fpu" ]
cflags = [ "-mfpu=neon" ]
}
}
}