summaryrefslogtreecommitdiff
path: root/cmake/utils/CompilerUtils.cmake
blob: 35548f4f0825f8dfa92c516d62c6b555528353bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
include(CheckCCompilerFlag)

function(test_and_set_c_compiler_flag_global _flag)
  string(REGEX REPLACE "-" "_" _sflag ${_flag})
  string(REGEX REPLACE "=" "_" _sflag ${_sflag})
  # Use -Werror during test so clang rejects unknown flags
  set(CMAKE_REQUIRED_FLAGS "-Werror ${_flag}")
  check_c_compiler_flag(${_flag} COMPILER_SUPPORTS_FLAG_${_sflag})

  if(COMPILER_SUPPORTS_FLAG_${_sflag})
    add_compile_options(${_flag})
  endif()
endfunction()