Make update of cmake's flags in compiler checks optional. BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76 Change-Id: Ia9b483f01cd940c16ba4ea1942b333131398cf37
diff --git a/build/cmake/aom_configure.cmake b/build/cmake/aom_configure.cmake index f872b76..4631cfb 100644 --- a/build/cmake/aom_configure.cmake +++ b/build/cmake/aom_configure.cmake
@@ -31,7 +31,7 @@ add_compiler_flag_if_supported("/WX") endif () else () - require_c_flag("-std=c99") + require_c_flag("-std=c99" YES) add_compiler_flag_if_supported("-Wall") add_compiler_flag_if_supported("-Wdisabled-optimization") add_compiler_flag_if_supported("-Wextra")
diff --git a/build/cmake/compiler_flags.cmake b/build/cmake/compiler_flags.cmake index 0c8f551..9249cbe 100644 --- a/build/cmake/compiler_flags.cmake +++ b/build/cmake/compiler_flags.cmake
@@ -71,7 +71,7 @@ # Checks C compiler for support of $c_flag and terminates generation when # support is not present. -function (require_c_flag c_flag) +function (require_c_flag c_flag update_c_flags) unset(C_FLAG_FOUND CACHE) string(FIND "${CMAKE_C_FLAGS}" "${c_flag}" C_FLAG_FOUND) @@ -83,13 +83,15 @@ message(FATAL_ERROR "${PROJECT_NAME} requires support for C flag: ${c_flag}.") endif () - set(CMAKE_C_FLAGS "${c_flag} ${CMAKE_C_FLAGS}" CACHE STRING "" FORCE) + if (update_c_flags) + set(CMAKE_C_FLAGS "${c_flag} ${CMAKE_C_FLAGS}" CACHE STRING "" FORCE) + endif () endif () endfunction () # Checks CXX compiler for support of $cxx_flag and terminates generation when # support is not present. -function (require_cxx_flag cxx_flag) +function (require_cxx_flag cxx_flag update_cxx_flags) unset(CXX_FLAG_FOUND CACHE) string(FIND "${CMAKE_CXX_FLAGS}" "${cxx_flag}" CXX_FLAG_FOUND) @@ -101,39 +103,42 @@ message(FATAL_ERROR "${PROJECT_NAME} requires support for CXX flag: ${cxx_flag}.") endif () - set(CMAKE_CXX_FLAGS "${cxx_flag} ${CMAKE_CXX_FLAGS}" CACHE STRING "" FORCE) + if (update_cxx_flags) + set(CMAKE_CXX_FLAGS "${cxx_flag} ${CMAKE_CXX_FLAGS}" CACHE STRING "" + FORCE) + endif () endif () endfunction () # Checks for support of $flag by both the C and CXX compilers. Terminates # generation when support is not present in both compilers. -function (require_flag flag) - require_c_flag(${flag}) - require_cxx_flag(${flag}) +function (require_flag flag update_cmake_flags) + require_c_flag(${flag} ${update_cmake_flags}) + require_cxx_flag(${flag} ${update_cmake_flags}) endfunction () # Checks only non-MSVC targets for support of $c_flag and terminates generation # when support is not present. -function (require_c_flag_nomsvc c_flag) +function (require_c_flag_nomsvc c_flag update_c_flags) if (NOT MSVC) - require_c_flag(${c_flag}) + require_c_flag(${c_flag} ${update_c_flags}) endif () endfunction () # Checks only non-MSVC targets for support of $cxx_flag and terminates # generation when support is not present. -function (require_cxx_flag_nomsvc cxx_flag) +function (require_cxx_flag_nomsvc cxx_flag update_cxx_flags) if (NOT MSVC) - require_cxx_flag(${cxx_flag}) + require_cxx_flag(${cxx_flag} ${update_cxx_flags}) endif () endfunction () # Checks only non-MSVC targets for support of $flag by both the C and CXX # compilers. Terminates generation when support is not present in both # compilers. -function (require_flag_nomsvc flag) - require_c_flag_nomsvc(${flag}) - require_cxx_flag_nomsvc(${flag}) +function (require_flag_nomsvc flag update_cmake_flags) + require_c_flag_nomsvc(${flag} ${update_cmake_flags}) + require_cxx_flag_nomsvc(${flag} ${update_cmake_flags}) endfunction () # Adds $preproc_def to C compiler command line (as -D$preproc_def) if not