12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # SPDX-License-Identifier: Apache-2.0
- if($ENV{ONEAPI_ROOT})
- set_ifndef(ONEAPI_TOOLCHAIN_PATH "$ENV{ONEAPI_ROOT}")
- else()
- set_ifndef(ONEAPI_TOOLCHAIN_PATH "$ENV{ONEAPI_TOOLCHAIN_PATH}")
- endif()
- # the default oneApi installation path is related to os
- string(TOLOWER ${CMAKE_HOST_SYSTEM_NAME} system)
- if(ONEAPI_TOOLCHAIN_PATH)
- set(TOOLCHAIN_HOME ${ONEAPI_TOOLCHAIN_PATH}/compiler/latest/${system}/bin/)
- set(ONEAPI_PYTHON_PATH ${ONEAPI_TOOLCHAIN_PATH}/intelpython/latest/bin)
- endif()
- set(ONEAPI_TOOLCHAIN_PATH ${ONEAPI_TOOLCHAIN_PATH} CACHE PATH "oneApi install directory")
- set(LINKER lld)
- set(BINTOOLS oneApi)
- if(CONFIG_64BIT)
- set(triple x86_64-pc-none-elf)
- else()
- set(triple i686-pc-none-elf)
- endif()
- if(system STREQUAL "linux")
- set(COMPILER icx)
- set(CMAKE_C_COMPILER_TARGET ${triple})
- set(CMAKE_ASM_COMPILER_TARGET ${triple})
- set(CMAKE_CXX_COMPILER_TARGET ${triple})
- # icx compiler of oneApi will invoke clang-cl on windows,
- # this is not supported in zephyr now, so change to use
- # clang directly.
- # and the clang from oneApi can't recognize those cross
- # compiling target variables of cmake, so used other
- # cmake functions to pass them to clang.
- elseif(system STREQUAL "windows")
- set(COMPILER clang)
- list(APPEND CMAKE_REQUIRED_FLAGS --target=${triple})
- add_compile_options(--target=${triple})
- add_link_options(--target=${triple})
- endif()
- message(STATUS "Found toolchain: host (clang/ld)")
|