SWDEV-197835 - adding Khronos OpenCL ICD build
Change-Id: Id7d9cd6076c6f1670eedbea06a6976c05e391520
[ROCm/clr commit: 932c83fe8f]
This commit is contained in:
gecommit door
Payam Ghafari
bovenliggende
7fe2873a05
commit
d09b6e30fc
@@ -1,8 +1,28 @@
|
||||
# Copyright (C) 2017-2021 Advanced Micro Devices, Inc. All Rights Reserved.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
# THE SOFTWARE.
|
||||
|
||||
cmake_minimum_required(VERSION 3.5.1)
|
||||
|
||||
if (POLICY CMP0048)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
set(PROJ_VERSION VERSION 1.5.0)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
set(PROJ_VERSION VERSION 1.5.0)
|
||||
endif()
|
||||
|
||||
project(opencl)
|
||||
@@ -14,7 +34,17 @@ set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
#example command:
|
||||
# cmake -DCMAKE_PREFIX_PATH=/path/to/ROCclr/build/or/install ..
|
||||
|
||||
set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
|
||||
if(NOT DEFINED OPENCL_ICD_DIR)
|
||||
set(OPENCL_ICD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../OpenCL-ICD-Loader")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED OPENCL_ICD_HEADERS)
|
||||
set(OPENCL_ICD_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/../OpenCL-Headers")
|
||||
endif()
|
||||
|
||||
set(OPENCL_ICD_LOADER_HEADERS_DIR "${OPENCL_ICD_HEADERS}" CACHE PATH "")
|
||||
|
||||
set(OPENCL_ICD_LOADER_HEADERS_DIR_INTERNAL "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
|
||||
option(BUILD_SHARED_LIBS "Build shared libs" ON)
|
||||
|
||||
#set a name for icd file
|
||||
@@ -65,12 +95,9 @@ if(USE_COMGR_LIBRARY)
|
||||
endif()
|
||||
|
||||
|
||||
find_package(ROCclr REQUIRED CONFIG
|
||||
PATHS
|
||||
${ROCclr_DIR}
|
||||
${LIBROCclr_STATIC_DIR})
|
||||
find_package(ROCclr REQUIRED CONFIG PATHS ${ROCclr_DIR} ${LIBROCclr_STATIC_DIR})
|
||||
|
||||
add_subdirectory(khronos/icd)
|
||||
add_subdirectory(${OPENCL_ICD_DIR} ${OPENCL_ICD_DIR}/build)
|
||||
add_subdirectory(amdocl)
|
||||
add_subdirectory(tools/clinfo)
|
||||
add_subdirectory(tools/cltrace)
|
||||
@@ -137,6 +164,11 @@ install(PROGRAMS $<TARGET_LINKER_FILE:OpenCL>
|
||||
DESTINATION lib
|
||||
COMPONENT DEV)
|
||||
|
||||
add_custom_target(opencl ALL COMMAND echo "copying opencl lib from ${OPENCL_ICD_DIR}/build"
|
||||
COMMAND cp ${OPENCL_ICD_DIR}/build/*.so* ${CMAKE_CURRENT_BINARY_DIR}/lib
|
||||
WORKING_DIRECTORY ${BUILD_DIR}
|
||||
DEPENDS amdocl64 OpenCL)
|
||||
|
||||
#############################
|
||||
# Packaging steps
|
||||
#############################
|
||||
|
||||
@@ -3,9 +3,9 @@ project(rocm-opencl)
|
||||
|
||||
install(DIRECTORY @PROJECT_BINARY_DIR@/bin DESTINATION . USE_SOURCE_PERMISSIONS)
|
||||
install(FILES @PROJECT_BINARY_DIR@/lib/libamdocl64.so DESTINATION lib)
|
||||
install(FILES @PROJECT_BINARY_DIR@/khronos/icd/libOpenCL.so DESTINATION lib)
|
||||
install(FILES @PROJECT_BINARY_DIR@/khronos/icd/libOpenCL.so.@OPENCL_LIB_VERSION_MAJOR@ DESTINATION lib)
|
||||
install(FILES @PROJECT_BINARY_DIR@/khronos/icd/libOpenCL.so.@OPENCL_LIB_VERSION_STRING@ DESTINATION lib)
|
||||
install(FILES @PROJECT_BINARY_DIR@/lib/libOpenCL.so DESTINATION lib)
|
||||
install(FILES @PROJECT_BINARY_DIR@/lib/libOpenCL.so.@OPENCL_LIB_VERSION_MAJOR@ DESTINATION lib)
|
||||
install(FILES @PROJECT_BINARY_DIR@/lib/libOpenCL.so.@OPENCL_LIB_VERSION_STRING@ DESTINATION lib)
|
||||
|
||||
#############################
|
||||
# Packaging steps
|
||||
|
||||
@@ -35,7 +35,7 @@ endif()
|
||||
|
||||
target_include_directories(Common
|
||||
PUBLIC
|
||||
${OPENCL_ICD_LOADER_HEADERS_DIR}
|
||||
${OPENCL_ICD_LOADER_HEADERS_DIR_INTERNAL}
|
||||
${OCLTST_DIR}/include
|
||||
${OCLTST_DIR}/module/common
|
||||
${OCLTST_DIR}/module/include
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
include_directories(${OPENCL_ICD_LOADER_HEADERS_DIR})
|
||||
include_directories(${OPENCL_ICD_LOADER_HEADERS_DIR_INTERNAL})
|
||||
|
||||
add_definitions(-DHAVE_CL2_HPP -DCL_TARGET_OPENCL_VERSION=220)
|
||||
|
||||
|
||||
Verwijs in nieuw issue
Block a user