set(ARCH $ENV{ULTRA_ARCH})

if (NOT ARCH)
    set(ARCH "32")
elseif ((NOT ARCH MATCHES "32") AND (NOT ARCH MATCHES "64"))
    message(FATAL_ERROR "Unknown architechture ${ARCH}")
endif ()

execute_process(
    COMMAND /bin/bash ${CMAKE_CURRENT_LIST_DIR}/build.sh ${ARCH}
    RESULT_VARIABLE TOOLCHAIN_BUILD_FAILED
)

if (TOOLCHAIN_BUILD_FAILED)
    message(FATAL_ERROR "-- Toolchain build error.")
endif()

if (ARCH MATCHES 64)
    set(COMPILER_PREFIX "x86_64")
else ()
    set(COMPILER_PREFIX "i686")
endif ()

set(CMAKE_SYSTEM_PROCESSOR ${COMPILER_PREFIX})

set(TOOLCHAIN_PATH     "${CMAKE_CURRENT_LIST_DIR}")
set(CMAKE_C_COMPILER   "${TOOLCHAIN_PATH}/CrossCompiler/Tools${ARCH}/bin/${COMPILER_PREFIX}-elf-gcc")
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_PATH}/CrossCompiler/Tools${ARCH}/bin/${COMPILER_PREFIX}-elf-g++")

set(CMAKE_EXE_LINKER_FLAGS_INIT "${LINKER_FLAGS}")
