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