# Wrapper toolchain for building VTK 9.6 with Embarcadero bcc64x.
#
# Includes the project's bcc64x toolchain unchanged, then fills in the C/C++
# language-dialect flag mappings that CMake's "Embarcadero" compiler module does
# not provide. VTK's bundled third-party C libraries (expat, etc.) request
# specific C standards via C_STANDARD; without these mappings CMake aborts with
# 'the current compiler "Embarcadero" does not support this'. bcc64x is clang-15,
# so the standard -std= flags apply.

include("${CMAKE_CURRENT_LIST_DIR}/bcc64x-toolchain.cmake")

# --- C dialects ---
set(CMAKE_C90_STANDARD_COMPILE_OPTION  "-std=c89")
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu89")
set(CMAKE_C99_STANDARD_COMPILE_OPTION  "-std=c99")
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
set(CMAKE_C11_STANDARD_COMPILE_OPTION  "-std=c11")
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
set(CMAKE_C17_STANDARD_COMPILE_OPTION  "-std=c17")
set(CMAKE_C17_EXTENSION_COMPILE_OPTION "-std=gnu17")
set(CMAKE_C23_STANDARD_COMPILE_OPTION  "-std=c23")
set(CMAKE_C23_EXTENSION_COMPILE_OPTION "-std=gnu23")

# --- C++ dialects ---
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION  "-std=c++98")
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION  "-std=c++11")
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION  "-std=c++14")
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
set(CMAKE_CXX17_STANDARD_COMPILE_OPTION  "-std=c++17")
set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
set(CMAKE_CXX20_STANDARD_COMPILE_OPTION  "-std=c++20")
set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++20")
set(CMAKE_CXX23_STANDARD_COMPILE_OPTION  "-std=c++2b")
set(CMAKE_CXX23_EXTENSION_COMPILE_OPTION "-std=gnu++2b")
