## ## Copyright (c) 2016, Alliance for Open Media. All rights reserved ## ## This source code is subject to the terms of the BSD 2 Clause License and ## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License ## was not distributed with this source code in the LICENSE file, you can ## obtain it at www.aomedia.org/license/software. If the Alliance for Open ## Media Patent License 1.0 was not distributed with this source code in the ## PATENTS file, you can obtain it at www.aomedia.org/license/patent. ## cmake_minimum_required(VERSION 3.2) include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) function (add_c_flag_if_supported c_flag) unset(C_FLAG_SUPPORTED CACHE) message("Checking C compiler flag support for: " ${c_flag}) check_c_compiler_flag("${c_flag}" C_FLAG_SUPPORTED) if (C_FLAG_SUPPORTED) set(CMAKE_C_FLAGS "${c_flag} ${CMAKE_C_FLAGS}" CACHE STRING "" FORCE) endif () endfunction () function (add_cxx_flag_if_supported cxx_flag) unset(CXX_FLAG_SUPPORTED CACHE) message("Checking CXX compiler flag support for: " ${cxx_flag}) check_cxx_compiler_flag("${cxx_flag}" CXX_FLAG_SUPPORTED) if (CXX_FLAG_SUPPORTED) set(CMAKE_CXX_FLAGS "${cxx_flag} ${CMAKE_CXX_FLAGS}" CACHE STRING "" FORCE) endif () endfunction () function (add_compiler_flag_if_supported flag) add_c_flag_if_supported(${flag}) add_cxx_flag_if_supported(${flag}) endfunction () # Set warning levels. if (MSVC) add_compiler_flag_if_supported("/W3") # Disable MSVC warnings that suggest making code non-portable. add_compiler_flag_if_supported("/wd4996") if (ENABLE_WERROR) add_compiler_flag_if_supported("/WX") endif () else () add_compiler_flag_if_supported("-Wall") add_compiler_flag_if_supported("-Wextra") add_compiler_flag_if_supported("-Wno-deprecated") add_compiler_flag_if_supported("-Wshorten-64-to-32") add_compiler_flag_if_supported("-Wnarrowing") if (ENABLE_WERROR) add_compiler_flag_if_supported("-Werror") endif () endif ()