CheckIncludeFileCXX.cmake 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #
  2. # Check if the include file exists.
  3. #
  4. # CHECK_INCLUDE_FILE - macro which checks the include file exists.
  5. # INCLUDE - name of include file
  6. # VARIABLE - variable to return result
  7. # OPTIONAL - a third argument can be extra flags which are passed to the compiler
  8. #
  9. MACRO(CHECK_INCLUDE_FILE_CXX INCLUDE VARIABLE)
  10. IF("${VARIABLE}" MATCHES "^${VARIABLE}$")
  11. MESSAGE(STATUS "Checking for CXX include file ${INCLUDE}")
  12. SET(CHECK_INCLUDE_FILE_VAR ${INCLUDE})
  13. CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in
  14. ${CMAKE_BINARY_DIR}/CMakeTmp/CheckIncludeFile.cxx IMMEDIATE)
  15. IF(${ARGC} EQUAL 3)
  16. SET(CMAKE_CXX_FLAGS_SAVE ${CMAKE_CXX_FLAGS})
  17. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARGV2}")
  18. ENDIF(${ARGC} EQUAL 3)
  19. TRY_COMPILE(${VARIABLE}
  20. ${CMAKE_BINARY_DIR}
  21. ${CMAKE_BINARY_DIR}/CMakeTmp/CheckIncludeFile.cxx
  22. OUTPUT_VARIABLE OUTPUT)
  23. IF(${ARGC} EQUAL 3)
  24. SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS_SAVE})
  25. ENDIF(${ARGC} EQUAL 3)
  26. IF(${VARIABLE})
  27. MESSAGE(STATUS "Checking for CXX include file ${INCLUDE} -- found")
  28. SET(${VARIABLE} 1 CACHE INTERNAL "Have include ${INCLUDE}")
  29. FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeOutput.log
  30. "Determining if the include file ${INCLUDE} "
  31. "exists passed with the following output:\n"
  32. "${OUTPUT}\n\n")
  33. ELSE(${VARIABLE})
  34. MESSAGE(STATUS "Checking for CXX include file ${INCLUDE} -- not found")
  35. SET(${VARIABLE} "" CACHE INTERNAL "Have include ${INCLUDE}")
  36. FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeError.log
  37. "Determining if the include file ${INCLUDE} "
  38. "exists failed with the following output:\n"
  39. "${OUTPUT}\n\n")
  40. ENDIF(${VARIABLE})
  41. ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$")
  42. ENDMACRO(CHECK_INCLUDE_FILE_CXX)