1include(CheckCSourceCompiles)
2
3macro(check_function_keywords _wordlist)
4  set(${_result} "")
5  foreach(flag ${_wordlist})
6    string(REGEX REPLACE "[-+/ ()]" "_" flagname "${flag}")
7    string(TOUPPER "${flagname}" flagname)
8    set(have_flag "HAVE_${flagname}")
9    check_c_source_compiles("${flag} void func(); void func() { } int main() { func(); return 0; }" ${have_flag})
10    if(${have_flag} AND NOT ${_result})
11      set(${_result} "${flag}")
12    endif(${have_flag} AND NOT ${_result})
13  endforeach(flag)
14endmacro(check_function_keywords)
15