# 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()