Files
rocm-systems/projects/clr/opencl/CMakeLists.txt
T
Freddy Paul 9b9669d29c SWDEV-309024 - Providing debug information for released libraries
Current packaging structure using custom command fail to work for
generating debug symbols.Hence changing the packaging to more
conventional way of using single CMakeLists.txt and split packages
using components like binary, dev and icd

Change-Id: I7fcf5f8afc3602f77576f2a13aa4916acb10888b


[ROCm/clr commit: 8fa82f6e64]
2022-01-26 08:14:05 -08:00

103 řádky
3.1 KiB
CMake

cmake_minimum_required(VERSION 3.5.1)
if (POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
set(PROJ_VERSION VERSION 1.5.0)
endif()
project(opencl)
include(GNUInstallDirs)
option(BUILD_TESTS "Enable building OpenCL tests" OFF)
option(EMU_ENV "Enable building for emulation environment" OFF)
set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_LIST_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
add_subdirectory(khronos/icd)
add_subdirectory(amdocl)
add_subdirectory(tools/clinfo)
add_subdirectory(tools/cltrace)
if(BUILD_TESTS)
add_subdirectory(tests/ocltst)
endif()
###--- Packaging ------------------------------------------------------------###
# DEV package
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/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)
#############################
# Packaging steps
#############################
if(NOT WIN32)
find_package(ROCM QUIET CONFIG PATHS /opt/rocm)
if(ROCM_FOUND)
include(ROCMSetupVersion)
rocm_setup_version( VERSION "2.0.0" )
else()
set(PROJECT_VERSION "2.0.0")
endif()
#set a name for icd file
set(OPENCL_AMD_ICD_FILE "amdocl64.icd")
if (DEFINED ROCM_PATCH_VERSION)
set(OPENCL_AMD_ICD_FILE "amdocl64_${ROCM_PATCH_VERSION}.icd")
endif()
get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION)
get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION)
#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)
string(REPLACE "/opencl" "" ROCM_PATH ${CPACK_PACKAGING_INSTALL_PREFIX})
endif()
message (STATUS "ROCM Installation path(ROCM_PATH): ${ROCM_PATH}")
#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.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)
#Package: all
#if(POLICY CMP0037)
# cmake_policy(PUSH)
# cmake_policy(SET CMP0037 OLD)
#endif()
#add_custom_target(package_icd
# WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
# DEPENDS pkg_rocm_ocl_icd )
##if(POLICY CMP0037)
# cmake_policy(POP)
#endif()
endif()