mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-16 02:16:29 +00:00
74 lines
2.3 KiB
CMake
74 lines
2.3 KiB
CMake
# 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()
|