17fa19e6fSNishant Patel# CMake find_package() module for SYCL Runtime 27fa19e6fSNishant Patel# 37fa19e6fSNishant Patel# Example usage: 47fa19e6fSNishant Patel# 57fa19e6fSNishant Patel# find_package(SyclRuntime) 67fa19e6fSNishant Patel# 77fa19e6fSNishant Patel# If successful, the following variables will be defined: 87fa19e6fSNishant Patel# SyclRuntime_FOUND 97fa19e6fSNishant Patel# SyclRuntime_INCLUDE_DIRS 107fa19e6fSNishant Patel# SyclRuntime_LIBRARY 117fa19e6fSNishant Patel# SyclRuntime_LIBRARIES_DIR 127fa19e6fSNishant Patel# 137fa19e6fSNishant Patel 147fa19e6fSNishant Patelinclude(FindPackageHandleStandardArgs) 157fa19e6fSNishant Patel 167fa19e6fSNishant Patelif(NOT DEFINED ENV{CMPLR_ROOT}) 177fa19e6fSNishant Patel message(WARNING "Please make sure to install Intel DPC++ Compiler and run setvars.(sh/bat)") 187fa19e6fSNishant Patel 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") 197fa19e6fSNishant Patelelse() 20*8197ea2aSSang Ik Lee get_filename_component(ONEAPI_VER "$ENV{CMPLR_ROOT}" NAME) 21*8197ea2aSSang Ik Lee if(ONEAPI_VER VERSION_LESS 2024.0) 227fa19e6fSNishant Patel if(LINUX OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux")) 237fa19e6fSNishant Patel set(SyclRuntime_ROOT "$ENV{CMPLR_ROOT}/linux") 247fa19e6fSNishant Patel elseif(WIN32) 257fa19e6fSNishant Patel set(SyclRuntime_ROOT "$ENV{CMPLR_ROOT}/windows") 267fa19e6fSNishant Patel endif() 27*8197ea2aSSang Ik Lee else() 28*8197ea2aSSang Ik Lee set(SyclRuntime_ROOT "$ENV{CMPLR_ROOT}") 29*8197ea2aSSang Ik Lee endif() 307fa19e6fSNishant Patel list(APPEND SyclRuntime_INCLUDE_DIRS "${SyclRuntime_ROOT}/include") 317fa19e6fSNishant Patel list(APPEND SyclRuntime_INCLUDE_DIRS "${SyclRuntime_ROOT}/include/sycl") 327fa19e6fSNishant Patel 337fa19e6fSNishant Patel set(SyclRuntime_LIBRARY_DIR "${SyclRuntime_ROOT}/lib") 347fa19e6fSNishant Patel 357fa19e6fSNishant Patel message(STATUS "SyclRuntime_LIBRARY_DIR: ${SyclRuntime_LIBRARY_DIR}") 367fa19e6fSNishant Patel find_library(SyclRuntime_LIBRARY 377fa19e6fSNishant Patel NAMES sycl 387fa19e6fSNishant Patel PATHS ${SyclRuntime_LIBRARY_DIR} 397fa19e6fSNishant Patel NO_DEFAULT_PATH 407fa19e6fSNishant Patel ) 417fa19e6fSNishant Patelendif() 427fa19e6fSNishant Patel 437fa19e6fSNishant Patelif(SyclRuntime_LIBRARY) 447fa19e6fSNishant Patel set(SyclRuntime_FOUND TRUE) 457fa19e6fSNishant Patel if(NOT TARGET SyclRuntime::SyclRuntime) 467fa19e6fSNishant Patel add_library(SyclRuntime::SyclRuntime INTERFACE IMPORTED) 477fa19e6fSNishant Patel set_target_properties(SyclRuntime::SyclRuntime 487fa19e6fSNishant Patel PROPERTIES INTERFACE_LINK_LIBRARIES "${SyclRuntime_LIBRARY}" 497fa19e6fSNishant Patel ) 507fa19e6fSNishant Patel set_target_properties(SyclRuntime::SyclRuntime 517fa19e6fSNishant Patel PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SyclRuntime_INCLUDE_DIRS}" 527fa19e6fSNishant Patel ) 537fa19e6fSNishant Patel endif() 547fa19e6fSNishant Patelelse() 557fa19e6fSNishant Patel set(SyclRuntime_FOUND FALSE) 567fa19e6fSNishant Patelendif() 577fa19e6fSNishant Patel 587fa19e6fSNishant Patelfind_package_handle_standard_args(SyclRuntime 597fa19e6fSNishant Patel REQUIRED_VARS 607fa19e6fSNishant Patel SyclRuntime_FOUND 617fa19e6fSNishant Patel SyclRuntime_INCLUDE_DIRS 627fa19e6fSNishant Patel SyclRuntime_LIBRARY 637fa19e6fSNishant Patel SyclRuntime_LIBRARY_DIR 647fa19e6fSNishant Patel HANDLE_COMPONENTS 657fa19e6fSNishant Patel) 667fa19e6fSNishant Patel 677fa19e6fSNishant Patelmark_as_advanced(SyclRuntime_LIBRARY SyclRuntime_INCLUDE_DIRS) 687fa19e6fSNishant Patel 697fa19e6fSNishant Patelif(SyclRuntime_FOUND) 707fa19e6fSNishant Patel find_package_message(SyclRuntime "Found SyclRuntime: ${SyclRuntime_LIBRARY}" "") 717fa19e6fSNishant Patelelse() 727fa19e6fSNishant Patel find_package_message(SyclRuntime "Could not find SyclRuntime" "") 737fa19e6fSNishant Patelendif() 74