set(CMake_CXX14_BROKEN 0)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC|Clang|PGI|Intel")
  if(NOT CMAKE_CXX14_STANDARD_COMPILE_OPTION)
    set(CMake_CXX14_WORKS 0)
  endif()
  if(NOT DEFINED CMake_CXX14_WORKS)
    include(${CMAKE_CURRENT_LIST_DIR}/cm_message_checks_compat.cmake)
    cm_message_checks_compat(
      "Checking if compiler supports needed C++14 constructs"
      __checkStart __checkPass __checkFail)
    message(${__checkStart})
    try_compile(CMake_CXX14_WORKS
      ${CMAKE_CURRENT_BINARY_DIR}
      ${CMAKE_CURRENT_LIST_DIR}/cm_cxx14_check.cpp
      CMAKE_FLAGS -DCMAKE_CXX_STANDARD=14
      OUTPUT_VARIABLE OUTPUT
      )
    if(CMake_CXX14_WORKS AND "${OUTPUT}" MATCHES "error: no member named.*gets.*in the global namespace")
      set_property(CACHE CMake_CXX14_WORKS PROPERTY VALUE 0)
    endif()
    if(CMake_CXX14_WORKS)
      message(${__checkPass} "yes")
      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
        "Determining if compiler supports needed C++14 constructs passed with the following output:\n"
        "${OUTPUT}\n"
        "\n"
        )
    else()
      message(${__checkFail} "no")
      file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
        "Determining if compiler supports needed C++14 constructs failed with the following output:\n"
        "${OUTPUT}\n"
        "\n"
        )
    endif()
  endif()
  if(NOT CMake_CXX14_WORKS)
    set(CMake_CXX14_BROKEN 1)
  endif()
endif()
