| # CMake find_package() module for SYCL Runtime |
| # |
| # Example usage: |
| # |
| # find_package(SyclRuntime) |
| # |
| # If successful, the following variables will be defined: |
| # SyclRuntime_FOUND |
| # SyclRuntime_INCLUDE_DIRS |
| # SyclRuntime_LIBRARY |
| # SyclRuntime_LIBRARIES_DIR |
| # |
| |
| include(FindPackageHandleStandardArgs) |
| |
| if(NOT DEFINED ENV{CMPLR_ROOT}) |
| message(WARNING "Please make sure to install Intel DPC++ Compiler and run setvars.(sh/bat)") |
| message(WARNING "You can download standalone Intel DPC++ Compiler from https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#compilers") |
| else() |
| get_filename_component(ONEAPI_VER "$ENV{CMPLR_ROOT}" NAME) |
| if(ONEAPI_VER VERSION_LESS 2024.0) |
| if(LINUX OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux")) |
| set(SyclRuntime_ROOT "$ENV{CMPLR_ROOT}/linux") |
| elseif(WIN32) |
| set(SyclRuntime_ROOT "$ENV{CMPLR_ROOT}/windows") |
| endif() |
| else() |
| set(SyclRuntime_ROOT "$ENV{CMPLR_ROOT}") |
| endif() |
| list(APPEND SyclRuntime_INCLUDE_DIRS "${SyclRuntime_ROOT}/include") |
| list(APPEND SyclRuntime_INCLUDE_DIRS "${SyclRuntime_ROOT}/include/sycl") |
| |
| set(SyclRuntime_LIBRARY_DIR "${SyclRuntime_ROOT}/lib") |
| |
| message(STATUS "SyclRuntime_LIBRARY_DIR: ${SyclRuntime_LIBRARY_DIR}") |
| find_library(SyclRuntime_LIBRARY |
| NAMES sycl |
| PATHS ${SyclRuntime_LIBRARY_DIR} |
| NO_DEFAULT_PATH |
| ) |
| endif() |
| |
| if(SyclRuntime_LIBRARY) |
| set(SyclRuntime_FOUND TRUE) |
| if(NOT TARGET SyclRuntime::SyclRuntime) |
| add_library(SyclRuntime::SyclRuntime INTERFACE IMPORTED) |
| set_target_properties(SyclRuntime::SyclRuntime |
| PROPERTIES INTERFACE_LINK_LIBRARIES "${SyclRuntime_LIBRARY}" |
| ) |
| set_target_properties(SyclRuntime::SyclRuntime |
| PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SyclRuntime_INCLUDE_DIRS}" |
| ) |
| endif() |
| else() |
| set(SyclRuntime_FOUND FALSE) |
| endif() |
| |
| find_package_handle_standard_args(SyclRuntime |
| REQUIRED_VARS |
| SyclRuntime_FOUND |
| SyclRuntime_INCLUDE_DIRS |
| SyclRuntime_LIBRARY |
| SyclRuntime_LIBRARY_DIR |
| HANDLE_COMPONENTS |
| ) |
| |
| mark_as_advanced(SyclRuntime_LIBRARY SyclRuntime_INCLUDE_DIRS) |
| |
| if(SyclRuntime_FOUND) |
| find_package_message(SyclRuntime "Found SyclRuntime: ${SyclRuntime_LIBRARY}" "") |
| else() |
| find_package_message(SyclRuntime "Could not find SyclRuntime" "") |
| endif() |