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(test_lang ${LANGUAGES})
  check_language(${test_lang})
  if(NOT DEFINED CMAKE_${test_lang}_COMPILER)
    message(FATAL_ERROR "check_language(${test_lang}) did not set result")
  endif()
  if(DEFINED expect_${test_lang})
    if(expect_${test_lang} AND NOT CMAKE_${test_lang}_COMPILER)
      message(FATAL_ERROR "check_language(${test_lang}) should not fail!")
    elseif(NOT expect_${test_lang} AND CMAKE_${test_lang}_COMPILER)
      message(FATAL_ERROR "check_language(${test_lang}) should not succeed!")
    endif()
  endif()
endforeach()
