diff --git a/opencl/CMakeLists.txt b/opencl/CMakeLists.txt index 4464ed0ee9..0d29728922 100644 --- a/opencl/CMakeLists.txt +++ b/opencl/CMakeLists.txt @@ -54,7 +54,12 @@ endif() get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION) get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION) -set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm/opencl" CACHE PATH "Package Installation path for OpenCL") +#Set Package Version +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() #ROCM_PATH is needed to create symlink of libraries if(NOT DEFINED ROCM_PATH) @@ -62,53 +67,36 @@ if(NOT DEFINED ROCM_PATH) endif() message (STATUS "ROCM Installation path(ROCM_PATH): ${ROCM_PATH}") -# Package: rocm-ocl-icd + +#Package: rocm-opencl,rocm-opencl-dev/devel +add_subdirectory(packaging) + + +#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.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} -DROCM_DEP_ROCMCORE=${ROCM_DEP_ROCMCORE} . - 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) +#add_custom_target(pkg_rocm_ocl_icd COMMAND ${CMAKE_COMMAND} -DROCM_DEP_ROCMCORE=${ROCM_DEP_ROCMCORE} . +# 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) -add_custom_target(pkg_rocm_opencl COMMAND ${CMAKE_COMMAND} -DROCM_DEP_ROCMCORE=${ROCM_DEP_ROCMCORE} . - 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: all +#if(POLICY CMP0037) +# cmake_policy(PUSH) +# cmake_policy(SET CMP0037 OLD) +#endif() -# Package: rocm-opencl-dev -set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/rocm-opencl-dev) -configure_file(packaging/rocm-opencl-dev.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) -add_custom_target(pkg_rocm_opencl_dev COMMAND ${CMAKE_COMMAND} -DROCM_DEP_ROCMCORE=${ROCM_DEP_ROCMCORE} . - 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: all -if(POLICY CMP0037) - cmake_policy(PUSH) - cmake_policy(SET CMP0037 OLD) -endif() - -add_custom_target(package - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} - DEPENDS pkg_rocm_ocl_icd pkg_rocm_opencl pkg_rocm_opencl_dev) -if(POLICY CMP0037) - cmake_policy(POP) -endif() +#add_custom_target(package_icd +# WORKING_DIRECTORY ${PROJECT_BINARY_DIR} +# DEPENDS pkg_rocm_ocl_icd ) +##if(POLICY CMP0037) +# cmake_policy(POP) +#endif() endif() diff --git a/opencl/packaging/CMakeLists.txt b/opencl/packaging/CMakeLists.txt new file mode 100644 index 0000000000..cc9f7e0e4d --- /dev/null +++ b/opencl/packaging/CMakeLists.txt @@ -0,0 +1,125 @@ +cmake_minimum_required(VERSION 3.5.1) +project(rocm-opencl) + +set(CPACK_COMPONENTS_ALL binary dev icd) +set(CPACK_DEB_COMPONENT_INSTALL ON) +set(CPACK_RPM_COMPONENT_INSTALL ON) + + + + +install(PROGRAMS ${CMAKE_BINARY_DIR}/tools/clinfo/clinfo DESTINATION bin COMPONENT binary) +install(FILES ${CMAKE_BINARY_DIR}/amdocl/libamdocl64.so DESTINATION lib COMPONENT binary) +install(FILES ${CMAKE_SOURCE_DIR}/LICENSE.txt DESTINATION share/doc/${CMAKE_PROJECT_NAME} COMPONENT binary) + +install(DIRECTORY ${CMAKE_SOURCE_DIR}/khronos/headers/opencl2.2/CL + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT dev + USE_SOURCE_PERMISSIONS + PATTERN cl_d3d10.h EXCLUDE + PATTERN cl_d3d11.h EXCLUDE + PATTERN cl_dx9_media_sharing.h EXCLUDE + PATTERN cl_egl.h EXCLUDE ) + +install(FILES ${CMAKE_BINARY_DIR}/khronos/icd/libOpenCL.so DESTINATION lib COMPONENT icd ) +install(FILES ${CMAKE_BINARY_DIR}/khronos/icd/libOpenCL.so.${OPENCL_LIB_VERSION_MAJOR} DESTINATION lib COMPONENT icd ) +install(FILES ${CMAKE_BINARY_DIR}/khronos/icd/libOpenCL.so.${OPENCL_LIB_VERSION_STRING} DESTINATION lib COMPONENT icd ) +install(FILES ${CMAKE_SOURCE_DIR}/khronos/icd/LICENSE DESTINATION share/doc/rocm-ocl-icd COMPONENT icd) + + +# Generic CPACK variables +set(CPACK_GENERATOR "DEB;RPM" CACHE STRING "Package types to build") +set(CPACK_PACKAGE_CONTACT "ROCm OpenCL Support ") +set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") +set(CPACK_PACKAGE_DESCRIPTION "OpenCL: Open Computing Language on ROCclr") + +set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm/opencl" CACHE PATH "Package Installation path for OpenCL") + + + +#########Binary-Package############### +set(CPACK_DEBIAN_BINARY_PACKAGE_NAME "rocm-opencl") +set(CPACK_RPM_BINARY_PACKAGE_NAME "rocm-opencl") + +# 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_BINARY_PACKAGE_DEPENDS "rocm-ocl-icd, libelf-dev, comgr, hsa-rocr, rocm-core") + +# RPM CPACK variables +set(CPACK_BINARY_RPM "ON") +set(CPACK_RPM_BINARY_PACKAGE_REQUIRES "rocm-ocl-icd, comgr, hsa-rocr, rocm-core") + +#Unable to set CPACK_RPM_BIANRY_PACKAGE_LICENSE to control individual pacakge license +#Hence combining the license for BINARY,DEV,ICD to one +set(CPACK_RPM_PACKAGE_LICENSE "MIT and ASL 2.0") + +#########Dev-Package############### + +# DEBIAN CPACK variables +set(CPACK_DEBIAN_DEV_PACKAGE_NAME "rocm-opencl-dev") +set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "mesa-common-dev, rocm-opencl, hsa-rocr-dev, rocm-core") +# RPM CPACK variables +set(CPACK_RPM_DEV_PACKAGE_NAME "rocm-opencl-devel") +set(CPACK_RPM_DEV_PACKAGE_REQUIRES "rocm-opencl, hsa-rocr-devel, rocm-core") + + +############################# +# ICD Loader +############################# + +# Debian CPACK variables +set(CPACK_ICD_DEB "ON") +set(CPACK_DEBIAN_ICD_PACKAGE_NAME "rocm-ocl-icd") + +set(CPACK_DEBIAN_ICD_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/packages/rocm-ocl-icd/postinst;${CMAKE_BINARY_DIR}/packages/rocm-ocl-icd/prerm") +set(CPACK_DEBIAN_ICD_PACKAGE_DEPENDS "rocm-core") + +# RPM CPACK variables +set(CPACK_ICD_RPM "ON") +set(CPACK_RPM_ICD_PACKAGE_NAME "rocm-ocl-icd") + + + +set(CPACK_RPM_ICD_POST_INSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/packages/rocm-ocl-icd/rpm_post") +set(CPACK_RPM_ICD_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/packages/rocm-ocl-icd/rpm_postun") +set(CPACK_RPM_ICD_PACKAGE_REQUIRES "rocm-core") + +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_FILE_NAME "RPM-DEFAULT") +set(CPACK_RPM_PACKAGE_AUTOREQPROV " no") + +## '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() +# 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_BINARY_PACKAGE_REQUIRES ${CPACK_RPM_BINARY_PACKAGE_REQUIRES}) + string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_BINARY_PACKAGE_DEPENDS ${CPACK_DEBIAN_BINARY_PACKAGE_DEPENDS}) + string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_DEV_PACKAGE_REQUIRES ${CPACK_RPM_DEV_PACKAGE_REQUIRES}) + string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_DEV_PACKAGE_DEPENDS ${CPACK_DEBIAN_DEV_PACKAGE_DEPENDS}) + string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_ICD_PACKAGE_REQUIRES ${CPACK_RPM_ICD_PACKAGE_REQUIRES}) + string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_ICD_PACKAGE_DEPENDS ${CPACK_DEBIAN_ICD_PACKAGE_DEPENDS}) +endif() + +include(CPack) diff --git a/opencl/packaging/rocm-ocl-icd.txt b/opencl/packaging/rocm-ocl-icd.txt deleted file mode 100644 index 66e3863502..0000000000 --- a/opencl/packaging/rocm-ocl-icd.txt +++ /dev/null @@ -1,69 +0,0 @@ -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 ") -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) diff --git a/opencl/packaging/rocm-opencl-dev.txt b/opencl/packaging/rocm-opencl-dev.txt deleted file mode 100644 index e024401097..0000000000 --- a/opencl/packaging/rocm-opencl-dev.txt +++ /dev/null @@ -1,70 +0,0 @@ -cmake_minimum_required(VERSION 3.5.1) -project(rocm-opencl-dev) - -install(DIRECTORY @opencl_SOURCE_DIR@/khronos/headers/opencl2.2/CL - DESTINATION include - USE_SOURCE_PERMISSIONS - PATTERN cl_d3d10.h EXCLUDE - PATTERN cl_d3d11.h EXCLUDE - PATTERN cl_dx9_media_sharing.h EXCLUDE - PATTERN cl_egl.h EXCLUDE) - -############################# -# Packaging steps -############################# -# Generic CPACK variables -set(CPACK_GENERATOR "DEB;RPM") -set(CPACK_PACKAGE_NAME "rocm-opencl-dev") -set(CPACK_PACKAGE_CONTACT "ROCm OpenCL Support ") -set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") -set(CPACK_PACKAGING_INSTALL_PREFIX @CPACK_PACKAGING_INSTALL_PREFIX@) -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenCL: Open Computing Language on ROCclr") -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_DEPENDS "mesa-common-dev, rocm-opencl, rocm-core") - -# RPM CPACK variables -set(CPACK_BINARY_RPM "ON") -set(CPACK_RPM_PACKAGE_NAME "rocm-opencl-devel") -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 "MIT") - -## '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_PACKAGE_AUTOREQPROV " no") -set(CPACK_RPM_PACKAGE_REQUIRES "rocm-opencl, 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) diff --git a/opencl/packaging/rocm-opencl.txt b/opencl/packaging/rocm-opencl.txt deleted file mode 100644 index 830c378f6a..0000000000 --- a/opencl/packaging/rocm-opencl.txt +++ /dev/null @@ -1,65 +0,0 @@ -cmake_minimum_required(VERSION 3.5.1) -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 @opencl_SOURCE_DIR@/LICENSE.txt DESTINATION share/doc/rocm-opencl) - -############################# -# Packaging steps -############################# -# Generic CPACK variables -set(CPACK_GENERATOR "DEB;RPM") -set(CPACK_PACKAGE_NAME "rocm-opencl") -set(CPACK_PACKAGE_CONTACT "ROCm OpenCL Support ") -set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") -set(CPACK_PACKAGING_INSTALL_PREFIX @CPACK_PACKAGING_INSTALL_PREFIX@) -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenCL: Open Computing Language on ROCclr") -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_DEPENDS "rocm-ocl-icd, libelf-dev, comgr, hsa-rocr-dev, 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 "MIT") - -## '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_PACKAGE_AUTOREQPROV " no") -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}) - string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_DEBIAN_PACKAGE_DEPENDS}) -endif() - -include(CPack)