| 123456789101112131415161718192021222324252627282930313233343536 |
- cmake_minimum_required(VERSION 3.10)
- 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 HIP ASM 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()
- if(CMAKE_${test_lang}_COMPILER)
- enable_language(${test_lang})
- endif()
- endforeach()
|