File: FindSyclRuntime.cmake

package info (click to toggle)
swiftlang 6.1.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,791,604 kB
  • sloc: cpp: 9,901,740; ansic: 2,201,431; asm: 1,091,827; python: 308,252; objc: 82,166; f90: 80,126; lisp: 38,358; pascal: 25,559; sh: 20,429; ml: 5,058; perl: 4,745; makefile: 4,484; awk: 3,535; javascript: 3,018; xml: 918; fortran: 664; cs: 573; ruby: 396
file content (73 lines) | stat: -rw-r--r-- 2,401 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 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()