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