Added a public GN config to compile mock headers.
Due to bugs.webrtc.org/216 code that includes //webrtc/modules/audio_device:mock_audio_device fails to compile on Windows unless a warning flag is switched off. It seems that googlemock changes types of overridden virtual method parameters from 'const int' to 'int', which causes the VS compiler to report an error. The problem was not solved by suppressing the flag wd4373 in //webrtc/modules/audio_device:mock_audio_device, because targets that include the headers are compiled separately. This CL adds the flag suppression to the GN variable |all_dependent_configs|. Then GN will apply the configuration to all reachable dependencies. This is needed to reduce clutter and extra conditions in dependency build targets. The reason for |all_dependent_configs| before |public_configs| is for a situation in which a targets headers include the headers from this target. Then dependencies of dependencies will have a copy of this targets' code after preprocessing, and compilation will fail. This will happen if we e.g. change mock_voice_engine to return a MockAudioTransport or MockAudioDevice. This change has been tested by compiling a dependent CL (https://codereview.webrtc.org/2454373002/) which uses these mocks on Windows without suppressing the flag. There is no GYP change, because test code has been removed from GYP. NOTRY=True BUG=webrtc:216 Review-Url: https://codereview.webrtc.org/2492713003 Cr-Commit-Position: refs/heads/master@{#15024}
This commit is contained in:
parent
647bf43dcb
commit
44c7ecf88e
@ -241,6 +241,17 @@ rtc_static_library("audio_device") {
|
||||
}
|
||||
}
|
||||
|
||||
config("mock_audio_device_config") {
|
||||
if (is_win) {
|
||||
cflags = [
|
||||
# TODO(phoglund): get rid of 4373 supression when
|
||||
# http://code.google.com/p/webrtc/issues/detail?id=261 is solved.
|
||||
# legacy warning for ignoring const / volatile in signatures.
|
||||
"/wd4373",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
if (rtc_include_tests) {
|
||||
rtc_source_set("mock_audio_device") {
|
||||
testonly = true
|
||||
@ -252,14 +263,7 @@ if (rtc_include_tests) {
|
||||
":audio_device",
|
||||
"../../test:test_support",
|
||||
]
|
||||
if (is_win) {
|
||||
cflags = [
|
||||
# TODO(phoglund): get rid of 4373 supression when
|
||||
# http://code.google.com/p/webrtc/issues/detail?id=261 is solved.
|
||||
# legacy warning for ignoring const / volatile in signatures.
|
||||
"/wd4373",
|
||||
]
|
||||
}
|
||||
all_dependent_configs = [ ":mock_audio_device_config" ]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user