SWDEV-306262 - Add ocl-icd subpackages
These packages contains only the ICD loader (libopencl.so). This allows
legacy opencl (PAL) to use these packages instead of duplicating these
packages in both builds.
This also resolves a licensing issue where OCL ICD is licensed as
Apache, while opencl is MIT. Having a separate package avoid license
confusion.
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
Change-Id: I3dd29239841da7f5dc767419a9bc35d9046e9936
[ROCm/clr commit: cb1e7cd48d]
このコミットが含まれているのは:
@@ -62,13 +62,24 @@ if(NOT DEFINED ROCM_PATH)
|
||||
endif()
|
||||
message (STATUS "ROCM Installation path(ROCM_PATH): ${ROCM_PATH}")
|
||||
|
||||
# Package: rocm-ocl-icd
|
||||
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/rocm-ocl-icd)
|
||||
configure_file(packaging/rocm-ocl-icd.txt ${BUILD_DIR}/CMakeLists.txt @ONLY)
|
||||
configure_file(packaging/rocm-ocl-icd.postinst ${BUILD_DIR}/postinst @ONLY)
|
||||
configure_file(packaging/rocm-ocl-icd.prerm ${BUILD_DIR}/prerm @ONLY)
|
||||
configure_file(packaging/rocm-ocl-icd.rpm_post ${BUILD_DIR}/rpm_post @ONLY)
|
||||
configure_file(packaging/rocm-ocl-icd.rpm_postun ${BUILD_DIR}/rpm_postun @ONLY)
|
||||
add_custom_target(pkg_rocm_ocl_icd COMMAND ${CMAKE_COMMAND} .
|
||||
COMMAND rm -rf *.deb *.rpm *.tar.gz
|
||||
COMMAND make package
|
||||
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
|
||||
COMMAND cp *.rpm ${PROJECT_BINARY_DIR}
|
||||
WORKING_DIRECTORY ${BUILD_DIR}
|
||||
DEPENDS amdocl OpenCL)
|
||||
|
||||
# Package: rocm-opencl
|
||||
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/rocm-opencl)
|
||||
configure_file(packaging/rocm-opencl.txt ${BUILD_DIR}/CMakeLists.txt @ONLY)
|
||||
configure_file(packaging/rocm-opencl.postinst ${BUILD_DIR}/postinst @ONLY)
|
||||
configure_file(packaging/rocm-opencl.prerm ${BUILD_DIR}/prerm @ONLY)
|
||||
configure_file(packaging/rocm-opencl.rpm_post ${BUILD_DIR}/rpm_post @ONLY)
|
||||
configure_file(packaging/rocm-opencl.rpm_postun ${BUILD_DIR}/rpm_postun @ONLY)
|
||||
add_custom_target(pkg_rocm_opencl COMMAND ${CMAKE_COMMAND} .
|
||||
COMMAND rm -rf *.deb *.rpm *.tar.gz
|
||||
COMMAND make package
|
||||
@@ -96,7 +107,7 @@ endif()
|
||||
|
||||
add_custom_target(package
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
DEPENDS pkg_rocm_opencl pkg_rocm_opencl_dev)
|
||||
DEPENDS pkg_rocm_ocl_icd pkg_rocm_opencl pkg_rocm_opencl_dev)
|
||||
if(POLICY CMP0037)
|
||||
cmake_policy(POP)
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
cmake_minimum_required(VERSION 3.5.1)
|
||||
project(rocm-ocl-icd)
|
||||
|
||||
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 @opencl_SOURCE_DIR@/khronos/icd/LICENSE DESTINATION share/doc/rocm-ocl-icd)
|
||||
|
||||
#############################
|
||||
# Packaging steps
|
||||
#############################
|
||||
# Generic CPACK variables
|
||||
set(CPACK_GENERATOR "DEB;RPM")
|
||||
set(CPACK_PACKAGE_NAME "rocm-ocl-icd")
|
||||
set(CPACK_PACKAGE_CONTACT "ROCm OpenCL Support <rocm-opencl.support@amd.com>")
|
||||
set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX @CPACK_PACKAGING_INSTALL_PREFIX@)
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenCL ICD loader provided by ROCm")
|
||||
set(CPACK_PACKAGE_VERSION @PROJECT_VERSION@)
|
||||
|
||||
if(DEFINED ENV{ROCM_LIBPATCH_VERSION})
|
||||
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.$ENV{ROCM_LIBPATCH_VERSION}")
|
||||
message("Using CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}")
|
||||
endif()
|
||||
|
||||
# Debian CPACK variables
|
||||
set(CPACK_BINARY_DEB "ON")
|
||||
if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
|
||||
set(CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
|
||||
else()
|
||||
set(CPACK_DEBIAN_PACKAGE_RELEASE "local")
|
||||
endif()
|
||||
message("Using CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_DEBIAN_PACKAGE_RELEASE}")
|
||||
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
|
||||
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_BINARY_DIR}/postinst;${PROJECT_BINARY_DIR}/prerm")
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "rocm-core")
|
||||
|
||||
# RPM CPACK variables
|
||||
set(CPACK_BINARY_RPM "ON")
|
||||
if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE})
|
||||
set(CPACK_RPM_PACKAGE_RELEASE $ENV{CPACK_RPM_PACKAGE_RELEASE})
|
||||
else()
|
||||
set(CPACK_RPM_PACKAGE_RELEASE "local")
|
||||
endif()
|
||||
message("Using CPACK_RPM_PACKAGE_RELEASE ${CPACK_RPM_PACKAGE_RELEASE}")
|
||||
set(CPACK_RPM_PACKAGE_LICENSE "ASL 2.0")
|
||||
|
||||
## 'dist' breaks manual builds on debian systems due to empty Provides
|
||||
execute_process(COMMAND rpm --eval %{?dist}
|
||||
RESULT_VARIABLE PROC_RESULT
|
||||
OUTPUT_VARIABLE EVAL_RESULT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
message("RESULT_VARIABLE ${PROC_RESULT} OUTPUT_VARIABLE: ${EVAL_RESULT}")
|
||||
|
||||
if(PROC_RESULT EQUAL "0" AND NOT EVAL_RESULT STREQUAL "")
|
||||
string(APPEND CPACK_RPM_PACKAGE_RELEASE "%{?dist}")
|
||||
endif()
|
||||
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/rpm_post")
|
||||
set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/rpm_postun")
|
||||
set(CPACK_RPM_PACKAGE_AUTOREQPROV " no")
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES "rocm-core")
|
||||
# Remove dependency on rocm-core if -DROCM_DEP_ROCMCORE=ON not given to cmake
|
||||
if(NOT ROCM_DEP_ROCMCORE)
|
||||
string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_PACKAGE_REQUIRES ${CPACK_RPM_PACKAGE_REQUIRES})
|
||||
string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_DEPENDS})
|
||||
endif()
|
||||
|
||||
include(CPack)
|
||||
@@ -3,9 +3,6 @@ project(rocm-opencl)
|
||||
|
||||
install(PROGRAMS @PROJECT_BINARY_DIR@/tools/clinfo/clinfo DESTINATION bin)
|
||||
install(FILES @PROJECT_BINARY_DIR@/amdocl/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 @opencl_SOURCE_DIR@/LICENSE.txt DESTINATION share/doc/rocm-opencl)
|
||||
|
||||
#############################
|
||||
@@ -34,8 +31,7 @@ else()
|
||||
endif()
|
||||
message("Using CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_DEBIAN_PACKAGE_RELEASE}")
|
||||
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
|
||||
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_BINARY_DIR}/postinst;${PROJECT_BINARY_DIR}/prerm")
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libelf-dev, comgr, hsa-rocr-dev, rocm-core")
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "rocm-ocl-icd, libelf-dev, comgr, hsa-rocr-dev, rocm-core")
|
||||
|
||||
# RPM CPACK variables
|
||||
set(CPACK_BINARY_RPM "ON")
|
||||
@@ -58,10 +54,8 @@ if(PROC_RESULT EQUAL "0" AND NOT EVAL_RESULT STREQUAL "")
|
||||
string(APPEND CPACK_RPM_PACKAGE_RELEASE "%{?dist}")
|
||||
endif()
|
||||
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/rpm_post")
|
||||
set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${PROJECT_BINARY_DIR}/rpm_postun")
|
||||
set(CPACK_RPM_PACKAGE_AUTOREQPROV " no")
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES "comgr, hsa-rocr-dev, rocm-core")
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES "rocm-ocl-icd, comgr, hsa-rocr-dev, rocm-core")
|
||||
# Remove dependency on rocm-core if -DROCM_DEP_ROCMCORE=ON not given to cmake
|
||||
if(NOT ROCM_DEP_ROCMCORE)
|
||||
string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_PACKAGE_REQUIRES ${CPACK_RPM_PACKAGE_REQUIRES})
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする