cmake_minimum_required (VERSION 2.8)
project(CheckLanguage NONE)
include(CheckLanguage)

set(langs )
set(expect_C 1)
set(expect_CXX 1)

if(APPLE)
  set(expect_OBJC 1)
  set(expect_OBJCXX 1)
endif()
unset(expect_Fortran)
set(expect_NoSuchLanguage 0)

set(LANGUAGES C CXX Fortran CUDA NoSuchLanguage)
if(APPLE)
  list(APPEND LANGUAGES OBJC OBJCXX)
endif()

foreach(lang ${LANGUAGES})
  check_language(${lang})
  if(NOT DEFINED CMAKE_${lang}_COMPILER)
    message(FATAL_ERROR "check_language(${lang}) did not set result")
  endif()
  if(DEFINED expect_${lang})
    if(expect_${lang} AND NOT CMAKE_${lang}_COMPILER)
      message(FATAL_ERROR "check_language(${lang}) should not fail!")
    elseif(NOT expect_${lang} AND CMAKE_${lang}_COMPILER)
      message(FATAL_ERROR "check_language(${lang}) should not succeed!")
    endif()
  endif()
endforeach()
