@@ -7,11 +7,11 @@ option(ITLABAI_ENABLE_SYCL "Build SYCL example and helper targets" OFF)
77option (ITLABAI_ENABLE_OPENCV_APPS "Build OpenCV-dependent apps" ON )
88option (ITLABAI_BUILD_TESTS "Build unit tests" ON )
99set (ITLABAI_SYCL_IMPLEMENTATION "" CACHE STRING
10- "SYCL implementation package to use: IntelSYCL or AdaptiveCpp" )
10+ "SYCL implementation to use: IntelLLVM or AdaptiveCpp" )
1111set_property (CACHE ITLABAI_SYCL_IMPLEMENTATION PROPERTY STRINGS
12- IntelSYCL AdaptiveCpp)
12+ IntelLLVM AdaptiveCpp)
1313set (ITLABAI_SYCL_TARGETS "" CACHE STRING
14- "Optional SYCL targets; forwarded to AdaptiveCpp as ACPP_TARGETS" )
14+ "Optional SYCL targets; forwarded to AdaptiveCpp as ACPP_TARGETS or IntelLLVM as -fsycl-targets " )
1515
1616option (ENABLE_STATISTIC_TENSORS "Enable statistic tensors" OFF )
1717
@@ -54,7 +54,7 @@ if(ITLABAI_ENABLE_SYCL)
5454 if (NOT ITLABAI_SYCL_IMPLEMENTATION)
5555 message (FATAL_ERROR
5656 "ITLABAI_ENABLE_SYCL=ON requires ITLABAI_SYCL_IMPLEMENTATION "
57- "to be set to IntelSYCL or AdaptiveCpp" )
57+ "to be set to IntelLLVM or AdaptiveCpp" )
5858 endif ()
5959
6060 if (ITLABAI_SYCL_IMPLEMENTATION STREQUAL "AdaptiveCpp" )
@@ -63,8 +63,39 @@ if(ITLABAI_ENABLE_SYCL)
6363 "AdaptiveCpp targets" FORCE )
6464 endif ()
6565 find_package (AdaptiveCpp CONFIG REQUIRED )
66- elseif (ITLABAI_SYCL_IMPLEMENTATION STREQUAL "IntelSYCL" )
67- find_package (IntelSYCL CONFIG REQUIRED )
66+ function (itlabai_add_sycl_to_target )
67+ add_sycl_to_target (${ARGN} )
68+ endfunction ()
69+ elseif (ITLABAI_SYCL_IMPLEMENTATION STREQUAL "IntelLLVM" )
70+ function (itlabai_add_sycl_to_target )
71+ set (options)
72+ set (one_value_keywords TARGET)
73+ set (multi_value_keywords SOURCES)
74+ cmake_parse_arguments (ITLABAI_SYCL
75+ "${options} "
76+ "${one_value_keywords} "
77+ "${multi_value_keywords} "
78+ ${ARGN}
79+ )
80+
81+ if (NOT ITLABAI_SYCL_TARGET)
82+ message (FATAL_ERROR "itlabai_add_sycl_to_target requires TARGET" )
83+ endif ()
84+
85+ target_compile_options (${ITLABAI_SYCL_TARGET} PRIVATE
86+ $<$<COMPILE_LANGUAGE :CXX >:-fsycl >
87+ )
88+ target_link_options (${ITLABAI_SYCL_TARGET} PRIVATE -fsycl )
89+
90+ if (ITLABAI_SYCL_TARGETS)
91+ target_compile_options (${ITLABAI_SYCL_TARGET} PRIVATE
92+ $<$<COMPILE_LANGUAGE :CXX >:-fsycl -targets =${ITLABAI_SYCL_TARGETS} >
93+ )
94+ target_link_options (${ITLABAI_SYCL_TARGET} PRIVATE
95+ -fsycl-targets=${ITLABAI_SYCL_TARGETS}
96+ )
97+ endif ()
98+ endfunction ()
6899 else ()
69100 message (FATAL_ERROR
70101 "Unsupported ITLABAI_SYCL_IMPLEMENTATION="
0 commit comments