From 2b391e21485bdbff362eaa15ca9b912463b01cdc Mon Sep 17 00:00:00 2001
From: foreman
Date: Thu, 1 Aug 2019 12:44:10 -0400
Subject: [PATCH] P4 to Git Change 1977054 by kzhuravl@kzhuravl-spot-ocl on
2019/08/01 12:32:41
SWDEV-79445 - OCL generic changes and code clean-up
- Fix COMGR+CMAKE combination - http://git.amd.com:8080/c/compute/ec/opencl/+/247843
- Fix and clean up packaging (cmake) - http://git.amd.com:8080/c/compute/ec/opencl/+/247844
Affected files ...
... //depot/stg/opencl/drivers/opencl/CMakeLists.txt#26 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/CMakeLists.txt#19 edit
... //depot/stg/opencl/drivers/opencl/runtime/CMakeLists.txt#16 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/devprogram.cpp#54 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/CMakeLists.txt#21 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#104 edit
... //depot/stg/opencl/drivers/opencl/tools/clinfo/CMakeLists.txt#6 edit
---
opencl/CMakeLists.txt | 190 +++++++++++++-----------
opencl/api/opencl/amdocl/CMakeLists.txt | 6 +-
opencl/tools/clinfo/CMakeLists.txt | 2 -
3 files changed, 110 insertions(+), 88 deletions(-)
diff --git a/opencl/CMakeLists.txt b/opencl/CMakeLists.txt
index 3d04b39a5c..b5544361aa 100644
--- a/opencl/CMakeLists.txt
+++ b/opencl/CMakeLists.txt
@@ -5,6 +5,9 @@ if (POLICY CMP0048)
set(PROJ_VERSION VERSION 1.5.0)
endif()
+# FIXME: Remove following line after enabling COMGR by default
+set(USE_COMGR_LIBRARY "no" CACHE STRING "Do not enable COMGR by default")
+
# Build ROCm-OpenCL with ccache if the package is present.
set(ROCM_OPENCL_CCACHE_BUILD OFF CACHE BOOL "Set to ON for a ccache enabled build")
if(ROCM_OPENCL_CCACHE_BUILD)
@@ -14,9 +17,13 @@ if(ROCM_OPENCL_CCACHE_BUILD)
else()
message(FATAL_ERROR "Unable to find the program ccache. Set ROCM_OPENCL_CCACHE_BUILD to OFF")
endif()
- set(LLVM_CCACHE_BUILD ON CACHE BOOL "")
- set(ROCM_DEVICE_LIBS_CCACHE_BUILD ON CACHE BOOL "")
- set(ROCM_OPENCL_DRIVER_CCACHE_BUILD ON CACHE BOOL "")
+
+ # FIXME: Remove following if block after enabling COMGR by default
+ if (${USE_COMGR_LIBRARY} STREQUAL "no")
+ set(LLVM_CCACHE_BUILD ON CACHE BOOL "")
+ set(ROCM_DEVICE_LIBS_CCACHE_BUILD ON CACHE BOOL "")
+ set(ROCM_OPENCL_DRIVER_CCACHE_BUILD ON CACHE BOOL "")
+ endif() # if (${USE_COMGR_LIBRARY} STREQUAL "no")
endif()
project(OpenCL-ROCm)
@@ -28,52 +35,65 @@ set(CMAKE_MODULE_PATH
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
)
-set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
-set(LLVM_BUILD_TOOLS OFF CACHE BOOL "")
-set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "")
-set(LLVM_TARGETS_TO_BUILD "AMDGPU" CACHE STRING "")
-set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "")
-set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "")
+# FIXME: Remove following if block after enabling COMGR by default
+if (${USE_COMGR_LIBRARY} STREQUAL "no")
+ set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
+ set(LLVM_BUILD_TOOLS OFF CACHE BOOL "")
+ set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "")
+ set(LLVM_TARGETS_TO_BUILD "AMDGPU" CACHE STRING "")
+ set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "")
+ set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "")
-# override default option value in library and driver
-set(GENERIC_IS_ZERO ON CACHE BOOL ON FORCE)
+ # override default option value in library and driver
+ set(GENERIC_IS_ZERO ON CACHE BOOL ON FORCE)
-add_subdirectory(compiler/llvm EXCLUDE_FROM_ALL)
+ add_subdirectory(compiler/llvm EXCLUDE_FROM_ALL)
-find_package(LLVM REQUIRED CONFIG PATHS ${CMAKE_BINARY_DIR}/compiler/llvm NO_DEFAULT_PATH)
+ find_package(LLVM REQUIRED CONFIG PATHS ${CMAKE_BINARY_DIR}/compiler/llvm NO_DEFAULT_PATH)
-list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
-include(AddLLVM)
+ list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
+ include(AddLLVM)
-add_definitions(${LLVM_DEFINITIONS})
-# TODO: add find_package for Clang and lld, and also use LLVM/Clang variables got from their config
-include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/tools/clang/include)
-include_directories(${CMAKE_BINARY_DIR}/compiler/llvm/tools/clang/include)
-include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/tools/lld/include)
+ add_definitions(${LLVM_DEFINITIONS})
+ # TODO: add find_package for Clang and lld, and also use LLVM/Clang variables got from their config
+ include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/tools/clang/include)
+ include_directories(${CMAKE_BINARY_DIR}/compiler/llvm/tools/clang/include)
+ include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/tools/lld/include)
-# TODO: move AMDGPU.h header to include folder
-include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/lib/Target/AMDGPU)
-include_directories(${CMAKE_BINARY_DIR}/compiler/llvm/lib/Target/AMDGPU)
+ # TODO: move AMDGPU.h header to include folder
+ include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/lib/Target/AMDGPU)
+ include_directories(${CMAKE_BINARY_DIR}/compiler/llvm/lib/Target/AMDGPU)
+
+ set(BUILD_HC_LIB OFF CACHE BOOL "")
+ set(ROCM_DEVICELIB_INCLUDE_TESTS OFF CACHE BOOL "")
+ set(AMDGCN_TARGETS_LIB_LIST "AMDGCN_LIB_TARGETS")
+ set(AMDGCN_TARGETS_LIB_DEPS "AMDGCN_DEP_TARGETS")
+ set(AMDGPU_TARGET_TRIPLE "amdgcn-amd-amdhsa")
+ add_subdirectory(library/amdgcn EXCLUDE_FROM_ALL)
+ add_subdirectory(compiler/driver EXCLUDE_FROM_ALL)
+
+ install(PROGRAMS $ $
+ DESTINATION bin/x86_64
+ COMPONENT DEV)
+
+ foreach(AMDGCN_LIB_TARGET ${AMDGCN_LIB_TARGETS})
+ get_target_property(lib_file_name ${AMDGCN_LIB_TARGET} ARCHIVE_OUTPUT_NAME)
+ get_target_property(lib_file_path ${AMDGCN_LIB_TARGET} ARCHIVE_OUTPUT_DIRECTORY)
+ install(FILES ${lib_file_path}/${lib_file_name}.amdgcn.bc
+ DESTINATION lib/x86_64/bitcode
+ COMPONENT DEV)
+ endforeach()
+endif() # if (${USE_COMGR_LIBRARY} STREQUAL "no")
if(${USE_COMGR_LIBRARY} MATCHES "yes")
set(COMGR_DYN_DLL "yes")
- add_definitions(-DCOMGR_DYN_DLL="yes")
- include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/include)
+ add_definitions(-DCOMGR_DYN_DLL)
add_definitions(-DUSE_COMGR_LIBRARY)
if( ${BUILD_HIP} MATCHES "yes")
- add_subdirectory(api/hip)
+ add_subdirectory(api/hip)
endif()
-else()
- add_subdirectory(compiler/driver EXCLUDE_FROM_ALL)
endif()
-set(BUILD_HC_LIB OFF CACHE BOOL "")
-set(ROCM_DEVICELIB_INCLUDE_TESTS OFF CACHE BOOL "")
-set(AMDGCN_TARGETS_LIB_LIST "AMDGCN_LIB_TARGETS")
-set(AMDGCN_TARGETS_LIB_DEPS "AMDGCN_DEP_TARGETS")
-set(AMDGPU_TARGET_TRIPLE "amdgcn-amd-amdhsa")
-add_subdirectory(library/amdgcn EXCLUDE_FROM_ALL)
-
add_subdirectory(compiler/lib/loaders/elf/utils/libelf)
find_package(ROCT REQUIRED)
@@ -89,68 +109,68 @@ add_subdirectory(api/opencl/khronos/icd)
add_subdirectory(tools/clinfo)
-install(PROGRAMS $ $
- DESTINATION bin/x86_64
- COMPONENT libraries)
+###--- Packaging ------------------------------------------------------------###
+# MAIN package
+install(PROGRAMS $
+ DESTINATION bin/x86_64
+ COMPONENT MAIN)
+install(PROGRAMS $
+ DESTINATION lib/x86_64
+ COMPONENT MAIN)
install(PROGRAMS $
DESTINATION lib/x86_64
- COMPONENT applications)
+ COMPONENT MAIN)
+install(PROGRAMS $
+ DESTINATION lib/x86_64
+ COMPONENT MAIN)
+# DEV package
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/api/opencl/khronos/headers/opencl2.2/CL"
+ DESTINATION include
+ 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(PROGRAMS $
DESTINATION lib/x86_64
- COMPONENT libraries)
+ COMPONENT DEV)
-install(DIRECTORY
- "${CMAKE_CURRENT_SOURCE_DIR}/api/opencl/khronos/headers/opencl2.2/CL"
- DESTINATION include
- COMPONENT libraries
- USE_SOURCE_PERMISSIONS
- PATTERN cl_egl.h EXCLUDE)
+# Generic CPACK variables
+set(CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators")
-foreach(AMDGCN_LIB_TARGET ${AMDGCN_LIB_TARGETS})
- get_target_property(lib_file_name ${AMDGCN_LIB_TARGET} ARCHIVE_OUTPUT_NAME)
- get_target_property(lib_file_path ${AMDGCN_LIB_TARGET} ARCHIVE_OUTPUT_DIRECTORY)
- install(FILES ${lib_file_path}/${lib_file_name}.amdgcn.bc
- DESTINATION lib/x86_64/bitcode
- COMPONENT libraries)
-endforeach()
+set(CPACK_PACKAGE_CONTACT "Advanced Micro Devices Inc.")
+set(CPACK_PACKAGE_VENDOR "AMD")
+set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm/opencl")
-## CPack standard variables
-set ( CPACK_PACKAGE_NAME "rocm-opencl" )
-set ( CPACK_PACKAGE_FILE_NAME "rocm-opencl-1.2.0" )
-set ( CPACK_PACKAGE_VENDOR "AMD" )
-set ( CPACK_PACKAGE_VERSION_MAJOR "1" )
-set ( CPACK_PACKAGE_VERSION_MINOR "2" )
-set ( CPACK_PACKAGE_VERSION_PATCH "0" )
-set ( CPACK_PACKAGE_CONTACT "Advanced Micro Devices Inc." )
-set ( CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime" )
+set(CPACK_PACKAGE_VERSION_MAJOR "1")
+set(CPACK_PACKAGE_VERSION_MINOR "2")
+set(CPACK_PACKAGE_VERSION_PATCH "0")
-set ( CPACK_GENERATOR RPM DEB )
-set ( CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm/opencl" )
+# Debian CPACK variables
+set(CPACK_DEB_COMPONENT_INSTALL ON)
-## Debian package values
+set(CPACK_DEBIAN_MAIN_FILE_NAME "rocm-opencl-1.2.0.deb")
+set(CPACK_DEBIAN_MAIN_PACKAGE_NAME "rocm-opencl")
+set(CPACK_DEBIAN_MAIN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/DEB/postinst;${CMAKE_CURRENT_SOURCE_DIR}/DEB/prerm")
-set ( CPACK_DEBIAN_PACKAGE_MAINTAINER "AMD" )
-set ( CPACK_DEBIAN_PACKAGE_DEPENDS "" )
-set ( CPACK_DEB_COMPONENT_INSTALL ON)
-set ( CPACK_DEBIAN_applications_PACKAGE_NAME "rocm-opencl" )
-set ( CPACK_DEBIAN_applications_FILE_NAME "rocm-opencl-1.2.0.deb" )
-set ( CPACK_DEBIAN_libraries_PACKAGE_NAME "rocm-opencl-dev" )
-set ( CPACK_DEBIAN_libraries_FILE_NAME "rocm-opencl-dev-1.2.0.deb" )
-set ( CPACK_DEBIAN_libraries_PACKAGE_DEPENDS "rocm-opencl" )
-set ( CPACK_DEBIAN_applications_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/DEB/postinst;${CMAKE_CURRENT_SOURCE_DIR}/DEB/prerm" )
+set(CPACK_DEBIAN_DEV_FILE_NAME "rocm-opencl-dev-1.2.0.deb")
+set(CPACK_DEBIAN_DEV_PACKAGE_NAME "rocm-opencl-dev")
+set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "rocm-opencl")
-## RPM package values
+# RPM CPACK variables
+set(CPACK_RPM_COMPONENT_INSTALL ON)
-set ( CPACK_RPM_COMPONENT_INSTALL ON)
-set ( CPACK_RPM_applications_PACKAGE_NAME "rocm-opencl" )
-set ( CPACK_RPM_applications_FILE_NAME "rocm-opencl-1.2.0.rpm" )
-set ( CPACK_RPM_libraries_PACKAGE_NAME "rocm-opencl-devel" )
-set ( CPACK_RPM_libraries_FILE_NAME "rocm-opencl-devel-1.2.0.rpm" )
-set ( CPACK_RPM_libraries_PACKAGE_DEPENDS "rocm-opencl" )
-set ( CPACK_RPM_applications_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post" )
-set ( CPACK_RPM_applications_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun" )
+set(CPACK_RPM_MAIN_FILE_NAME "rocm-opencl-1.2.0.rpm")
+set(CPACK_RPM_MAIN_PACKAGE_NAME "rocm-opencl")
+set(CPACK_RPM_MAIN_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post")
+set(CPACK_RPM_MAIN_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun")
-set ( CPACK_COMPONENTS_ALL applications libraries )
-include ( CPack )
+set(CPACK_RPM_DEV_FILE_NAME "rocm-opencl-devel-1.2.0.rpm")
+set(CPACK_RPM_DEV_PACKAGE_NAME "rocm-opencl-devel")
+set(CPACK_RPM_DEV_PACKAGE_DEPENDS "rocm-opencl")
+
+set(CPACK_COMPONENTS_ALL MAIN DEV)
+include(CPack)
diff --git a/opencl/api/opencl/amdocl/CMakeLists.txt b/opencl/api/opencl/amdocl/CMakeLists.txt
index 642ce8c296..8ea8517f39 100644
--- a/opencl/api/opencl/amdocl/CMakeLists.txt
+++ b/opencl/api/opencl/amdocl/CMakeLists.txt
@@ -16,6 +16,11 @@ if(CMAKE_BUILD_TYPE MATCHES "^Debug$")
add_definitions(-DDEBUG)
endif()
+include_directories(${ROCR_INCLUDES})
+if (DEFINED LLVM_INCLUDES AND NOT ${LLVM_INCLUDES} STREQUAL "")
+ include_directories(${LLVM_INCLUDES})
+endif() # if (DEFINED LLVM_INCLUDES AND NOT ${LLVM_INCLUDES} STREQUAL "")
+
include_directories(${CMAKE_SOURCE_DIR}/runtime)
include_directories(${CMAKE_SOURCE_DIR}/api/opencl)
include_directories(${CMAKE_SOURCE_DIR}/api/opencl/khronos)
@@ -77,4 +82,3 @@ if(${USE_COMGR_LIBRARY} MATCHES "yes")
else()
target_link_libraries(amdocl64 opencl_driver oclelf pthread dl ${ROCT_LIBRARIES} ${ROCR_LIBRARIES})
endif()
-install(TARGETS amdocl64 LIBRARY DESTINATION lib/x86_64 COMPONENT applications)
diff --git a/opencl/tools/clinfo/CMakeLists.txt b/opencl/tools/clinfo/CMakeLists.txt
index 974a46fa95..08765e1a0d 100644
--- a/opencl/tools/clinfo/CMakeLists.txt
+++ b/opencl/tools/clinfo/CMakeLists.txt
@@ -9,5 +9,3 @@ add_definitions(-DHAVE_CL2_HPP)
add_executable(clinfo clinfo.cpp)
target_link_libraries(clinfo OpenCL)
-
-install(TARGETS clinfo DESTINATION bin)