1include(CheckCSourceCompiles)
2
3macro(check_const_exists CONST FILES VARIABLE)
4  if (NOT DEFINED ${VARIABLE})
5    set(check_const_exists_source "")
6    foreach(file ${FILES})
7      set(check_const_exists_source
8          "${check_const_exists_source}
9          #include <${file}>")
10    endforeach()
11    set(check_const_exists_source
12        "${check_const_exists_source}
13        int main() { (void)${CONST}; return 0; }")
14
15    check_c_source_compiles("${check_const_exists_source}" ${VARIABLE})
16
17    if (${${VARIABLE}})
18      set(${VARIABLE} 1 CACHE INTERNAL "Have const ${CONST}")
19      message(STATUS "Looking for ${CONST} - found")
20    else()
21      set(${VARIABLE} 0 CACHE INTERNAL "Have const ${CONST}")
22      message(STATUS "Looking for ${CONST} - not found")
23    endif()
24  endif()
25endmacro(check_const_exists)
26