diff --git a/BUILD.gn b/BUILD.gn index e590644526..ef72b41495 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -6,6 +6,12 @@ # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. +# This is the root build file for GN. GN will start processing by loading this +# file, and recursively load all dependencies until all dependencies are either +# resolved or known not to exist (which will cause the build to fail). So if +# you add a new build file, there must be some path of dependencies from this +# file to your new one or GN won't know about it. + import("//build/config/linux/pkg_config.gni") import("//build/config/sanitizers/sanitizers.gni") import("webrtc.gni") @@ -16,6 +22,8 @@ if (is_android) { } if (!build_with_chromium) { + # This target should (transitively) cause everything to be built; if you run + # 'ninja default' and then 'ninja all', the second build should do no work. group("default") { testonly = true deps = [ @@ -24,7 +32,46 @@ if (!build_with_chromium) { "rtc_tools", ] if (rtc_include_tests) { - deps += [ ":webrtc_tests" ] + deps += [ + ":rtc_unittests", + ":video_engine_tests", + ":webrtc_nonparallel_tests", + ":webrtc_perf_tests", + "common_audio:common_audio_unittests", + "common_video:common_video_unittests", + "media:rtc_media_unittests", + "modules:modules_tests", + "modules:modules_unittests", + "modules/audio_coding:audio_coding_tests", + "modules/audio_processing:audio_processing_tests", + "modules/remote_bitrate_estimator:bwe_simulations_tests", + "modules/rtp_rtcp:test_packet_masks_metrics", + "modules/video_capture:video_capture_internal_impl", + "ortc:ortc_unittests", + "pc:peerconnection_unittests", + "pc:rtc_pc_unittests", + "rtc_base:rtc_base_tests_utils", + "stats:rtc_stats_unittests", + "system_wrappers:system_wrappers_unittests", + "test", + "video:screenshare_loopback", + "video:video_loopback", + "voice_engine:voice_engine_unittests", + ] + if (is_android) { + deps += [ + ":android_junit_tests", + "sdk/android:libjingle_peerconnection_android_unittest", + ] + } else { + deps += [ "modules/video_capture:video_capture_tests" ] + } + if (rtc_enable_protobuf) { + deps += [ + "audio:low_bandwidth_audio_test", + "logging:rtc_event_log2rtp_dump", + ] + } } } } @@ -294,58 +341,6 @@ if (!build_with_chromium) { deps += [ "logging:rtc_event_log_proto" ] } } - - if (rtc_include_tests) { - # Target to build all the WebRTC tests (but not examples or tools). - # Executable in order to get a target that links all WebRTC code. - rtc_executable("webrtc_tests") { - testonly = true - - # Only the root target should depend on this. - visibility = [ "//:default" ] - - deps = [ - ":rtc_unittests", - ":video_engine_tests", - ":webrtc_nonparallel_tests", - ":webrtc_perf_tests", - "common_audio:common_audio_unittests", - "common_video:common_video_unittests", - "media:rtc_media_unittests", - "modules:modules_tests", - "modules:modules_unittests", - "modules/audio_coding:audio_coding_tests", - "modules/audio_processing:audio_processing_tests", - "modules/remote_bitrate_estimator:bwe_simulations_tests", - "modules/rtp_rtcp:test_packet_masks_metrics", - "modules/video_capture:video_capture_internal_impl", - "ortc:ortc_unittests", - "pc:peerconnection_unittests", - "pc:rtc_pc_unittests", - "rtc_base:rtc_base_tests_utils", - "stats:rtc_stats_unittests", - "system_wrappers:system_wrappers_unittests", - "test", - "video:screenshare_loopback", - "video:video_loopback", - "voice_engine:voice_engine_unittests", - ] - if (is_android) { - deps += [ - ":android_junit_tests", - "sdk/android:libjingle_peerconnection_android_unittest", - ] - } else { - deps += [ "modules/video_capture:video_capture_tests" ] - } - if (rtc_enable_protobuf) { - deps += [ - "audio:low_bandwidth_audio_test", - "logging:rtc_event_log2rtp_dump", - ] - } - } - } } rtc_static_library("webrtc_common") {