
if("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC")
  # TODO: someone needs to provide the msvc equivalent warning flags
  macro(dispatch_common_warnings)
  endmacro()
else()
  macro(dispatch_common_warnings)
    add_compile_options(-Werror)
    add_compile_options(-Wall)
    add_compile_options(-Wextra)

    add_compile_options(-Warray-bounds-pointer-arithmetic)
    add_compile_options(-Wassign-enum)
    add_compile_options(-Watomic-properties)
    add_compile_options(-Wcomma)
    add_compile_options(-Wconditional-uninitialized)
    add_compile_options(-Wconversion)
    add_compile_options(-Wcovered-switch-default)
    add_compile_options(-Wdate-time)
    add_compile_options(-Wdeprecated)
    add_compile_options(-Wdocumentation)
    add_compile_options(-Wdouble-promotion)
    add_compile_options(-Wduplicate-enum)
    add_compile_options(-Wexpansion-to-defined)
    add_compile_options(-Wfloat-equal)
    add_compile_options(-Widiomatic-parentheses)
    add_compile_options(-Winfinite-recursion)
    add_compile_options(-Wmissing-prototypes)
    add_compile_options(-Wnewline-eof)
    add_compile_options(-Wnullable-to-nonnull-conversion)
    add_compile_options(-Wobjc-interface-ivars)
    add_compile_options(-Wover-aligned)
    add_compile_options(-Wpacked)
    add_compile_options(-Wpointer-arith)
    add_compile_options(-Wselector)
    add_compile_options(-Wshadow)
    add_compile_options(-Wshorten-64-to-32)
    add_compile_options(-Wsign-conversion)
    add_compile_options(-Wstatic-in-inline)
    add_compile_options(-Wsuper-class-method-mismatch)
    add_compile_options(-Wswitch-enum)
    add_compile_options(-Wunguarded-availability)
    add_compile_options(-Wunreachable-code)
    add_compile_options(-Wunused)

    add_compile_options(-Wno-unknown-warning-option)
    add_compile_options(-Wno-trigraphs)
    add_compile_options(-Wno-four-char-constants)
    add_compile_options(-Wno-disabled-macro-expansion)
    add_compile_options(-Wno-pedantic)
    add_compile_options(-Wno-bad-function-cast)
    add_compile_options(-Wno-c++-compat)
    add_compile_options(-Wno-c++98-compat)
    add_compile_options(-Wno-c++98-compat-pedantic)
    add_compile_options(-Wno-cast-align)
    add_compile_options(-Wno-cast-qual)
    add_compile_options(-Wno-documentation-unknown-command)
    add_compile_options(-Wno-format-nonliteral)
    add_compile_options(-Wno-missing-variable-declarations)
    add_compile_options(-Wno-old-style-cast)
    add_compile_options(-Wno-padded)
    add_compile_options(-Wno-reserved-id-macro)
    add_compile_options(-Wno-shift-sign-overflow)
    add_compile_options(-Wno-undef)
    add_compile_options(-Wno-unreachable-code-aggressive)
    add_compile_options(-Wno-unused-macros)
    add_compile_options(-Wno-used-but-marked-unused)
    add_compile_options(-Wno-vla)

    if(CMAKE_SYSTEM_NAME STREQUAL Android)
      add_compile_options(-Wno-incompatible-function-pointer-types)
      add_compile_options(-Wno-implicit-function-declaration)
      add_compile_options(-Wno-conversion)
      add_compile_options(-Wno-int-conversion)
      add_compile_options(-Wno-shorten-64-to-32)
    endif()
    add_compile_options(-Wno-error=assign-enum)
  endmacro()
endif()
