55
66set (OPENCL_DIR "${CMAKE_CURRENT_SOURCE_DIR} " CACHE PATH "OpenCL adapter directory" )
77
8- set (UR_OPENCL_INCLUDE_DIR "" CACHE PATH "Directory containing the OpenCL Headers" )
9- set (UR_OPENCL_ICD_LOADER_LIBRARY "" CACHE FILEPATH "Path of the OpenCL ICD Loader library" )
8+ if (UR_STANDALONE_BUILD)
9+ find_file (FETCHOPENCL_CMAKE
10+ FetchOpenCL.cmake
11+ PATHS
12+ ${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_DATADIR}
13+ ${CMAKE_INSTALL_PREFIX} /share
14+ /usr/share
15+ PATH_SUFFIXES cmake/sycl
16+ )
17+
18+ if (NOT FETCHOPENCL_CMAKE)
19+ include (${FETCHOPENCL_CMAKE} )
20+ else ()
21+ message (FATAL_ERROR "FetchOpenCL.cmake not found, install the DPC++ compiler first" )
22+ endif ()
23+ else ()
24+ include (FetchOpenCL)
25+ endif ()
1026
1127find_package (Threads REQUIRED)
1228
@@ -53,52 +69,13 @@ set_target_properties(${TARGET_NAME} PROPERTIES
5369 SOVERSION "${PROJECT_VERSION_MAJOR} "
5470)
5571
56- if (UR_OPENCL_INCLUDE_DIR)
57- set (OpenCLIncludeDirectory ${UR_OPENCL_INCLUDE_DIR} )
58- else ()
59- FetchContent_Declare(OpenCL-Headers
60- GIT_REPOSITORY "https://github.com/KhronosGroup/OpenCL-Headers.git"
61- GIT_TAG 6eabe90aa7b6cff9c67800a2fe25a0cd88d8b749
62- )
63- FetchContent_MakeAvailable(OpenCL-Headers)
64- FetchContent_GetProperties(OpenCL-Headers
65- SOURCE_DIR OpenCLIncludeDirectory
66- )
72+ # https://github.com/intel/llvm/issues/19648
73+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND LLVM_ENABLE_PEDANTIC)
74+ target_compile_options (ur_adapter_opencl PRIVATE -std=gnu++17)
6775endif ()
6876
69- # The OpenCL target can be set manually on upstream cmake to avoid using
70- # find_package().
71- if (UR_OPENCL_ICD_LOADER_LIBRARY)
72- set (OpenCLICDLoaderLibrary ${UR_OPENCL_ICD_LOADER_LIBRARY} )
73- else ()
74- find_package (OpenCL 3.0)
75- if (NOT OpenCL_FOUND)
76- FetchContent_Declare(OpenCL-ICD-Loader
77- GIT_REPOSITORY "https://github.com/KhronosGroup/OpenCL-ICD-Loader.git"
78- GIT_TAG main
79- )
80- FetchContent_MakeAvailable(OpenCL-ICD-Loader)
81- endif ()
82- set (OpenCLICDLoaderLibrary OpenCL::OpenCL)
83- endif ()
84-
85- # Make interface library use within the project.
86- add_library (OpenCLICDLoader INTERFACE )
87- target_link_libraries (OpenCLICDLoader INTERFACE "${OpenCLICDLoaderLibrary} " )
88- target_include_directories (OpenCLICDLoader INTERFACE ${OpenCLIncludeDirectory} )
89-
90- message (STATUS "OpenCL Include Directory: ${OpenCLIncludeDirectory} " )
91- message (STATUS "OpenCL ICD Loader Library: ${OpenCLICDLoaderLibrary} " )
92-
93- # Suppress a compiler message about undefined CL_TARGET_OPENCL_VERSION.
94- # Define all symbols up to OpenCL 3.0.
95- target_compile_definitions (ur_adapter_opencl PRIVATE
96- CL_TARGET_OPENCL_VERSION=300
97- CL_USE_DEPRECATED_OPENCL_1_2_APIS
98- )
99-
10077target_include_directories (${TARGET_NAME} PRIVATE
101- ${OpenCLIncludeDirectory }
78+ ${OpenCL_INCLUDE_DIRECTORY }
10279 "${CMAKE_CURRENT_SOURCE_DIR} /../../"
10380)
10481
@@ -107,5 +84,6 @@ target_link_libraries(${TARGET_NAME} PRIVATE
10784 ${PROJECT_NAME} ::common
10885 ${PROJECT_NAME} ::umf
10986 Threads::Threads
110- ${OpenCLICDLoaderLibrary}
87+ OpenCL-Headers
88+ ${OpenCL_LIBRARY}
11189)
0 commit comments