diff --git a/buildbot/configure.py b/buildbot/configure.py index a7be08993d9f3..207b0c36d128b 100644 --- a/buildbot/configure.py +++ b/buildbot/configure.py @@ -13,7 +13,7 @@ def do_configure(args): if not os.path.isdir(abs_obj_dir): os.makedirs(abs_obj_dir) - llvm_external_projects = 'sycl;llvm-spirv;opencl-aot;libdevice;xpti;xptifw' + llvm_external_projects = 'sycl;llvm-spirv;opencl;opencl-aot;libdevice;xpti;xptifw' llvm_dir = os.path.join(abs_src_dir, "llvm") sycl_dir = os.path.join(abs_src_dir, "sycl") @@ -21,8 +21,6 @@ def do_configure(args): xpti_dir = os.path.join(abs_src_dir, "xpti") xptifw_dir = os.path.join(abs_src_dir, "xptifw") libdevice_dir = os.path.join(abs_src_dir, "libdevice") - ocl_header_dir = os.path.join(abs_obj_dir, "OpenCL-Headers") - icd_loader_lib = os.path.join(abs_obj_dir, "OpenCL-ICD-Loader", "build") llvm_targets_to_build = 'X86' llvm_enable_projects = 'clang;' + llvm_external_projects libclc_targets_to_build = '' @@ -34,7 +32,6 @@ def do_configure(args): llvm_build_shared_libs = 'OFF' sycl_enable_xpti_tracing = 'ON' - icd_loader_lib = os.path.join(icd_loader_lib, "libOpenCL.so" if platform.system() == 'Linux' else "OpenCL.lib") # replace not append, so ARM ^ X86 if args.arm: @@ -87,11 +84,6 @@ def do_configure(args): "-DSYCL_ENABLE_XPTI_TRACING={}".format(sycl_enable_xpti_tracing) ] - if args.system_ocl: - cmake_cmd.extend([ - "-DOpenCL_INCLUDE_DIR={}".format(ocl_header_dir), - "-DOpenCL_LIBRARY={}".format(icd_loader_lib)]) - if args.l0_headers and args.l0_loader: cmake_cmd.extend([ "-DL0_INCLUDE_DIR={}".format(args.l0_headers), @@ -150,7 +142,6 @@ def main(): parser.add_argument("--arm", action='store_true', help="build ARM support rather than x86") parser.add_argument("--no-assertions", action='store_true', help="build without assertions") parser.add_argument("--docs", action='store_true', help="build Doxygen documentation") - parser.add_argument("--system-ocl", action='store_true', help="use OpenCL deps from system (no download)") parser.add_argument("--no-werror", action='store_true', help="Don't treat warnings as errors") parser.add_argument("--shared-libs", action='store_true', help="Build shared libraries") parser.add_argument("--cmake-opt", action='append', help="Additional CMake option not configured via script parameters") diff --git a/opencl/CMakeLists.txt b/opencl/CMakeLists.txt new file mode 100644 index 0000000000000..55d0ae71d7312 --- /dev/null +++ b/opencl/CMakeLists.txt @@ -0,0 +1,71 @@ +cmake_minimum_required(VERSION 3.14) + +include(FetchContent) + +# Repo URLs + +set(OCL_HEADERS_REPO + "https://github.com/KhronosGroup/OpenCL-Headers.git") +set(OCL_LOADER_REPO + "https://github.com/KhronosGroup/OpenCL-ICD-Loader.git") + +# Repo tags/hashes + +set(OCL_HEADERS_TAG 23710f1b99186065c1768fc3098ba681adc0f253) +set(OCL_LOADER_TAG 5f8249691ec8c25775789498951f8e9eb62c201d) + +# OpenCL Headers +if(NOT OpenCL_HEADERS) + message(STATUS "Will fetch OpenCL headers from github.com") + + FetchContent_Declare(ocl-headers + GIT_REPOSITORY ${OCL_HEADERS_REPO} + GIT_TAG ${OCL_HEADERS_TAG} + ) +else() + message(STATUS "OpenCL headers are added manually ${OpenCL_HEADERS}") + + FetchContent_Declare(ocl-headers + URL ${OpenCL_HEADERS} + ) +endif() + +FetchContent_MakeAvailable(ocl-headers) +FetchContent_GetProperties(ocl-headers) +set(OpenCL_INCLUDE_DIR + ${ocl-headers_SOURCE_DIR} CACHE PATH "Path to OpenCL Headers") + +target_compile_definitions(Headers INTERFACE -DCL_TARGET_OPENCL_VERSION=220) +add_library(OpenCL-Headers ALIAS Headers) + +# OpenCL Library (ICD Loader) + +# Set OPENCL_ICD_LOADER_HEADERS_DIR, as prerequisite for ICD build +set(OPENCL_ICD_LOADER_HEADERS_DIR + ${OpenCL_INCLUDE_DIR} CACHE PATH "Path to OpenCL Headers") + +# LLVM build sets this OFF by default, but we need OpenCL to be built as shared +# library. +set(BUILD_SHARED_LIBS ON) + +if(NOT OpenCL_LIBRARY_SRC) + message(STATUS "Will fetch OpenCL ICD Loader from github.com") + + FetchContent_Declare(ocl-icd + GIT_REPOSITORY ${OCL_LOADER_REPO} + GIT_TAG ${OCL_LOADER_TAG} + ) +else() + # TODO: add possibility to use prebuilt OpenCL library rather than building + # together with llvm. + message(STATUS + "OpenCL ICD Loader sources added manually ${OpenCL_LIBRARY_SRC}") + + FetchContent_Declare(ocl-icd + URL ${OpenCL_LIBRARY_SRC} + ) +endif() + +FetchContent_MakeAvailable(ocl-icd) +add_library(OpenCL-ICD ALIAS OpenCL) + diff --git a/sycl/CMakeLists.txt b/sycl/CMakeLists.txt index 56d5f0d368aa2..3b2188a945222 100644 --- a/sycl/CMakeLists.txt +++ b/sycl/CMakeLists.txt @@ -71,130 +71,22 @@ set(SYCL_INCLUDE_DIR "include") set(SYCL_INCLUDE_BUILD_DIR ${LLVM_BINARY_DIR}/${SYCL_INCLUDE_DIR}) set(SYCL_INCLUDE_DEPLOY_DIR ${CMAKE_INSTALL_PREFIX}/${SYCL_INCLUDE_DIR}) -# Find OpenCL headers and libraries installed in the system and use them to -# build SYCL runtime. -# WARNING: use with caution, building SYCL runtime with OpenCL implementation -# instead of Khronos ICD loader might cause build and/or portability issues. -option(OpenCL_BUILD_WITH_SYSTEM_SDK "Build SYCL with OpenCL coming from the build system" OFF) - -if( (OpenCL_INCLUDE_DIR AND OpenCL_LIBRARY) OR OpenCL_BUILD_WITH_SYSTEM_SDK) - find_package(OpenCL) +add_llvm_external_project(opencl) +list(FIND LLVM_ENABLE_PROJECTS opencl OPENCL_FOUND) +if(OPENCL_FOUND EQUAL -1) + message(FATAL_ERROR "opencl external project required but not found.") endif() -include(ExternalProject) - -# By default, whenever cmake is re-run, the external project's sources will be -# updated, which might be annoying - let's have a possibility to disable that as -# not every external project which is used here is being updated often -# Single toggle to control all external projects -option(SYCL_EXTERNAL_PROJECTS_SKIP_AUTO_UPDATE - "Perform automatic update step for external projects (OpenCL Headers, OpenCL ICD, etc.)" OFF) -# More precise controls for each particular external project are documented -# near each ExternalProject_Add - -if( NOT OpenCL_INCLUDE_DIRS ) - message(STATUS "OpenCL_INCLUDE_DIRS is missing. Will try to download OpenCL headers from github.com") - set(OpenCL_INCLUDE_DIRS "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/inc") - if (NOT DEFINED SYCL_EP_OCL_HEADERS_SKIP_AUTO_UPDATE) - set(SYCL_EP_OCL_HEADERS_SKIP_AUTO_UPDATE ${SYCL_EXTERNAL_PROJECTS_SKIP_AUTO_UPDATE}) - endif() - ExternalProject_Add(ocl-headers - GIT_REPOSITORY https://github.com/KhronosGroup/OpenCL-Headers.git - GIT_TAG 23710f1b99186065c1768fc3098ba681adc0f253 - UPDATE_DISCONNECTED ${SYCL_EP_OCL_HEADERS_SKIP_AUTO_UPDATE} - SOURCE_DIR ${OpenCL_INCLUDE_DIRS} - CONFIGURE_COMMAND "" - BUILD_COMMAND ${CMAKE_COMMAND} -E copy_directory ${OpenCL_INCLUDE_DIRS}/CL ${SYCL_INCLUDE_BUILD_DIR}/sycl/CL - INSTALL_COMMAND "" - STEP_TARGETS build - COMMENT "Downloading OpenCL headers." - LOG_DOWNLOAD 1 - LOG_UPDATE 1 - LOG_BUILD 1 - ) - add_definitions(-DCL_TARGET_OPENCL_VERSION=220) -else() - add_custom_target( ocl-headers ALL - DEPENDS ${OpenCL_INCLUDE_DIRS} - COMMAND ${CMAKE_COMMAND} -E copy_directory ${OpenCL_INCLUDE_DIRS}/CL ${SYCL_INCLUDE_BUILD_DIR}/sycl/CL - COMMENT "Copying OpenCL headers ..." - ) -endif() +# Copy OpenCL Headers into sycl headers build directory +# Compiler does automatic lookup bin/../include based on clang binary location, +# e.g. when run LIT tests +file(COPY ${OpenCL_INCLUDE_DIR}/CL + DESTINATION ${SYCL_INCLUDE_BUILD_DIR}/sycl) -if( NOT OpenCL_LIBRARIES ) - message(STATUS "OpenCL_LIBRARIES is missing. Will try to download OpenCL ICD Loader from github.com") - if(MSVC) - set(OpenCL_LIBRARIES - "${LLVM_LIBRARY_OUTPUT_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenCL${CMAKE_STATIC_LIBRARY_SUFFIX}") - list(APPEND AUX_CMAKE_FLAGS -DOPENCL_ICD_LOADER_REQUIRE_WDK=OFF) - else() - set(OpenCL_LIBRARIES - "${LLVM_LIBRARY_OUTPUT_INTDIR}/${CMAKE_SHARED_LIBRARY_PREFIX}OpenCL${CMAKE_SHARED_LIBRARY_SUFFIX}") - endif() - if (CMAKE_C_COMPILER) - list(APPEND AUX_CMAKE_FLAGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}) - endif() - if (CMAKE_CXX_COMPILER) - list(APPEND AUX_CMAKE_FLAGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}) - endif() - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/icd_build) - set(OpenCL_ICD_LOADER_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/OpenCL/icd") - if (NOT DEFINED SYCL_EP_OCL_ICD_SKIP_AUTO_UPDATE) - set(SYCL_EP_OCL_ICD_SKIP_AUTO_UPDATE ${SYCL_EXTERNAL_PROJECTS_SKIP_AUTO_UPDATE}) - endif() - ExternalProject_Add(ocl-icd - GIT_REPOSITORY https://github.com/KhronosGroup/OpenCL-ICD-Loader.git - GIT_TAG 5f8249691ec8c25775789498951f8e9eb62c201d - UPDATE_DISCONNECTED ${SYCL_EP_OCL_ICD_SKIP_AUTO_UPDATE} - SOURCE_DIR ${OpenCL_ICD_LOADER_SOURCE_DIR} - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/icd_build" - INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/icd_install" - CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} - -DOPENCL_ICD_LOADER_HEADERS_DIR=${OpenCL_INCLUDE_DIRS} - -DCMAKE_INSTALL_PREFIX= - -DCMAKE_INSTALL_LIBDIR:PATH=lib${LLVM_LIBDIR_SUFFIX} - ${AUX_CMAKE_FLAGS} - STEP_TARGETS configure,build,install - DEPENDS ocl-headers - BUILD_BYPRODUCTS ${OpenCL_LIBRARIES} - LOG_DOWNLOAD 1 - LOG_UPDATE 1 - LOG_CONFIGURE 1 - LOG_BUILD 1 - LOG_INSTALL 1 - ) - ExternalProject_Add_Step(ocl-icd llvminstall - COMMAND ${CMAKE_COMMAND} -E copy_directory / ${LLVM_BINARY_DIR} - COMMENT "Installing ocl-icd into the LLVM binary directory" - DEPENDEES install - ) - # Optionally install the ICD library along with LLVM. - option(OpenCL_INSTALL_KHRONOS_ICD_LOADER - "Install the Khronos ICD Loader built as part of LLVM" OFF) - if (OpenCL_INSTALL_KHRONOS_ICD_LOADER) - install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/icd_install/" - DESTINATION "." - COMPONENT opencl-icd - ) - endif() -else() - file(GLOB ICD_LOADER_SRC "${OpenCL_LIBRARIES}*") - file(COPY ${ICD_LOADER_SRC} DESTINATION ${LLVM_LIBRARY_OUTPUT_INTDIR}) - add_custom_target(ocl-icd DEPENDS ${OpenCL_LIBRARIES} COMMENT "Copying OpenCL ICD Loader ...") -endif() - -set(OPENCL_INCLUDE "${OpenCL_INCLUDE_DIRS}") - -add_library (OpenCL-Headers INTERFACE) -add_library (OpenCL::Headers ALIAS OpenCL-Headers) -target_include_directories(OpenCL-Headers - INTERFACE ${OPENCL_INCLUDE} -) -install(DIRECTORY ${OPENCL_INCLUDE}/CL - DESTINATION ${SYCL_INCLUDE_DEPLOY_DIR}/sycl - COMPONENT opencl-headers -) +# Include OpenCL Headers into final bundle. +install(DIRECTORY ${OpenCL_INCLUDE_DIR}/CL + DESTINATION ${SYCL_INCLUDE_DEPLOY_DIR}/sycl + COMPONENT OpenCL-Headers) option(SYCL_BUILD_PI_CUDA "Enables the CUDA backend for the Plugin Interface" OFF) @@ -207,13 +99,13 @@ string(TIMESTAMP __SYCL_COMPILER_VERSION "%Y%m%d") set(version_header "${sycl_inc_dir}/CL/sycl/version.hpp") configure_file("${version_header}.in" "${version_header}") -# Copy SYCL headers +# Copy SYCL headers from sources to build directory add_custom_target(sycl-headers ALL COMMAND ${CMAKE_COMMAND} -E copy_directory ${sycl_inc_dir}/sycl ${SYCL_INCLUDE_BUILD_DIR}/sycl COMMAND ${CMAKE_COMMAND} -E copy_directory ${sycl_inc_dir}/CL ${SYCL_INCLUDE_BUILD_DIR}/sycl/CL COMMENT "Copying SYCL headers ...") -# Configure SYCL headers +# Copy SYCL headers from sources to install directory install(DIRECTORY "${sycl_inc_dir}/sycl" DESTINATION ${SYCL_INCLUDE_DEPLOY_DIR} COMPONENT sycl-headers) install(DIRECTORY "${sycl_inc_dir}/CL" DESTINATION ${SYCL_INCLUDE_DEPLOY_DIR}/sycl COMPONENT sycl-headers) @@ -353,7 +245,7 @@ set( SYCL_TOOLCHAIN_DEPLOY_COMPONENTS sycl-post-link sycl-ls clang-resource-headers - opencl-headers + OpenCL-Headers sycl-headers sycl-headers-extras sycl @@ -363,8 +255,8 @@ set( SYCL_TOOLCHAIN_DEPLOY_COMPONENTS ${XPTIFW_LIBS} ) -if(OpenCL_INSTALL_KHRONOS_ICD_LOADER AND TARGET ocl-icd) - list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS opencl-icd) +if(OpenCL_INSTALL_KHRONOS_ICD_LOADER AND TARGET OpenCL-ICD) + list(APPEND SYCL_TOOLCHAIN_DEPLOY_COMPONENTS OpenCL-ICD) endif() if(SYCL_BUILD_PI_CUDA) diff --git a/sycl/plugins/cuda/CMakeLists.txt b/sycl/plugins/cuda/CMakeLists.txt index 1c230b795a10e..448ea7e77f419 100644 --- a/sycl/plugins/cuda/CMakeLists.txt +++ b/sycl/plugins/cuda/CMakeLists.txt @@ -10,7 +10,7 @@ find_package(CUDA 10.1 REQUIRED) add_library(cudadrv SHARED IMPORTED GLOBAL) set_target_properties( - cudadrv PROPERTIES + cudadrv PROPERTIES IMPORTED_LOCATION ${CUDA_CUDA_LIBRARY} INTERFACE_INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} ) @@ -22,10 +22,6 @@ add_library(pi_cuda SHARED "pi_cuda.cpp" ) -add_dependencies(pi_cuda - ocl-headers -) - add_dependencies(sycl-toolchain pi_cuda) set_target_properties(pi_cuda PROPERTIES LINKER_LANGUAGE CXX) @@ -33,11 +29,13 @@ set_target_properties(pi_cuda PROPERTIES LINKER_LANGUAGE CXX) target_include_directories(pi_cuda PRIVATE ${sycl_inc_dir} - PUBLIC - ${CUDA_INCLUDE_DIRS} ) -target_link_libraries(pi_cuda PUBLIC OpenCL-Headers cudadrv) +target_link_libraries(pi_cuda + PRIVATE + OpenCL-Headers + cudadrv +) add_common_options(pi_cuda) diff --git a/sycl/plugins/level_zero/CMakeLists.txt b/sycl/plugins/level_zero/CMakeLists.txt index 7f515f3847fa1..3c6f985e8689e 100755 --- a/sycl/plugins/level_zero/CMakeLists.txt +++ b/sycl/plugins/level_zero/CMakeLists.txt @@ -21,6 +21,10 @@ if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR) if (NOT DEFINED SYCL_EP_LEVEL_ZERO_LOADER_SKIP_AUTO_UPDATE) set(SYCL_EP_LEVEL_ZERO_LOADER_SKIP_AUTO_UPDATE ${SYCL_EXTERNAL_PROJECTS_SKIP_AUTO_UPDATE}) endif() + + #TODO: Replace ExternalProject with FetchContent for better maintainance and + # cmake files simplification + include(ExternalProject) if (WIN32) set(LEVEL_ZERO_LOADER_SOURCE_VERSION v1.0.16) else() @@ -35,7 +39,6 @@ if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR) INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/level_zero_loader_install" CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} - -DOpenCL_INCLUDE_DIR=${OpenCL_INCLUDE_DIRS} -DCMAKE_INSTALL_PREFIX= -DCMAKE_INSTALL_LIBDIR:PATH=lib${LLVM_LIBDIR_SUFFIX} ${AUX_CMAKE_FLAGS} @@ -45,7 +48,7 @@ if (NOT DEFINED LEVEL_ZERO_LIBRARY OR NOT DEFINED LEVEL_ZERO_INCLUDE_DIR) LOG_BUILD 1 LOG_INSTALL 1 STEP_TARGETS configure,build,install - DEPENDS ocl-headers + DEPENDS OpenCL-Headers BUILD_BYPRODUCTS ${LEVEL_ZERO_LOADER} ) ExternalProject_Add_Step(level-zero-loader llvminstall @@ -96,8 +99,8 @@ target_include_directories(LevelZeroLoader-Headers INTERFACE "${LEVEL_ZERO_INCLUDE_DIR}" ) + include_directories("${sycl_inc_dir}") -include_directories(${OPENCL_INCLUDE}) add_library(pi_level_zero SHARED "${sycl_inc_dir}/CL/sycl/detail/pi.h" @@ -130,9 +133,14 @@ endif() if (TARGET level-zero-loader) add_dependencies(pi_level_zero level-zero-loader) endif() - add_dependencies(sycl-toolchain pi_level_zero) - target_link_libraries(pi_level_zero PRIVATE "${LEVEL_ZERO_LOADER}") +add_dependencies(sycl-toolchain pi_level_zero) +target_link_libraries(pi_level_zero + PRIVATE + "${LEVEL_ZERO_LOADER}" + OpenCL-Headers +) + if (UNIX) target_link_libraries(pi_level_zero PRIVATE pthread) endif() diff --git a/sycl/plugins/opencl/CMakeLists.txt b/sycl/plugins/opencl/CMakeLists.txt index ca54251c656f5..bd7ac1e50fe28 100644 --- a/sycl/plugins/opencl/CMakeLists.txt +++ b/sycl/plugins/opencl/CMakeLists.txt @@ -6,20 +6,15 @@ # Plugin for OpenCL # Create Shared library for libpi_opencl.so. -#TODO: remove dependency on pi.hpp in sycl project. -#TODO: Currently, the pi.hpp header is common between sycl and plugin library sources. -#This can be changed by copying the pi.hpp file in the plugins project. +#TODO: remove dependency on pi.h in sycl project. +#TODO: Currently, the pi.h header is common between sycl and plugin library sources. +#This can be changed by copying the pi.h file in the plugins project. add_library(pi_opencl SHARED "${sycl_inc_dir}/CL/sycl/detail/pi.h" "pi_opencl.cpp" ) -add_dependencies(pi_opencl - ocl-icd - ocl-headers -) - add_dependencies(sycl-toolchain pi_opencl) set_target_properties(pi_opencl PROPERTIES LINKER_LANGUAGE CXX) @@ -28,9 +23,10 @@ set_target_properties(pi_opencl PROPERTIES LINKER_LANGUAGE CXX) target_include_directories(pi_opencl PRIVATE "${sycl_inc_dir}") #link pi_opencl with OpenCL headers and ICD Loader. -target_link_libraries( pi_opencl - PRIVATE OpenCL::Headers - PRIVATE ${OpenCL_LIBRARIES} +target_link_libraries(pi_opencl + PRIVATE + OpenCL-Headers + OpenCL-ICD ) if (MSVC) # by defining __SYCL_BUILD_SYCL_DLL, we can use __declspec(dllexport) @@ -46,7 +42,7 @@ else() set(linker_script "${CMAKE_CURRENT_SOURCE_DIR}/../ld-version-script.txt") # Filter symbols based on the scope defined in the script file, - # and export pi* function symbols in the library. + # and export pi* function symbols in the library. target_link_libraries( pi_opencl PRIVATE "-Wl,--version-script=${linker_script}" ) diff --git a/sycl/source/CMakeLists.txt b/sycl/source/CMakeLists.txt index 0c6535f21c6de..7da8d346e8d3b 100644 --- a/sycl/source/CMakeLists.txt +++ b/sycl/source/CMakeLists.txt @@ -32,10 +32,7 @@ function(add_sycl_rt_library LIB_NAME) target_compile_options(${LIB_OBJ_NAME} PRIVATE ${ARG_COMPILE_OPTIONS}) endif() - #To-Do: Remove dependency on icd loader and opencl headers. add_dependencies(${LIB_OBJ_NAME} - ocl-icd - ocl-headers sycl-headers ) @@ -68,14 +65,17 @@ function(add_sycl_rt_library LIB_NAME) PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} "${sycl_inc_dir}" - ${OpenCL_INCLUDE_DIRS} + ) + #TODO: Remove dependency on icd loader and opencl headers. + target_link_libraries(${LIB_OBJ_NAME} + PRIVATE OpenCL-Headers ) find_package(Threads REQUIRED) target_link_libraries(${LIB_NAME} PRIVATE - ${OpenCL_LIBRARIES} + OpenCL-ICD ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT} PUBLIC diff --git a/sycl/tools/CMakeLists.txt b/sycl/tools/CMakeLists.txt index 83c02bd94481f..eb724c70a5c58 100644 --- a/sycl/tools/CMakeLists.txt +++ b/sycl/tools/CMakeLists.txt @@ -2,7 +2,9 @@ add_subdirectory(sycl-ls) # TODO: move each tool in its own sub-directory add_executable(get_device_count_by_type get_device_count_by_type.cpp) -add_dependencies(get_device_count_by_type ocl-headers ocl-icd level-zero-loader) +add_dependencies(get_device_count_by_type + level-zero-loader +) if(MSVC) set(LEVEL_ZERO_LIBRARY @@ -14,9 +16,9 @@ endif() target_link_libraries(get_device_count_by_type PRIVATE - OpenCL::Headers + OpenCL-Headers LevelZeroLoader::Headers - ${OpenCL_LIBRARIES} + OpenCL-ICD ${LEVEL_ZERO_LIBRARY} $<$:cudadrv> ) diff --git a/sycl/tools/sycl-ls/CMakeLists.txt b/sycl/tools/sycl-ls/CMakeLists.txt index 5833d617d9c4e..a409db2d79d5f 100644 --- a/sycl/tools/sycl-ls/CMakeLists.txt +++ b/sycl/tools/sycl-ls/CMakeLists.txt @@ -4,7 +4,7 @@ target_include_directories(sycl-ls PRIVATE "${sycl_inc_dir}") target_link_libraries(sycl-ls PRIVATE sycl - OpenCL::Headers + OpenCL-Headers ) install(TARGETS sycl-ls RUNTIME DESTINATION "bin" COMPONENT sycl-ls) diff --git a/sycl/unittests/pi/cuda/CMakeLists.txt b/sycl/unittests/pi/cuda/CMakeLists.txt index dd77a5fb1d0a3..a2f4bd926a40a 100644 --- a/sycl/unittests/pi/cuda/CMakeLists.txt +++ b/sycl/unittests/pi/cuda/CMakeLists.txt @@ -13,14 +13,19 @@ add_sycl_unittest(PiCudaTests OBJECT add_dependencies(PiCudaTests sycl) -target_compile_definitions(PiCudaTests PRIVATE - GTEST_HAS_COMBINE=1) +target_compile_definitions(PiCudaTests + PRIVATE + GTEST_HAS_COMBINE=1) -target_include_directories( - PiCudaTests PUBLIC - ${CUDA_INCLUDE_DIRS} - "../" - "${sycl_inc_dir}/CL/sycl/detail/" - ${sycl_inc_dir} - "${sycl_plugin_dir}/cuda/" +target_include_directories(PiCudaTests + PRIVATE + "../" + "${sycl_inc_dir}/CL/sycl/detail/" + "${sycl_inc_dir}" + "${sycl_plugin_dir}/cuda/" +) + +target_link_libraries(PiCudaTests + PRIVATE + cudadrv )