include(Compiler/Tasking)
__compiler_tasking(C)

set(CMAKE_C90_STANDARD_COMPILE_OPTION "--iso=90" "--strict")
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "--iso=90")

set(CMAKE_C99_STANDARD_COMPILE_OPTION "--iso=99" "--strict")
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "--iso=99")

set(CMAKE_C11_STANDARD_COMPILE_OPTION "--iso=11" "--strict")
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "--iso=11")

set(CMAKE_C_STANDARD_LATEST 11)

if(CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "TriCore")
  if(CMAKE_TASKING_TOOLSET STREQUAL "SmartCode")
    __compiler_check_default_language_standard(C 10.1 11)
  else()
    __compiler_check_default_language_standard(C 6.3 11)
  endif()
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "ARM")
  if(CMAKE_TASKING_TOOLSET STREQUAL "SmartCode")
    __compiler_check_default_language_standard(C 10.1 11)
  elseif(CMAKE_TASKING_TOOLSET STREQUAL "TriCore")
    __compiler_check_default_language_standard(C 6.3 11)
  else()
    __compiler_check_default_language_standard(C 6.0 11)
  endif()
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "MCS")
  if(CMAKE_TASKING_TOOLSET STREQUAL "SmartCode")
    __compiler_check_default_language_standard(C 10.1 11)
  elseif(CMAKE_TASKING_TOOLSET STREQUAL "TriCore")
    __compiler_check_default_language_standard(C 6.3 11)
  else()
    __compiler_check_default_language_standard(C 3.3 11)
  endif()
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "ARC")
  __compiler_check_default_language_standard(C 10.1 11)
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "8051")
  if(CMAKE_TASKING_TOOLSET STREQUAL "SmartCode")
    __compiler_check_default_language_standard(C 10.1 11)
  elseif(CMAKE_TASKING_TOOLSET STREQUAL "TriCore")
    __compiler_check_default_language_standard(C 6.3 11)
  else()
    __compiler_check_default_language_standard(C 7.2 89)
  endif()
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "PCP")
  __compiler_check_default_language_standard(C 6.3 11)
endif()