cmake: check for -Wmissing-declarations support

Bug: aomedia:3416
Change-Id: Ic4eee8b758f91f8689f4a7ff832bca7803f383a9
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 05dcd57..9f9a1b3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -472,6 +472,12 @@
   add_library(yuv OBJECT ${AOM_LIBYUV_SOURCES})
   if(NOT MSVC)
     target_compile_options(yuv PRIVATE -Wno-shadow)
+    # Many functions in libyuv trigger this warning when enabled with gcc and
+    # clang.
+    is_flag_present(AOM_CXX_FLAGS "-Wmissing-declarations" flag_present)
+    if(flag_present)
+      target_compile_options(yuv PRIVATE -Wno-missing-declarations)
+    endif()
     # Many functions in libyuv trigger this warning when enabled with clang.
     is_flag_present(AOM_CXX_FLAGS "-Wmissing-prototypes" flag_present)
     if(flag_present)
diff --git a/build/cmake/aom_configure.cmake b/build/cmake/aom_configure.cmake
index 44fe8b7..418ecfa 100644
--- a/build/cmake/aom_configure.cmake
+++ b/build/cmake/aom_configure.cmake
@@ -343,6 +343,7 @@
   add_compiler_flag_if_supported("-Wformat=2")
   add_c_flag_if_supported("-Wimplicit-function-declaration")
   add_compiler_flag_if_supported("-Wlogical-op")
+  add_compiler_flag_if_supported("-Wmissing-declarations")
   if(CMAKE_C_COMPILER_ID MATCHES "Clang")
     add_compiler_flag_if_supported("-Wmissing-prototypes")
   else()