function(DisplayCompilerEnvironment)
    if (JLANG_CMAKE_SHOW_DETAIL)
        message(STATUS "CMAKE_C_COMPILER_ID   = ${CMAKE_C_COMPILER_ID}")
        message(STATUS "CMAKE_CXX_COMPILER_ID = ${CMAKE_CXX_COMPILER_ID}")
        message(STATUS "CMAKE_C_COMPILER_VERSION   = ${CMAKE_C_COMPILER_VERSION}")
        message(STATUS "CMAKE_CXX_COMPILER_VERSION = ${CMAKE_CXX_COMPILER_VERSION}")
        message(STATUS "CMAKE_COMPILER_IS_GNUCC  = ${CMAKE_COMPILER_IS_GNUCC}")
        message(STATUS "CMAKE_COMPILER_IS_GNUCXX = ${CMAKE_COMPILER_IS_GNUCXX}")
        message(STATUS "")

        message(STATUS "WIN32       = ${WIN32}")
        message(STATUS "MINGW       = ${MINGW}")
        message(STATUS "CYGWIN      = ${CYGWIN}")
        if (NOT JLANG_CMAKE_SHOW_MSVC_DETAIL)
            message(STATUS "MSVC        = ${MSVC}")
            message(STATUS "MSVC_IDE    = ${MSVC_IDE}")
        endif()
        message(STATUS "")
    endif()

    if (JLANG_CMAKE_SHOW_MSVC_DETAIL)
        if (MSVC_IDE)
            message(STATUS "MSVC        = ${MSVC}")
            message(STATUS "MSVC_IDE    = ${MSVC_IDE}")
            message(STATUS "MSVC60      = ${MSVC60}")
            message(STATUS "MSVC70      = ${MSVC70}")
            message(STATUS "MSVC71      = ${MSVC71}")
            message(STATUS "MSVC80      = ${MSVC80}")
            message(STATUS "MSVC90      = ${MSVC90}")
            message(STATUS "MSVC10      = ${MSVC10}")
            message(STATUS "MSVC11      = ${MSVC11}")
            message(STATUS "MSVC12      = ${MSVC12}")
            message(STATUS "MSVC13      = ${MSVC13}")
            message(STATUS "CMAKE_COMPILER_2005 = ${CMAKE_COMPILER_2005}")
            message(STATUS "MSVC_VERSION = ${MSVC_VERSION}")
            message(STATUS "")
        endif()
    endif()
endfunction(DisplayCompilerEnvironment)
