| # This will define the following variables: |
| # SYCL_FOUND : True if the system has the SYCL library. |
| # SYCL_INCLUDE_DIR : Include directories needed to use SYCL. |
| # SYCL_LIBRARY_DIR :The path to the SYCL library. |
| # SYCL_LIBRARY : SYCL library fullname. |
| |
| include(FindPackageHandleStandardArgs) |
| |
| set(SYCL_ROOT "") |
| if(DEFINED ENV{SYCL_ROOT}) |
| set(SYCL_ROOT $ENV{SYCL_ROOT}) |
| elseif(DEFINED ENV{CMPLR_ROOT}) |
| set(SYCL_ROOT $ENV{CMPLR_ROOT}) |
| endif() |
| |
| string(COMPARE EQUAL "${SYCL_ROOT}" "" nosyclfound) |
| if(nosyclfound) |
| set(SYCL_FOUND False) |
| set(SYCL_REASON_FAILURE "SYCL library not set!!") |
| set(SYCL_NOT_FOUND_MESSAGE "${SYCL_REASON_FAILURE}") |
| return() |
| endif() |
| |
| # Find include path from binary. |
| find_file( |
| SYCL_INCLUDE_DIR |
| NAMES include |
| HINTS ${SYCL_ROOT} |
| NO_DEFAULT_PATH |
| ) |
| |
| # Find include/sycl path from include path. |
| find_file( |
| SYCL_INCLUDE_SYCL_DIR |
| NAMES sycl |
| HINTS ${SYCL_ROOT}/include/ |
| NO_DEFAULT_PATH |
| ) |
| |
| # Due to the unrecognized compilation option `-fsycl` in other compiler. |
| list(APPEND SYCL_INCLUDE_DIR ${SYCL_INCLUDE_SYCL_DIR}) |
| |
| # Find library directory from binary. |
| find_file( |
| SYCL_LIBRARY_DIR |
| NAMES lib lib64 |
| HINTS ${SYCL_ROOT} |
| NO_DEFAULT_PATH |
| ) |
| |
| # Find SYCL library fullname. |
| find_library( |
| SYCL_LIBRARY |
| NAMES sycl |
| HINTS ${SYCL_LIBRARY_DIR} |
| NO_DEFAULT_PATH |
| ) |
| |
| if((NOT SYCL_INCLUDE_DIR) OR (NOT SYCL_LIBRARY_DIR) OR (NOT SYCL_LIBRARY)) |
| set(SYCL_FOUND False) |
| set(SYCL_REASON_FAILURE "SYCL library is incomplete!!") |
| set(SYCL_NOT_FOUND_MESSAGE "${SYCL_REASON_FAILURE}") |
| return() |
| endif() |
| |
| find_package_handle_standard_args( |
| SYCL |
| FOUND_VAR SYCL_FOUND |
| REQUIRED_VARS SYCL_INCLUDE_DIR SYCL_LIBRARY_DIR SYCL_LIBRARY |
| REASON_FAILURE_MESSAGE "${SYCL_REASON_FAILURE}") |