## Copyright (c) 2016 The WebM 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. cmake_minimum_required(VERSION 3.2) include(CheckCXXCompilerFlag) function (add_cxx_flag_if_supported cxx_flag) unset(FLAG_SUPPORTED CACHE) message("Checking compiler flag support for: " ${cxx_flag}) CHECK_CXX_COMPILER_FLAG("${cxx_flag}" FLAG_SUPPORTED) if (FLAG_SUPPORTED) set(CMAKE_CXX_FLAGS "${cxx_flag} ${CMAKE_CXX_FLAGS}" CACHE STRING "" FORCE) endif () endfunction () # Set warning levels. if (MSVC) add_cxx_flag_if_supported("/W4") # Disable MSVC warnings that suggest making code non-portable. add_cxx_flag_if_supported("/wd4996") if (ENABLE_WERROR) add_cxx_flag_if_supported("/WX") endif () else () add_cxx_flag_if_supported("-Wall") add_cxx_flag_if_supported("-Wextra") add_cxx_flag_if_supported("-Wno-deprecated") add_cxx_flag_if_supported("-Wshorten-64-to-32") add_cxx_flag_if_supported("-Wnarrowing") if (ENABLE_WERROR) add_cxx_flag_if_supported("-Werror") endif () endif ()