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