CMAKE - Format with cmake-format
Change-Id: I08e71fc5060b1f6e0168225cc5fe66886c2044bd Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
This commit is contained in:
committad av
Galantsev, Dmitrii
förälder
f89beb90f5
incheckning
fa8b89f4ae
+174
-130
@@ -23,33 +23,57 @@
|
||||
#
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
|
||||
set(RDC "rdc" CACHE INTERNAL "")
|
||||
set(RDC_PACKAGE ${RDC} CACHE STRING "")
|
||||
set(RDC
|
||||
"rdc"
|
||||
CACHE INTERNAL "")
|
||||
set(RDC_PACKAGE
|
||||
${RDC}
|
||||
CACHE STRING "")
|
||||
|
||||
# ROCM_DIR should be passed in via command line
|
||||
set(ROCM_DIR "/opt/rocm" CACHE PATH "ROCm directory.")
|
||||
set(ROCM_DIR
|
||||
"/opt/rocm"
|
||||
CACHE PATH "ROCm directory.")
|
||||
if(DEFINED ROCM_PATH)
|
||||
message(WARNING "ROCM_PATH is not used by the build process! Did you mean to set ROCM_DIR instead?")
|
||||
message(
|
||||
WARNING "ROCM_PATH is not used by the build process! Did you mean to set ROCM_DIR instead?")
|
||||
endif()
|
||||
|
||||
# Default libdir to "lib", this skips GNUInstallDirs from trying to take a guess if it's unset:
|
||||
set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "Library install directory")
|
||||
set(CMAKE_INSTALL_LIBDIR
|
||||
"lib"
|
||||
CACHE STRING "Library install directory")
|
||||
|
||||
# Usually ROCM tools are installed into /opt/rocm
|
||||
set(CMAKE_INSTALL_PREFIX ${ROCM_DIR} CACHE PATH "Default installation directory.")
|
||||
set(CMAKE_INSTALL_PREFIX
|
||||
${ROCM_DIR}
|
||||
CACHE PATH "Default installation directory.")
|
||||
|
||||
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build to perform: Debug, Release, RelWithDebInfo, MinSizeRel")
|
||||
set(CMAKE_BUILD_TYPE
|
||||
"RelWithDebInfo"
|
||||
CACHE STRING "Choose the type of build to perform: Debug, Release, RelWithDebInfo, MinSizeRel")
|
||||
# Set the possible values of build type
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo" "MinSizeRel")
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo"
|
||||
"MinSizeRel")
|
||||
|
||||
# Set compile flags
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" CACHE STRING "Flags for Debug builds")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG" CACHE STRING "Flags for Release builds")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" CACHE STRING "Flags for RelWithDebInfo builds")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" CACHE STRING "Flags for MinSizeRel builds")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG
|
||||
"${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG"
|
||||
CACHE STRING "Flags for Debug builds")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE
|
||||
"${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG"
|
||||
CACHE STRING "Flags for Release builds")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG"
|
||||
CACHE STRING "Flags for RelWithDebInfo builds")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
"${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG"
|
||||
CACHE STRING "Flags for MinSizeRel builds")
|
||||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/" CACHE INTERNAL "Default module path.")
|
||||
set(CMAKE_MODULE_PATH
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/"
|
||||
CACHE INTERNAL "Default module path.")
|
||||
# Include common cmake modules
|
||||
include(utils)
|
||||
# Setup the package version based on git tags
|
||||
@@ -100,15 +124,16 @@ execute_process(
|
||||
COMMAND ${GIT} rev-parse --short HEAD
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
message("The HASH value of the current HEAD submission in this RDC code repository is : " ${GIT_HASH})
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
message("The HASH value of the current HEAD submission in this RDC code repository is : "
|
||||
${GIT_HASH})
|
||||
|
||||
# Don't print 'Up-to-date' when installing
|
||||
set(CMAKE_INSTALL_MESSAGE LAZY)
|
||||
|
||||
# this must go after some CMAKE_* variables
|
||||
project(${RDC}
|
||||
project(
|
||||
${RDC}
|
||||
VERSION "${VERSION_STRING}"
|
||||
HOMEPAGE_URL "https://github.com/RadeonOpenCompute/rdc")
|
||||
|
||||
@@ -119,45 +144,54 @@ include(GNUInstallDirs)
|
||||
set(COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/common")
|
||||
|
||||
set(GRPC_ROOT_DEFAULT "/usr")
|
||||
set(GRPC_ROOT ${GRPC_ROOT_DEFAULT} CACHE PATH "GRPC installation directory.")
|
||||
set(GRPC_DESIRED_VERSION 1.67.1 CACHE STRING "GRPC desired package version.")
|
||||
set(GRPC_ROOT
|
||||
${GRPC_ROOT_DEFAULT}
|
||||
CACHE PATH "GRPC installation directory.")
|
||||
set(GRPC_DESIRED_VERSION
|
||||
1.67.1
|
||||
CACHE STRING "GRPC desired package version.")
|
||||
|
||||
# add package search paths
|
||||
list(APPEND CMAKE_PREFIX_PATH
|
||||
${GRPC_ROOT}
|
||||
/usr/local
|
||||
)
|
||||
set(CMAKE_LIBRARY_PATH
|
||||
${CMAKE_LIBRARY_PATH}
|
||||
/usr/lib64
|
||||
/usr/lib/x86_64-linux-gnu
|
||||
)
|
||||
list(APPEND CMAKE_PREFIX_PATH ${GRPC_ROOT} /usr/local)
|
||||
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /usr/lib64 /usr/lib/x86_64-linux-gnu)
|
||||
|
||||
# configure packaging
|
||||
# cpack version is populated with CMAKE_PROJECT_VERSION implicitly
|
||||
set(CPACK_PACKAGE_NAME ${RDC_PACKAGE} CACHE INTERNAL "")
|
||||
set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc." CACHE STRING "")
|
||||
set(CPACK_PACKAGE_CONTACT "RDC Support <rdc.support@amd.com>" CACHE STRING "")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Radeon Data Center Tools" CACHE STRING "")
|
||||
set(CPACK_PACKAGE_DESCRIPTION "This package contains the AMD ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}." CACHE STRING "")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Default packaging prefix.")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" CACHE INTERNAL "")
|
||||
set(CPACK_RPM_PACKAGE_LICENSE "MIT" CACHE INTERNAL "")
|
||||
set(CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators.")
|
||||
set(CPACK_PACKAGE_NAME
|
||||
${RDC_PACKAGE}
|
||||
CACHE INTERNAL "")
|
||||
set(CPACK_PACKAGE_VENDOR
|
||||
"Advanced Micro Devices, Inc."
|
||||
CACHE STRING "")
|
||||
set(CPACK_PACKAGE_CONTACT
|
||||
"RDC Support <rdc.support@amd.com>"
|
||||
CACHE STRING "")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
||||
"Radeon Data Center Tools"
|
||||
CACHE STRING "")
|
||||
set(CPACK_PACKAGE_DESCRIPTION
|
||||
"This package contains the AMD ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}."
|
||||
CACHE STRING "")
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX
|
||||
"${CMAKE_INSTALL_PREFIX}"
|
||||
CACHE PATH "Default packaging prefix.")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
|
||||
CACHE INTERNAL "")
|
||||
set(CPACK_RPM_PACKAGE_LICENSE
|
||||
"MIT"
|
||||
CACHE INTERNAL "")
|
||||
set(CPACK_GENERATOR
|
||||
"DEB;RPM"
|
||||
CACHE STRING "Default packaging generators.")
|
||||
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||
mark_as_advanced(
|
||||
CPACK_PACKAGE_VENDOR
|
||||
CPACK_PACKAGE_CONTACT
|
||||
CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
||||
CPACK_PACKAGE_DESCRIPTION
|
||||
CPACK_GENERATOR)
|
||||
mark_as_advanced(CPACK_PACKAGE_VENDOR CPACK_PACKAGE_CONTACT CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
||||
CPACK_PACKAGE_DESCRIPTION CPACK_GENERATOR)
|
||||
|
||||
# check if libcap exists
|
||||
# needed for sys/capabilities.h
|
||||
find_library(LIB_CAP
|
||||
NAMES cap
|
||||
REQUIRED)
|
||||
find_library(LIB_CAP NAMES cap REQUIRED)
|
||||
|
||||
if(BUILD_STANDALONE AND GRPC_ROOT STREQUAL GRPC_ROOT_DEFAULT)
|
||||
message(WARNING "GRPC_ROOT is left default. Cannot install gRPC from default root!
|
||||
@@ -165,10 +199,15 @@ if(BUILD_STANDALONE AND GRPC_ROOT STREQUAL GRPC_ROOT_DEFAULT)
|
||||
Continuing without gRPC install")
|
||||
endif()
|
||||
|
||||
find_package(amd_smi 25.4.2
|
||||
NAMES amd_smi
|
||||
HINTS ${ROCM_DIR}/lib/cmake
|
||||
CONFIGURE REQUIRED)
|
||||
find_package(
|
||||
amd_smi
|
||||
25.4.2
|
||||
NAMES
|
||||
amd_smi
|
||||
HINTS
|
||||
${ROCM_DIR}/lib/cmake
|
||||
CONFIGURE
|
||||
REQUIRED)
|
||||
|
||||
if(NOT EXISTS "${AMD_SMI_INCLUDE_DIR}" OR NOT EXISTS "${AMD_SMI_LIB_DIR}")
|
||||
message(FATAL_ERROR "amd_smi not found in ${AMD_SMI_INCLUDE_DIR}. Please
|
||||
@@ -181,7 +220,9 @@ set(${RDC}_VERSION_PATCH "0")
|
||||
set(${RDC}_VERSION_BUILD "0")
|
||||
set(CPACK_PACKAGE_VERSION ${VERSION_STRING})
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17 CACHE STRING "The C++ standard to use")
|
||||
set(CMAKE_CXX_STANDARD
|
||||
17
|
||||
CACHE STRING "The C++ standard to use")
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
@@ -200,8 +241,12 @@ message("-----------ROCM_DIR : " ${ROCM_DIR})
|
||||
# this is needed for INSTALL_RPATH "\$ORIGIN" property to work correctly
|
||||
# please note that because of --enable-new-dtags - this actually sets RUNPATH and not RPATH.
|
||||
# this means LD_LIBRARY_PATH can override the library locations
|
||||
set(CMAKE_BUILD_RPATH_USE_ORIGIN TRUE CACHE BOOL "Set all RPATH to be ORIGIN-based")
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL "Use link path for RPATH")
|
||||
set(CMAKE_BUILD_RPATH_USE_ORIGIN
|
||||
TRUE
|
||||
CACHE BOOL "Set all RPATH to be ORIGIN-based")
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH
|
||||
TRUE
|
||||
CACHE BOOL "Use link path for RPATH")
|
||||
|
||||
## Add address sanitizer
|
||||
if(${ADDRESS_SANITIZER})
|
||||
@@ -220,33 +265,26 @@ if(${ADDRESS_SANITIZER})
|
||||
endif()
|
||||
|
||||
# Create a configure file to get version info from within library
|
||||
configure_file(
|
||||
"${PROJECT_SOURCE_DIR}/src/${RDC}64Config.in"
|
||||
"${PROJECT_SOURCE_DIR}/include/rdc/${RDC}64Config.h")
|
||||
configure_file("${PROJECT_SOURCE_DIR}/src/${RDC}64Config.in"
|
||||
"${PROJECT_SOURCE_DIR}/include/rdc/${RDC}64Config.h")
|
||||
|
||||
if(BUILD_STANDALONE)
|
||||
# Compile .proto files
|
||||
file(GLOB PROTOB_DEF_SRC_FILES "protos/*.proto")
|
||||
set(PROTOB_SRC_DIR "${PROJECT_SOURCE_DIR}/protos")
|
||||
set(PROTOB_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
find_program(PROTOB_CMD
|
||||
NAMES protoc
|
||||
REQUIRED)
|
||||
find_program(GRPC_PLUGIN
|
||||
NAMES grpc_cpp_plugin
|
||||
REQUIRED)
|
||||
find_program(PROTOB_CMD NAMES protoc REQUIRED)
|
||||
find_program(GRPC_PLUGIN NAMES grpc_cpp_plugin REQUIRED)
|
||||
set(GRPC_LIB_DIR "${GRPC_ROOT}/lib")
|
||||
|
||||
set(ENV{LD_LIBRARY_PATH} ${GRPC_LIB_DIR}:${GRPC_LIB_DIR}64:$ENV{LD_LIBRARY_PATH})
|
||||
message("LD_LIBRARY_PATH = $ENV{LD_LIBRARY_PATH}")
|
||||
foreach(file ${PROTOB_DEF_SRC_FILES})
|
||||
execute_process(COMMAND
|
||||
${PROTOB_CMD} --proto_path=${PROTOB_SRC_DIR}
|
||||
--cpp_out=${PROTOB_OUT_DIR} ${file}
|
||||
execute_process(
|
||||
COMMAND ${PROTOB_CMD} --proto_path=${PROTOB_SRC_DIR} --cpp_out=${PROTOB_OUT_DIR} ${file}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
RESULT_VARIABLE PROTOB_RESULT
|
||||
OUTPUT_VARIABLE PROTOB_OUT_VAR
|
||||
COMMAND_ERROR_IS_FATAL ANY)
|
||||
OUTPUT_VARIABLE PROTOB_OUT_VAR COMMAND_ERROR_IS_FATAL ANY)
|
||||
message("protoc command returned: ${PROTOB_RESULT}")
|
||||
|
||||
message("GRPC_PLUGIN=${GRPC_PLUGIN})")
|
||||
@@ -255,10 +293,9 @@ if(BUILD_STANDALONE)
|
||||
message(" --grpc_out=${PROTOB_OUT_DIR}")
|
||||
message("....--plugin=protoc-gen-grpc=\"${GRPC_PLUGIN}\" ${file}")
|
||||
|
||||
execute_process(COMMAND
|
||||
${PROTOB_CMD} --proto_path=${PROTOB_SRC_DIR}
|
||||
--grpc_out=${PROTOB_OUT_DIR}
|
||||
--plugin=protoc-gen-grpc=${GRPC_PLUGIN} ${file}
|
||||
execute_process(
|
||||
COMMAND ${PROTOB_CMD} --proto_path=${PROTOB_SRC_DIR} --grpc_out=${PROTOB_OUT_DIR}
|
||||
--plugin=protoc-gen-grpc=${GRPC_PLUGIN} ${file}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
RESULT_VARIABLE PROTOB_RESULT
|
||||
OUTPUT_VARIABLE PROTOB_OUT_VAR)
|
||||
@@ -275,12 +312,8 @@ set(TESTS_COMPONENT "tests")
|
||||
# Standalone only folders
|
||||
if(BUILD_STANDALONE)
|
||||
# these packages are later used in server and client targets
|
||||
find_package(protobuf
|
||||
HINTS ${GRPC_ROOT}
|
||||
CONFIG REQUIRED)
|
||||
find_package(gRPC ${GRPC_DESIRED_VERSION}
|
||||
HINTS ${GRPC_ROOT}
|
||||
CONFIG REQUIRED)
|
||||
find_package(protobuf HINTS ${GRPC_ROOT} CONFIG REQUIRED)
|
||||
find_package(gRPC ${GRPC_DESIRED_VERSION} HINTS ${GRPC_ROOT} CONFIG REQUIRED)
|
||||
|
||||
# Don't print grpc install because it floods the terminal
|
||||
set(OLD_CMAKE_INSTALL_MESSAGE ${CMAKE_INSTALL_MESSAGE})
|
||||
@@ -290,28 +323,29 @@ if(BUILD_STANDALONE)
|
||||
# GRPC_ROOT_DEFAULT (/usr), which is incorrect behavior.
|
||||
# This is needed because it's very difficult to track all gRPC dependencies
|
||||
if(NOT GRPC_ROOT STREQUAL GRPC_ROOT_DEFAULT)
|
||||
install(DIRECTORY ${GRPC_ROOT}/lib
|
||||
USE_SOURCE_PERMISSIONS
|
||||
install(
|
||||
DIRECTORY ${GRPC_ROOT}/lib USE_SOURCE_PERMISSIONS
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/${RDC}/grpc
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
# In SLES, The libprotobuf is created under lib64 folder, install it as well
|
||||
if(EXISTS ${GRPC_ROOT}/lib64)
|
||||
install(DIRECTORY ${GRPC_ROOT}/lib64/
|
||||
USE_SOURCE_PERMISSIONS
|
||||
install(
|
||||
DIRECTORY ${GRPC_ROOT}/lib64/ USE_SOURCE_PERMISSIONS
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/${RDC}/grpc/lib
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
endif()
|
||||
# Also include dev setup for people do not want to build grpc
|
||||
file(GLOB install_bin_files "${GRPC_ROOT}/bin/*")
|
||||
foreach(ITEM ${install_bin_files})
|
||||
LIST( APPEND bin_files "${ITEM}" )
|
||||
list(APPEND bin_files "${ITEM}")
|
||||
endforeach()
|
||||
INSTALL( FILES ${bin_files}
|
||||
install(
|
||||
FILES ${bin_files}
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/${RDC}/grpc/bin
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
|
||||
install(DIRECTORY ${GRPC_ROOT}/include
|
||||
USE_SOURCE_PERMISSIONS
|
||||
install(
|
||||
DIRECTORY ${GRPC_ROOT}/include USE_SOURCE_PERMISSIONS
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/${RDC}/grpc
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
endif()
|
||||
@@ -343,46 +377,54 @@ set(CONF_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
# Create the rdc-config.cmake and rdc-config-version files
|
||||
configure_file(cmake_modules/rdc-config-version.cmake.in
|
||||
"${PROJECT_BINARY_DIR}/rdc-config-version.cmake" @ONLY)
|
||||
"${PROJECT_BINARY_DIR}/rdc-config-version.cmake" @ONLY)
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
set(CONFIG_PACKAGE_INSTALL_DIR ${CONF_LIB_DIR}/cmake/${RDC})
|
||||
configure_package_config_file(
|
||||
cmake_modules/rdc-config.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/rdc-config.cmake
|
||||
INSTALL_DESTINATION ${CONFIG_PACKAGE_INSTALL_DIR}
|
||||
)
|
||||
|
||||
cmake_modules/rdc-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/rdc-config.cmake
|
||||
INSTALL_DESTINATION ${CONFIG_PACKAGE_INSTALL_DIR})
|
||||
|
||||
# Install the rdc-config.cmake and rdc-config-version.cmake
|
||||
install(FILES
|
||||
"${PROJECT_BINARY_DIR}/rdc-config.cmake"
|
||||
"${PROJECT_BINARY_DIR}/rdc-config-version.cmake"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${RDC}" COMPONENT dev)
|
||||
install(
|
||||
FILES "${PROJECT_BINARY_DIR}/rdc-config.cmake" "${PROJECT_BINARY_DIR}/rdc-config-version.cmake"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${RDC}"
|
||||
COMPONENT dev)
|
||||
|
||||
# Install the export set for use with the install-tree
|
||||
install(EXPORT rdcTargets DESTINATION
|
||||
"${CMAKE_INSTALL_LIBDIR}/cmake/${RDC}" COMPONENT dev)
|
||||
|
||||
install(
|
||||
EXPORT rdcTargets
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${RDC}"
|
||||
COMPONENT dev)
|
||||
|
||||
# License file
|
||||
install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME LICENSE.txt COMPONENT dev)
|
||||
install(
|
||||
FILES ${CPACK_RESOURCE_FILE_LICENSE}
|
||||
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
||||
RENAME LICENSE.txt
|
||||
COMPONENT dev)
|
||||
|
||||
# Python binding
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/python_binding
|
||||
install(
|
||||
DIRECTORY ${PROJECT_SOURCE_DIR}/python_binding
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${RDC}
|
||||
COMPONENT ${CLIENT_COMPONENT})
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/authentication
|
||||
install(
|
||||
DIRECTORY ${PROJECT_SOURCE_DIR}/authentication
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${RDC}
|
||||
COMPONENT ${CLIENT_COMPONENT})
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/example
|
||||
install(
|
||||
DIRECTORY ${PROJECT_SOURCE_DIR}/example
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${RDC}
|
||||
COMPONENT dev)
|
||||
|
||||
#Identify between SLES and Centos for setting symlink for rdc.service
|
||||
#SLES need serice file in /usr/lib/systemd/system/rdc.service
|
||||
#CENTOS/RHEL Require file in /lib/systemd/system/rdc.service
|
||||
file(STRINGS /etc/os-release LINUX_DISTRO LIMIT_COUNT 1 REGEX "NAME=")
|
||||
file(
|
||||
STRINGS /etc/os-release LINUX_DISTRO
|
||||
LIMIT_COUNT 1
|
||||
REGEX "NAME=")
|
||||
message("Using Linux Distro: ${LINUX_DISTRO}")
|
||||
if(LINUX_DISTRO MATCHES "SLES")
|
||||
set(DISTRO_ROOT "/usr/lib/systemd/system")
|
||||
@@ -391,22 +433,24 @@ else()
|
||||
endif()
|
||||
|
||||
# 755 permissions
|
||||
set(INST_SCR_PERM OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
configure_file(
|
||||
"${PROJECT_SOURCE_DIR}/src/DEBIAN_postinst.in"
|
||||
"${PROJECT_SOURCE_DIR}/DEBIAN/postinst" FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
configure_file(
|
||||
"${PROJECT_SOURCE_DIR}/src/DEBIAN_prerm.in"
|
||||
"${PROJECT_SOURCE_DIR}/DEBIAN/prerm" FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
configure_file(
|
||||
"${PROJECT_SOURCE_DIR}/src/RPM_rpm_post.in"
|
||||
"${PROJECT_SOURCE_DIR}/RPM/rpm_post" FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
configure_file(
|
||||
"${PROJECT_SOURCE_DIR}/src/RPM_preun.in"
|
||||
"${PROJECT_SOURCE_DIR}/RPM/rpm_preun" FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
configure_file(
|
||||
"${PROJECT_SOURCE_DIR}/src/RPM_postun.in"
|
||||
"${PROJECT_SOURCE_DIR}/RPM/rpm_postun" FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
set(INST_SCR_PERM
|
||||
OWNER_READ
|
||||
OWNER_WRITE
|
||||
OWNER_EXECUTE
|
||||
GROUP_READ
|
||||
GROUP_EXECUTE
|
||||
WORLD_READ
|
||||
WORLD_EXECUTE)
|
||||
configure_file("${PROJECT_SOURCE_DIR}/src/DEBIAN_postinst.in"
|
||||
"${PROJECT_SOURCE_DIR}/DEBIAN/postinst" FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
configure_file("${PROJECT_SOURCE_DIR}/src/DEBIAN_prerm.in" "${PROJECT_SOURCE_DIR}/DEBIAN/prerm"
|
||||
FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
configure_file("${PROJECT_SOURCE_DIR}/src/RPM_rpm_post.in" "${PROJECT_SOURCE_DIR}/RPM/rpm_post"
|
||||
FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
configure_file("${PROJECT_SOURCE_DIR}/src/RPM_preun.in" "${PROJECT_SOURCE_DIR}/RPM/rpm_preun"
|
||||
FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
configure_file("${PROJECT_SOURCE_DIR}/src/RPM_postun.in" "${PROJECT_SOURCE_DIR}/RPM/rpm_postun"
|
||||
FILE_PERMISSIONS ${INST_SCR_PERM} @ONLY)
|
||||
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}")
|
||||
@@ -426,9 +470,8 @@ set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
|
||||
# Only add extras to RUNTIME package (not tests)
|
||||
# It makes no sense to modify RDCD service when installing tests
|
||||
# https://cmake.org/cmake/help/latest/cpack_gen/deb.html#variable:CPACK_DEBIAN_%3CCOMPONENT%3E_PACKAGE_CONTROL_EXTRA
|
||||
set(CPACK_DEBIAN_RUNTIME_PACKAGE_CONTROL_EXTRA
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm")
|
||||
set(CPACK_DEBIAN_RUNTIME_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm")
|
||||
|
||||
option(ROCM_DEP_ROCMCORE "Add debian dependency on rocm-core" OFF)
|
||||
mark_as_advanced(ROCM_DEP_ROCMCORE)
|
||||
@@ -449,7 +492,8 @@ message("Using CPACK_RPM_PACKAGE_RELEASE ${CPACK_RPM_PACKAGE_RELEASE}")
|
||||
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||
|
||||
## 'dist' breaks manual builds on debian systems due to empty Provides
|
||||
execute_process(COMMAND rpm --eval %{?dist}
|
||||
execute_process(
|
||||
COMMAND rpm --eval %{?dist}
|
||||
RESULT_VARIABLE PROC_RESULT
|
||||
OUTPUT_VARIABLE EVAL_RESULT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
@@ -462,7 +506,10 @@ set(CPACK_RPM_PACKAGE_AUTOPROV 0)
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES "amd-smi-lib")
|
||||
# rdc-tests need rdc
|
||||
set(CPACK_RPM_TESTS_PACKAGE_REQUIRES "${CPACK_PACKAGE_NAME}")
|
||||
list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/lib"
|
||||
list(
|
||||
APPEND
|
||||
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
|
||||
"/lib"
|
||||
"/usr/sbin"
|
||||
"/lib/systemd"
|
||||
"/lib/systemd/system"
|
||||
@@ -472,12 +519,9 @@ list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/lib"
|
||||
# Only add extras to RUNTIME package (not tests)
|
||||
# It makes no sense to modify RDCD service when installing tests
|
||||
# https://cmake.org/cmake/help/latest/cpack_gen/rpm.html#variable:CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
|
||||
set(CPACK_RPM_RUNTIME_POST_INSTALL_SCRIPT_FILE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post")
|
||||
set(CPACK_RPM_RUNTIME_PRE_UNINSTALL_SCRIPT_FILE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_preun")
|
||||
set(CPACK_RPM_RUNTIME_POST_UNINSTALL_SCRIPT_FILE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun")
|
||||
set(CPACK_RPM_RUNTIME_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post")
|
||||
set(CPACK_RPM_RUNTIME_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_preun")
|
||||
set(CPACK_RPM_RUNTIME_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun")
|
||||
|
||||
# Treat runtime group as package base.
|
||||
# Without it - the base package would be named 'rdc-runtime'
|
||||
|
||||
@@ -10,9 +10,7 @@ list(APPEND CMAKE_PREFIX_PATH ${ROCM_DIR})
|
||||
|
||||
find_library(
|
||||
${NAME}_LIBRARY
|
||||
NAMES ${NAME} ${NAME}64
|
||||
REQUIRED
|
||||
REGISTRY_VIEW BOTH
|
||||
NAMES ${NAME} ${NAME}64 REQUIRED REGISTRY_VIEW BOTH
|
||||
PATH_SUFFIXES lib)
|
||||
|
||||
if(NOT DEFINED (${NAME}_INCLUDE_DIR))
|
||||
@@ -24,16 +22,16 @@ if(NOT DEFINED (${NAME}_INCLUDE_DIR))
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(${NAME}
|
||||
find_package_handle_standard_args(
|
||||
${NAME}
|
||||
FOUND_VAR ${NAME}_FOUND
|
||||
REQUIRED_VARS
|
||||
${NAME}_LIBRARY
|
||||
${NAME}_INCLUDE_DIR)
|
||||
REQUIRED_VARS ${NAME}_LIBRARY ${NAME}_INCLUDE_DIR)
|
||||
|
||||
if(${NAME}_FOUND AND NOT TARGET ${NAME}::${NAME})
|
||||
add_library(${NAME}::${NAME} UNKNOWN IMPORTED)
|
||||
set_target_properties(${NAME}::${NAME} PROPERTIES
|
||||
IMPORTED_LOCATION "${${NAME}_LIBRARY}"
|
||||
INTERFACE_COMPILE_OPTIONS "${PC_${NAME}_CFLAGS_OTHER}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${${NAME}_INCLUDE_DIR}")
|
||||
set_target_properties(
|
||||
${NAME}::${NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${${NAME}_LIBRARY}"
|
||||
INTERFACE_COMPILE_OPTIONS "${PC_${NAME}_CFLAGS_OTHER}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${${NAME}_INCLUDE_DIR}")
|
||||
endif()
|
||||
|
||||
+20
-15
@@ -11,8 +11,7 @@ list(APPEND CMAKE_PREFIX_PATH ${ROCM_DIR})
|
||||
find_library(
|
||||
${NAME}_LIBRARY
|
||||
NAMES ${NAME} ${NAME}64 ${NAME}lib # RVS is special and is named librvslib.so
|
||||
REQUIRED
|
||||
REGISTRY_VIEW BOTH
|
||||
REQUIRED REGISTRY_VIEW BOTH
|
||||
PATH_SUFFIXES lib)
|
||||
|
||||
if(NOT DEFINED (${NAME}_INCLUDE_DIR))
|
||||
@@ -24,21 +23,19 @@ if(NOT DEFINED (${NAME}_INCLUDE_DIR))
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(${NAME}
|
||||
find_package_handle_standard_args(
|
||||
${NAME}
|
||||
FOUND_VAR ${NAME}_FOUND
|
||||
REQUIRED_VARS
|
||||
${NAME}_LIBRARY
|
||||
${NAME}_INCLUDE_DIR)
|
||||
REQUIRED_VARS ${NAME}_LIBRARY ${NAME}_INCLUDE_DIR)
|
||||
|
||||
if(${NAME}_FOUND AND NOT TARGET ${NAME}::${NAME})
|
||||
add_library(${NAME}::${NAME} UNKNOWN IMPORTED)
|
||||
set_target_properties(${NAME}::${NAME} PROPERTIES
|
||||
IMPORTED_LOCATION "${${NAME}_LIBRARY}"
|
||||
INTERFACE_COMPILE_OPTIONS "${PC_${NAME}_CFLAGS_OTHER}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${${NAME}_INCLUDE_DIR}")
|
||||
find_library(rocm-core
|
||||
NAMES rocm-core
|
||||
REQUIRED)
|
||||
set_target_properties(
|
||||
${NAME}::${NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${${NAME}_LIBRARY}"
|
||||
INTERFACE_COMPILE_OPTIONS "${PC_${NAME}_CFLAGS_OTHER}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${${NAME}_INCLUDE_DIR}")
|
||||
find_library(rocm-core NAMES rocm-core REQUIRED)
|
||||
find_package(yaml-cpp REQUIRED)
|
||||
find_package(rocblas REQUIRED)
|
||||
find_package(hipblaslt REQUIRED)
|
||||
@@ -46,6 +43,14 @@ if(${NAME}_FOUND AND NOT TARGET ${NAME}::${NAME})
|
||||
find_package(hip REQUIRED)
|
||||
find_package(hsa-runtime64 REQUIRED)
|
||||
find_package(amd_smi REQUIRED)
|
||||
target_link_libraries(${NAME}::${NAME} INTERFACE
|
||||
${rocm-core} yaml-cpp roc::rocblas roc::hipblaslt hsakmt::hsakmt hip::amdhip64 hsa-runtime64::hsa-runtime64 amd_smi)
|
||||
target_link_libraries(
|
||||
${NAME}::${NAME}
|
||||
INTERFACE ${rocm-core}
|
||||
yaml-cpp
|
||||
roc::rocblas
|
||||
roc::hipblaslt
|
||||
hsakmt::hsakmt
|
||||
hip::amdhip64
|
||||
hsa-runtime64::hsa-runtime64
|
||||
amd_smi)
|
||||
endif()
|
||||
|
||||
@@ -2,11 +2,10 @@ set(PACKAGE_VERSION "@RDC_VERSION@")
|
||||
|
||||
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
||||
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
else()
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
|
||||
set(PACKAGE_VERSION_EXACT TRUE)
|
||||
endif()
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
if("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
|
||||
set(PACKAGE_VERSION_EXACT TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ get_filename_component(RDC_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
set(ROCM_RDC_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
set(ROCM_RDC_LIB_DIR "${PACKAGE_PREFIX_DIR}/${CMAKE_INSTALL_LIBDIR}")
|
||||
|
||||
|
||||
# Our library dependencies (contains definitions for IMPORTED targets)
|
||||
if(NOT TARGET rdc_libs AND NOT rdc_BINARY_DIR)
|
||||
include("${RDC_CMAKE_DIR}/rdcTargets.cmake")
|
||||
@@ -18,4 +17,3 @@ endif()
|
||||
|
||||
# These are IMPORTED targets created by rdcTargets.cmake
|
||||
set(ROCM_RDC_LIBRARIES "@CONF_LIBS@")
|
||||
|
||||
|
||||
+77
-53
@@ -43,84 +43,108 @@
|
||||
## Parses the VERSION_STRING variable and places
|
||||
## the first, second and third number values in
|
||||
## the major, minor and patch variables.
|
||||
function( parse_version VERSION_STRING )
|
||||
function(parse_version VERSION_STRING)
|
||||
|
||||
string ( FIND ${VERSION_STRING} "-" STRING_INDEX )
|
||||
string(FIND ${VERSION_STRING} "-" STRING_INDEX)
|
||||
|
||||
if ( ${STRING_INDEX} GREATER -1 )
|
||||
math ( EXPR STRING_INDEX "${STRING_INDEX} + 1" )
|
||||
string ( SUBSTRING ${VERSION_STRING} ${STRING_INDEX} -1 VERSION_BUILD )
|
||||
endif ()
|
||||
if(${STRING_INDEX} GREATER -1)
|
||||
math(EXPR STRING_INDEX "${STRING_INDEX} + 1")
|
||||
string(SUBSTRING ${VERSION_STRING} ${STRING_INDEX} -1 VERSION_BUILD)
|
||||
endif()
|
||||
|
||||
string ( REGEX MATCHALL "[0123456789]+" VERSIONS ${VERSION_STRING} )
|
||||
list ( LENGTH VERSIONS VERSION_COUNT )
|
||||
string(REGEX MATCHALL "[0123456789]+" VERSIONS ${VERSION_STRING})
|
||||
list(LENGTH VERSIONS VERSION_COUNT)
|
||||
|
||||
if ( ${VERSION_COUNT} GREATER 0)
|
||||
list ( GET VERSIONS 0 MAJOR )
|
||||
set ( VERSION_MAJOR ${MAJOR} PARENT_SCOPE )
|
||||
set ( TEMP_VERSION_STRING "${MAJOR}" )
|
||||
endif ()
|
||||
if(${VERSION_COUNT} GREATER 0)
|
||||
list(GET VERSIONS 0 MAJOR)
|
||||
set(VERSION_MAJOR
|
||||
${MAJOR}
|
||||
PARENT_SCOPE)
|
||||
set(TEMP_VERSION_STRING "${MAJOR}")
|
||||
endif()
|
||||
|
||||
if ( ${VERSION_COUNT} GREATER 1 )
|
||||
list ( GET VERSIONS 1 MINOR )
|
||||
set ( VERSION_MINOR ${MINOR} PARENT_SCOPE )
|
||||
set ( TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${MINOR}" )
|
||||
endif ()
|
||||
if(${VERSION_COUNT} GREATER 1)
|
||||
list(GET VERSIONS 1 MINOR)
|
||||
set(VERSION_MINOR
|
||||
${MINOR}
|
||||
PARENT_SCOPE)
|
||||
set(TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${MINOR}")
|
||||
endif()
|
||||
|
||||
if ( ${VERSION_COUNT} GREATER 2 )
|
||||
list ( GET VERSIONS 2 PATCH )
|
||||
set ( VERSION_PATCH ${PATCH} PARENT_SCOPE )
|
||||
set ( TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${PATCH}" )
|
||||
endif ()
|
||||
if(${VERSION_COUNT} GREATER 2)
|
||||
list(GET VERSIONS 2 PATCH)
|
||||
set(VERSION_PATCH
|
||||
${PATCH}
|
||||
PARENT_SCOPE)
|
||||
set(TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${PATCH}")
|
||||
endif()
|
||||
|
||||
set ( VERSION_STRING "${TEMP_VERSION_STRING}" PARENT_SCOPE )
|
||||
set(VERSION_STRING
|
||||
"${TEMP_VERSION_STRING}"
|
||||
PARENT_SCOPE)
|
||||
|
||||
endfunction ()
|
||||
endfunction()
|
||||
|
||||
## Gets the current version of the repository
|
||||
## using versioning tags and git describe.
|
||||
## Passes back a packaging version string
|
||||
## and a library version string.
|
||||
function(get_version_from_tag DEFAULT_VERSION_STRING VERSION_PREFIX GIT)
|
||||
parse_version ( ${DEFAULT_VERSION_STRING} )
|
||||
parse_version(${DEFAULT_VERSION_STRING})
|
||||
|
||||
if ( GIT )
|
||||
execute_process ( COMMAND git describe --tags --dirty --long --match ${VERSION_PREFIX}-[0-9.]*
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_TAG_STRING
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE RESULT )
|
||||
if ( ${RESULT} EQUAL 0 )
|
||||
parse_version ( ${GIT_TAG_STRING} )
|
||||
endif ()
|
||||
if(GIT)
|
||||
execute_process(
|
||||
COMMAND git describe --tags --dirty --long --match ${VERSION_PREFIX}-[0-9.]*
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_TAG_STRING
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE RESULT)
|
||||
if(${RESULT} EQUAL 0)
|
||||
parse_version(${GIT_TAG_STRING})
|
||||
endif()
|
||||
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
set( VERSION_STRING "${VERSION_STRING}" PARENT_SCOPE )
|
||||
set( VERSION_MAJOR "${VERSION_MAJOR}" PARENT_SCOPE )
|
||||
set( VERSION_MINOR "${VERSION_MINOR}" PARENT_SCOPE )
|
||||
set( VERSION_PATCH "${VERSION_PATCH}" PARENT_SCOPE )
|
||||
set(VERSION_STRING
|
||||
"${VERSION_STRING}"
|
||||
PARENT_SCOPE)
|
||||
set(VERSION_MAJOR
|
||||
"${VERSION_MAJOR}"
|
||||
PARENT_SCOPE)
|
||||
set(VERSION_MINOR
|
||||
"${VERSION_MINOR}"
|
||||
PARENT_SCOPE)
|
||||
set(VERSION_PATCH
|
||||
"${VERSION_PATCH}"
|
||||
PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(num_change_since_prev_pkg VERSION_PREFIX)
|
||||
find_program(get_commits NAMES version_util.sh
|
||||
PATHS ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
|
||||
if (get_commits)
|
||||
execute_process( COMMAND ${get_commits} -c ${VERSION_PREFIX}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE NUM_COMMITS
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE RESULT )
|
||||
find_program(
|
||||
get_commits
|
||||
NAMES version_util.sh
|
||||
PATHS ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
|
||||
if(get_commits)
|
||||
execute_process(
|
||||
COMMAND ${get_commits} -c ${VERSION_PREFIX}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE NUM_COMMITS
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
RESULT_VARIABLE RESULT)
|
||||
|
||||
set(NUM_COMMITS "${NUM_COMMITS}" PARENT_SCOPE )
|
||||
set(NUM_COMMITS
|
||||
"${NUM_COMMITS}"
|
||||
PARENT_SCOPE)
|
||||
|
||||
if ( ${RESULT} EQUAL 0 )
|
||||
message("${NUM_COMMITS} were found since previous release")
|
||||
if(${RESULT} EQUAL 0)
|
||||
message("${NUM_COMMITS} were found since previous release")
|
||||
else()
|
||||
message("Unable to determine number of commits since previous release")
|
||||
message("Unable to determine number of commits since previous release")
|
||||
endif()
|
||||
else()
|
||||
message("WARNING: Didn't find version_util.sh")
|
||||
set(NUM_COMMITS "unknown" PARENT_SCOPE )
|
||||
set(NUM_COMMITS
|
||||
"unknown"
|
||||
PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
+24
-19
@@ -33,13 +33,23 @@ option(CMAKE_EXPORT_COMPILE_COMMANDS "Export compile commands for linters and au
|
||||
|
||||
# Set compile flags
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" CACHE STRING "Flags for Debug builds")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG
|
||||
"${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG"
|
||||
CACHE STRING "Flags for Debug builds")
|
||||
# note: no '-s' here unlike other CMakeLists.txt
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG" CACHE STRING "Flags for Release builds")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" CACHE STRING "Flags for RelWithDebInfo builds")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" CACHE STRING "Flags for MinSizeRel builds")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE
|
||||
"${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG"
|
||||
CACHE STRING "Flags for Release builds")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG"
|
||||
CACHE STRING "Flags for RelWithDebInfo builds")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
"${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG"
|
||||
CACHE STRING "Flags for MinSizeRel builds")
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17 CACHE STRING "The C++ standard to use")
|
||||
set(CMAKE_CXX_STANDARD
|
||||
17
|
||||
CACHE STRING "The C++ standard to use")
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
@@ -55,25 +65,21 @@ include(CMakePrintHelpers)
|
||||
|
||||
# required variables
|
||||
if(DEFINED ENV{ROCM_PATH})
|
||||
set(ROCM_DIR "$ENV{ROCM_PATH}" CACHE STRING "ROCm directory.")
|
||||
set(ROCM_DIR
|
||||
"$ENV{ROCM_PATH}"
|
||||
CACHE STRING "ROCm directory.")
|
||||
else()
|
||||
set(ROCM_DIR "/opt/rocm" CACHE STRING "ROCm directory.")
|
||||
set(ROCM_DIR
|
||||
"/opt/rocm"
|
||||
CACHE STRING "ROCm directory.")
|
||||
endif()
|
||||
|
||||
# add package search paths
|
||||
set(CMAKE_PREFIX_PATH
|
||||
${CMAKE_PREFIX_PATH}
|
||||
${ROCM_DIR}
|
||||
)
|
||||
set(CMAKE_LIBRARY_PATH
|
||||
${CMAKE_LIBRARY_PATH}
|
||||
${ROCM_DIR}/lib
|
||||
${ROCM_DIR}/lib64
|
||||
)
|
||||
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${ROCM_DIR})
|
||||
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${ROCM_DIR}/lib ${ROCM_DIR}/lib64)
|
||||
|
||||
# RDC provides librdc_bootstrap
|
||||
find_package(rdc
|
||||
CONFIG REQUIRED)
|
||||
find_package(rdc CONFIG REQUIRED)
|
||||
|
||||
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
message(" Cmake Example ")
|
||||
@@ -111,7 +117,6 @@ set(ROCPROFILER_EXAMPLE_EXE "rocprofiler")
|
||||
add_executable(${ROCPROFILER_EXAMPLE_EXE} "${ROCPROFILER_EXAMPLE_SRC_LIST}")
|
||||
target_link_libraries(${ROCPROFILER_EXAMPLE_EXE} pthread dl rdc_bootstrap)
|
||||
|
||||
|
||||
set(POLICY_EXAMPLE_SRC_LIST "policy_example.cc")
|
||||
cmake_print_variables(POLICY_EXAMPLE_SRC_LIST)
|
||||
set(POLICY_EXAMPLE_EXE "policy")
|
||||
|
||||
+19
-19
@@ -37,7 +37,6 @@ message("---------SMI Lib Dir: " ${AMD_SMI_LIB_DIR})
|
||||
message("---------SMI Inc Dir: " ${AMD_SMI_INCLUDE_DIR})
|
||||
message("")
|
||||
|
||||
|
||||
set(COMMON_DIR "${PROJECT_SOURCE_DIR}/common")
|
||||
set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
set(INC_DIR "${PROJECT_SOURCE_DIR}/include/rdc_lib")
|
||||
@@ -89,37 +88,38 @@ add_subdirectory(rdc_modules/rdc_rvs)
|
||||
|
||||
# Create cmake target
|
||||
# Add all targets to the build-tree export set
|
||||
export(TARGETS ${BOOTSTRAP_LIB} ${RDC_LIB}
|
||||
FILE "${PROJECT_BINARY_DIR}/rdc_libs.cmake")
|
||||
export(TARGETS ${BOOTSTRAP_LIB} ${RDC_LIB} FILE "${PROJECT_BINARY_DIR}/rdc_libs.cmake")
|
||||
|
||||
## Add the install directives for the runtime library.
|
||||
install(TARGETS ${BOOTSTRAP_LIB} ${RDC_LIB}
|
||||
install(
|
||||
TARGETS ${BOOTSTRAP_LIB} ${RDC_LIB}
|
||||
EXPORT rdcTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT ${CLIENT_COMPONENT})
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CLIENT_COMPONENT})
|
||||
|
||||
if(BUILD_STANDALONE)
|
||||
# add librdc_client.so
|
||||
add_subdirectory(rdc_client)
|
||||
install(TARGETS ${RDCCLIENT_LIB}
|
||||
install(
|
||||
TARGETS ${RDCCLIENT_LIB}
|
||||
EXPORT rdcTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT ${CLIENT_COMPONENT})
|
||||
export(TARGETS ${RDCCLIENT_LIB}
|
||||
APPEND FILE "${PROJECT_BINARY_DIR}/rdc_libs.cmake")
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${CLIENT_COMPONENT})
|
||||
export(
|
||||
TARGETS ${RDCCLIENT_LIB}
|
||||
APPEND
|
||||
FILE "${PROJECT_BINARY_DIR}/rdc_libs.cmake")
|
||||
endif()
|
||||
|
||||
# Add module directives if those exist
|
||||
if(RDC_LIB_MODULES)
|
||||
install(TARGETS ${RDC_LIB_MODULES}
|
||||
install(
|
||||
TARGETS ${RDC_LIB_MODULES}
|
||||
EXPORT rdcTargets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${RDC}
|
||||
COMPONENT ${CLIENT_COMPONENT})
|
||||
set_target_properties(${RDC_LIB_MODULES}
|
||||
PROPERTIES INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..")
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${RDC} COMPONENT ${CLIENT_COMPONENT})
|
||||
set_target_properties(${RDC_LIB_MODULES} PROPERTIES INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..")
|
||||
endif()
|
||||
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/include/rdc/rdc.h
|
||||
install(
|
||||
FILES ${PROJECT_SOURCE_DIR}/include/rdc/rdc.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${RDC}
|
||||
COMPONENT ${CLIENT_COMPONENT})
|
||||
|
||||
@@ -127,14 +127,14 @@ install(FILES ${PROJECT_SOURCE_DIR}/include/rdc/rdc.h
|
||||
set(OLD_CMAKE_INSTALL_MESSAGE ${CMAKE_INSTALL_MESSAGE})
|
||||
set(CMAKE_INSTALL_MESSAGE NEVER)
|
||||
# Install the kernel files
|
||||
install(DIRECTORY ${SRC_DIR}/rdc_modules/kernels/hsaco
|
||||
install(
|
||||
DIRECTORY ${SRC_DIR}/rdc_modules/kernels/hsaco
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/${RDC}
|
||||
COMPONENT ${CLIENT_COMPONENT})
|
||||
# Restore printing verbosity
|
||||
set(CMAKE_INSTALL_MESSAGE ${OLD_CMAKE_INSTALL_MESSAGE})
|
||||
unset(OLD_CMAKE_INSTALL_MESSAGE)
|
||||
|
||||
|
||||
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
message(" Finished Cmake RDC Lib ")
|
||||
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
|
||||
@@ -5,15 +5,14 @@ message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
set(INC_DIR "${RDC_LIB_INC_DIR}")
|
||||
# need source dir for rocr
|
||||
set(BOOTSTRAP_LIB_SRC_DIR "${SRC_DIR}" PARENT_SCOPE)
|
||||
set(BOOTSTRAP_LIB_SRC_DIR
|
||||
"${SRC_DIR}"
|
||||
PARENT_SCOPE)
|
||||
|
||||
set(BOOTSTRAP_LIB_COMPONENT "lib${BOOTSTRAP_LIB}")
|
||||
set(BOOTSTRAP_LIB_SRC_LIST
|
||||
"${COMMON_DIR}/rdc_fields_supported.cc"
|
||||
"${SRC_DIR}/RdcBootStrap.cc"
|
||||
"${SRC_DIR}/RdcLibraryLoader.cc"
|
||||
"${SRC_DIR}/RdcLogger.cc"
|
||||
"${SRC_DIR}/RdcEntityCodec.cc")
|
||||
"${COMMON_DIR}/rdc_fields_supported.cc" "${SRC_DIR}/RdcBootStrap.cc"
|
||||
"${SRC_DIR}/RdcLibraryLoader.cc" "${SRC_DIR}/RdcLogger.cc" "${SRC_DIR}/RdcEntityCodec.cc")
|
||||
set(BOOTSTRAP_LIB_INC_LIST
|
||||
"${COMMON_DIR}/rdc_fields_supported.h"
|
||||
"${INC_DIR}/RdcHandler.h"
|
||||
@@ -26,29 +25,22 @@ message("BOOTSTRAP_LIB_INC_LIST=${BOOTSTRAP_LIB_INC_LIST}")
|
||||
|
||||
add_library(${BOOTSTRAP_LIB} SHARED ${BOOTSTRAP_LIB_SRC_LIST} ${BOOTSTRAP_LIB_INC_LIST})
|
||||
target_link_libraries(${BOOTSTRAP_LIB} pthread dl)
|
||||
target_include_directories(${BOOTSTRAP_LIB} PRIVATE
|
||||
"${PROJECT_SOURCE_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}/include"
|
||||
"${COMMON_DIR}"
|
||||
"${AMD_SMI_INCLUDE_DIR}"
|
||||
"${ROCM_DIR}/include")
|
||||
target_include_directories(
|
||||
${BOOTSTRAP_LIB} PRIVATE "${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/include"
|
||||
"${COMMON_DIR}" "${AMD_SMI_INCLUDE_DIR}" "${ROCM_DIR}/include")
|
||||
|
||||
target_include_directories(${BOOTSTRAP_LIB}
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
target_include_directories(${BOOTSTRAP_LIB} PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
|
||||
# Set the VERSION and SOVERSION values
|
||||
set_property(TARGET ${BOOTSTRAP_LIB} PROPERTY
|
||||
SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${BOOTSTRAP_LIB} PROPERTY
|
||||
VERSION "${SO_VERSION_STRING}")
|
||||
set_target_properties(${BOOTSTRAP_LIB}
|
||||
PROPERTIES INSTALL_RPATH "\$ORIGIN:\$ORIGIN/rdc")
|
||||
set_property(TARGET ${BOOTSTRAP_LIB} PROPERTY SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${BOOTSTRAP_LIB} PROPERTY VERSION "${SO_VERSION_STRING}")
|
||||
set_target_properties(${BOOTSTRAP_LIB} PROPERTIES INSTALL_RPATH "\$ORIGIN:\$ORIGIN/rdc")
|
||||
|
||||
# If the library is a release, strip the target library
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
add_custom_command(
|
||||
TARGET ${BOOTSTRAP_LIB}
|
||||
POST_BUILD COMMAND ${CMAKE_STRIP} ${BOOTSTRAP_LIB_COMPONENT}.so)
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_STRIP} ${BOOTSTRAP_LIB_COMPONENT}.so)
|
||||
endif()
|
||||
|
||||
+13
-14
@@ -6,7 +6,8 @@ set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
set(INC_DIR "${RDC_LIB_INC_DIR}")
|
||||
|
||||
set(RDC_LIB_COMPONENT "lib${RDC_LIB}")
|
||||
set(RDC_LIB_SRC_LIST ${RDC_LIB_SRC_LIST}
|
||||
set(RDC_LIB_SRC_LIST
|
||||
${RDC_LIB_SRC_LIST}
|
||||
"${COMMON_DIR}/rdc_capabilities.cc"
|
||||
"${COMMON_DIR}/rdc_fields_supported.cc"
|
||||
"${SRC_DIR}/RdcCacheManagerImpl.cc"
|
||||
@@ -32,7 +33,8 @@ set(RDC_LIB_SRC_LIST ${RDC_LIB_SRC_LIST}
|
||||
"${SRC_DIR}/SmiUtils.cc")
|
||||
|
||||
# TODO: remove all headers? Will just dir be ok after install?
|
||||
set(RDC_LIB_INC_LIST ${RDC_LIB_INC_LIST}
|
||||
set(RDC_LIB_INC_LIST
|
||||
${RDC_LIB_INC_LIST}
|
||||
"${COMMON_DIR}/rdc_capabilities.h"
|
||||
"${COMMON_DIR}/rdc_fields_supported.h"
|
||||
"${INC_DIR}/RdcCacheManager.h"
|
||||
@@ -68,25 +70,22 @@ message("RDC_LIB_INC_LIST=${RDC_LIB_INC_LIST}")
|
||||
|
||||
add_library(${RDC_LIB} SHARED ${RDC_LIB_SRC_LIST} ${RDC_LIB_INC_LIST})
|
||||
target_link_libraries(${RDC_LIB} ${BOOTSTRAP_LIB} pthread amd_smi cap)
|
||||
target_include_directories(${RDC_LIB} PRIVATE
|
||||
"${PROJECT_SOURCE_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}/include"
|
||||
"${AMD_SMI_INCLUDE_DIR}")
|
||||
target_include_directories(
|
||||
${RDC_LIB} PRIVATE "${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/include"
|
||||
"${AMD_SMI_INCLUDE_DIR}")
|
||||
|
||||
# Set the VERSION and SOVERSION values
|
||||
set_property(TARGET ${RDC_LIB} PROPERTY
|
||||
SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDC_LIB} PROPERTY
|
||||
VERSION "${SO_VERSION_STRING}")
|
||||
set_target_properties(${RDC_LIB}
|
||||
PROPERTIES INSTALL_RPATH "\$ORIGIN")
|
||||
set_property(TARGET ${RDC_LIB} PROPERTY SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDC_LIB} PROPERTY VERSION "${SO_VERSION_STRING}")
|
||||
set_target_properties(${RDC_LIB} PROPERTIES INSTALL_RPATH "\$ORIGIN")
|
||||
|
||||
# If the library is a release, strip the target library
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
add_custom_command(
|
||||
TARGET ${RDC_LIB}
|
||||
POST_BUILD COMMAND ${CMAKE_STRIP} ${RDC_LIB_COMPONENT}.so)
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_STRIP} ${RDC_LIB_COMPONENT}.so)
|
||||
endif()
|
||||
|
||||
# pass ROCM_DIR to compiler
|
||||
target_compile_definitions(${RDC_LIB} PRIVATE ROCM_DIR="${ROCM_DIR}")
|
||||
target_compile_definitions(${RDC_LIB} PRIVATE ROCM_DIR="${ROCM_DIR}")
|
||||
|
||||
@@ -9,33 +9,26 @@ file(GLOB PROTOBUF_GENERATED_INCLUDES "${PROTOB_OUT_DIR}/*.h")
|
||||
file(GLOB PROTOBUF_GENERATED_SRCS "${PROTOB_OUT_DIR}/*.cc")
|
||||
|
||||
set(RDCCLIENT_LIB_COMPONENT "lib${RDCCLIENT_LIB}")
|
||||
set(RDCCLIENT_LIB_SRC_LIST
|
||||
"${SRC_DIR}/RdcStandaloneHandler.cc"
|
||||
"${PROTOBUF_GENERATED_SRCS}")
|
||||
set(RDCCLIENT_LIB_SRC_LIST "${SRC_DIR}/RdcStandaloneHandler.cc" "${PROTOBUF_GENERATED_SRCS}")
|
||||
|
||||
set(RDCCLIENT_LIB_INC_LIST "${PROJECT_SOURCE_DIR}/include/rdc/rdc.h"
|
||||
"${INC_DIR}/rdc_common.h"
|
||||
"${INC_DIR}/RdcHandler.h"
|
||||
"${INC_DIR}/impl/RdcStandaloneHandler.h")
|
||||
set(RDCCLIENT_LIB_INC_LIST "${PROJECT_SOURCE_DIR}/include/rdc/rdc.h" "${INC_DIR}/rdc_common.h"
|
||||
"${INC_DIR}/RdcHandler.h" "${INC_DIR}/impl/RdcStandaloneHandler.h")
|
||||
|
||||
message("RDCCLIENT_LIB_INC_LIST=${RDCCLIENT_LIB_INC_LIST}")
|
||||
|
||||
add_library(${RDCCLIENT_LIB} SHARED ${RDCCLIENT_LIB_SRC_LIST} ${RDCCLIENT_LIB_INC_LIST})
|
||||
target_link_libraries(${RDCCLIENT_LIB} ${BOOTSTRAP_LIB} pthread rt gRPC::grpc++ dl)
|
||||
target_include_directories(${RDCCLIENT_LIB} PRIVATE
|
||||
"${GRPC_ROOT}/include"
|
||||
"${PROJECT_SOURCE_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}/include"
|
||||
"${PROTOB_OUT_DIR}")
|
||||
target_include_directories(
|
||||
${RDCCLIENT_LIB} PRIVATE "${GRPC_ROOT}/include" "${PROJECT_SOURCE_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}/include" "${PROTOB_OUT_DIR}")
|
||||
|
||||
# Set the VERSION and SOVERSION values
|
||||
set_property(TARGET ${RDCCLIENT_LIB} PROPERTY
|
||||
SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDCCLIENT_LIB} PROPERTY
|
||||
VERSION "${SO_VERSION_STRING}")
|
||||
set_property(TARGET ${RDCCLIENT_LIB} PROPERTY SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDCCLIENT_LIB} PROPERTY VERSION "${SO_VERSION_STRING}")
|
||||
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
add_custom_command(
|
||||
TARGET ${RDCCLIENT_LIB}
|
||||
POST_BUILD COMMAND ${CMAKE_STRIP} ${RDCCLIENT_LIB_COMPONENT}.so)
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_STRIP} ${RDCCLIENT_LIB_COMPONENT}.so)
|
||||
endif()
|
||||
|
||||
@@ -6,17 +6,11 @@ set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
set(INC_DIR "${PROJECT_SOURCE_DIR}/include/rdc_modules/rdc_rocp")
|
||||
|
||||
set(RDC_ROCP_LIB_COMPONENT "lib${RDC_ROCP_LIB}")
|
||||
set(RDC_ROCP_LIB_SRC_LIST
|
||||
"${BOOTSTRAP_LIB_SRC_DIR}/RdcLogger.cc"
|
||||
"${SRC_DIR}/RdcTelemetryLib.cc"
|
||||
"${SRC_DIR}/RdcRocpCounterSampler.cc"
|
||||
"${SRC_DIR}/RdcRocpBase.cc")
|
||||
set(RDC_ROCP_LIB_SRC_LIST "${BOOTSTRAP_LIB_SRC_DIR}/RdcLogger.cc" "${SRC_DIR}/RdcTelemetryLib.cc"
|
||||
"${SRC_DIR}/RdcRocpCounterSampler.cc" "${SRC_DIR}/RdcRocpBase.cc")
|
||||
set(RDC_ROCP_LIB_INC_LIST
|
||||
"${PROJECT_SOURCE_DIR}/include/rdc/rdc.h"
|
||||
"${RDC_LIB_INC_DIR}/RdcDiagnosticLibInterface.h"
|
||||
"${RDC_LIB_INC_DIR}/rdc_common.h"
|
||||
"${RDC_LIB_INC_DIR}/RdcLogger.h"
|
||||
"${INC_DIR}/RdcRocpBase.h"
|
||||
"${PROJECT_SOURCE_DIR}/include/rdc/rdc.h" "${RDC_LIB_INC_DIR}/RdcDiagnosticLibInterface.h"
|
||||
"${RDC_LIB_INC_DIR}/rdc_common.h" "${RDC_LIB_INC_DIR}/RdcLogger.h" "${INC_DIR}/RdcRocpBase.h"
|
||||
"${INC_DIR}/RdcRocpCounterSampler.h")
|
||||
|
||||
if(BUILD_PROFILER)
|
||||
@@ -24,39 +18,42 @@ if(BUILD_PROFILER)
|
||||
|
||||
message("RDC_ROCP_LIB_INC_LIST=${RDC_ROCP_LIB_INC_LIST}")
|
||||
|
||||
find_package(rocprofiler-sdk
|
||||
HINTS ${ROCM_DIR}/lib/cmake
|
||||
CONFIGURE REQUIRED)
|
||||
find_package(hsa-runtime64
|
||||
NAMES hsa-runtime64
|
||||
HINTS ${ROCM_DIR}/lib/cmake
|
||||
CONFIGURE REQUIRED)
|
||||
set(RDC_LIB_MODULES ${RDC_LIB_MODULES} ${RDC_ROCP_LIB} PARENT_SCOPE)
|
||||
find_package(rocprofiler-sdk HINTS ${ROCM_DIR}/lib/cmake CONFIGURE REQUIRED)
|
||||
find_package(
|
||||
hsa-runtime64
|
||||
NAMES
|
||||
hsa-runtime64
|
||||
HINTS
|
||||
${ROCM_DIR}/lib/cmake
|
||||
CONFIGURE
|
||||
REQUIRED)
|
||||
set(RDC_LIB_MODULES
|
||||
${RDC_LIB_MODULES} ${RDC_ROCP_LIB}
|
||||
PARENT_SCOPE)
|
||||
add_library(${RDC_ROCP_LIB} SHARED ${RDC_ROCP_LIB_SRC_LIST} ${RDC_ROCP_LIB_INC_LIST})
|
||||
target_link_libraries(${RDC_ROCP_LIB} PRIVATE hsa-runtime64::hsa-runtime64 rocprofiler-sdk::rocprofiler-sdk pthread dl)
|
||||
target_include_directories(${RDC_ROCP_LIB} PRIVATE
|
||||
"${PROJECT_SOURCE_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}/include"
|
||||
"${COMMON_DIR}"
|
||||
"${AMD_SMI_INCLUDE_DIR}"
|
||||
"${ROCM_DIR}/include"
|
||||
"${ROCM_DIR}/include/hsa")
|
||||
target_link_libraries(${RDC_ROCP_LIB} PRIVATE hsa-runtime64::hsa-runtime64
|
||||
rocprofiler-sdk::rocprofiler-sdk pthread dl)
|
||||
target_include_directories(
|
||||
${RDC_ROCP_LIB}
|
||||
PRIVATE "${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/include" "${COMMON_DIR}"
|
||||
"${AMD_SMI_INCLUDE_DIR}" "${ROCM_DIR}/include" "${ROCM_DIR}/include/hsa")
|
||||
|
||||
# let bootstrap find this module at build time
|
||||
# at install-time the directory structure is a lot simpler
|
||||
set_property(TARGET ${BOOTSTRAP_LIB} APPEND PROPERTY
|
||||
BUILD_RPATH "\$ORIGIN/../rdc_modules/${RDC_ROCP_LIB}")
|
||||
set_property(
|
||||
TARGET ${BOOTSTRAP_LIB}
|
||||
APPEND
|
||||
PROPERTY BUILD_RPATH "\$ORIGIN/../rdc_modules/${RDC_ROCP_LIB}")
|
||||
|
||||
# Set the VERSION and SOVERSION values
|
||||
set_property(TARGET ${RDC_ROCP_LIB} PROPERTY
|
||||
SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDC_ROCP_LIB} PROPERTY
|
||||
VERSION "${SO_VERSION_STRING}")
|
||||
set_property(TARGET ${RDC_ROCP_LIB} PROPERTY SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDC_ROCP_LIB} PROPERTY VERSION "${SO_VERSION_STRING}")
|
||||
|
||||
# If the library is a release, strip the target library
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
add_custom_command(
|
||||
TARGET ${RDC_ROCP_LIB}
|
||||
POST_BUILD COMMAND ${CMAKE_STRIP} ${RDC_ROCP_LIB_COMPONENT}.so)
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_STRIP} ${RDC_ROCP_LIB_COMPONENT}.so)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -34,35 +34,40 @@ if(BUILD_RUNTIME)
|
||||
|
||||
message("RDC_ROCR_LIB_INC_LIST=${RDC_ROCR_LIB_INC_LIST}")
|
||||
|
||||
find_package(hsa-runtime64
|
||||
NAMES hsa-runtime64
|
||||
HINTS ${ROCM_DIR}/lib/cmake
|
||||
CONFIGURE REQUIRED)
|
||||
set(RDC_LIB_MODULES ${RDC_LIB_MODULES} ${RDC_ROCR_LIB} PARENT_SCOPE)
|
||||
find_package(
|
||||
hsa-runtime64
|
||||
NAMES
|
||||
hsa-runtime64
|
||||
HINTS
|
||||
${ROCM_DIR}/lib/cmake
|
||||
CONFIGURE
|
||||
REQUIRED)
|
||||
set(RDC_LIB_MODULES
|
||||
${RDC_LIB_MODULES} ${RDC_ROCR_LIB}
|
||||
PARENT_SCOPE)
|
||||
add_library(${RDC_ROCR_LIB} SHARED ${RDC_ROCR_LIB_SRC_LIST} ${RDC_ROCR_LIB_INC_LIST})
|
||||
target_link_libraries(${RDC_ROCR_LIB} ${RDC_LIB} ${BOOTSTRAP_LIB} hsa-runtime64::hsa-runtime64 pthread dl)
|
||||
target_include_directories(${RDC_ROCR_LIB} PRIVATE
|
||||
"${PROJECT_SOURCE_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}/include"
|
||||
"${COMMON_DIR}"
|
||||
"${AMD_SMI_INCLUDE_DIR}"
|
||||
"${ROCM_DIR}/include")
|
||||
target_link_libraries(${RDC_ROCR_LIB} ${RDC_LIB} ${BOOTSTRAP_LIB} hsa-runtime64::hsa-runtime64
|
||||
pthread dl)
|
||||
target_include_directories(
|
||||
${RDC_ROCR_LIB} PRIVATE "${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/include"
|
||||
"${COMMON_DIR}" "${AMD_SMI_INCLUDE_DIR}" "${ROCM_DIR}/include")
|
||||
|
||||
# let bootstrap find this module at build time
|
||||
# at install-time the directory structure is a lot simpler
|
||||
set_property(TARGET ${BOOTSTRAP_LIB} APPEND PROPERTY
|
||||
BUILD_RPATH "\$ORIGIN/../rdc_modules/${RDC_ROCR_LIB}")
|
||||
set_property(
|
||||
TARGET ${BOOTSTRAP_LIB}
|
||||
APPEND
|
||||
PROPERTY BUILD_RPATH "\$ORIGIN/../rdc_modules/${RDC_ROCR_LIB}")
|
||||
|
||||
# Set the VERSION and SOVERSION values
|
||||
set_property(TARGET ${RDC_ROCR_LIB} PROPERTY
|
||||
SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDC_ROCR_LIB} PROPERTY
|
||||
VERSION "${SO_VERSION_STRING}")
|
||||
set_property(TARGET ${RDC_ROCR_LIB} PROPERTY SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDC_ROCR_LIB} PROPERTY VERSION "${SO_VERSION_STRING}")
|
||||
|
||||
# If the library is a release, strip the target library
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
add_custom_command(
|
||||
TARGET ${RDC_ROCR_LIB}
|
||||
POST_BUILD COMMAND ${CMAKE_STRIP} ${RDC_ROCR_LIB_COMPONENT}.so)
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_STRIP} ${RDC_ROCR_LIB_COMPONENT}.so)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -6,19 +6,12 @@ set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
set(INC_DIR "${PROJECT_SOURCE_DIR}/include/rdc_modules/rdc_rvs")
|
||||
|
||||
set(RDC_RVS_LIB_COMPONENT "lib${RDC_RVS_LIB}")
|
||||
set(RDC_RVS_LIB_SRC_LIST
|
||||
"${BOOTSTRAP_LIB_SRC_DIR}/RdcLogger.cc"
|
||||
"${SRC_DIR}/RvsBase.cc"
|
||||
"${SRC_DIR}/RdcDiagnosticLib.cc"
|
||||
)
|
||||
set(RDC_RVS_LIB_SRC_LIST "${BOOTSTRAP_LIB_SRC_DIR}/RdcLogger.cc" "${SRC_DIR}/RvsBase.cc"
|
||||
"${SRC_DIR}/RdcDiagnosticLib.cc")
|
||||
set(RDC_RVS_LIB_INC_LIST
|
||||
"${PROJECT_SOURCE_DIR}/include/rdc/rdc.h"
|
||||
"${RDC_LIB_INC_DIR}/RdcDiagnostic.h"
|
||||
"${RDC_LIB_INC_DIR}/RdcDiagnosticLibInterface.h"
|
||||
"${RDC_LIB_INC_DIR}/rdc_common.h"
|
||||
"${RDC_LIB_INC_DIR}/RdcLogger.h"
|
||||
"${INC_DIR}/RvsBase.h"
|
||||
)
|
||||
"${PROJECT_SOURCE_DIR}/include/rdc/rdc.h" "${RDC_LIB_INC_DIR}/RdcDiagnostic.h"
|
||||
"${RDC_LIB_INC_DIR}/RdcDiagnosticLibInterface.h" "${RDC_LIB_INC_DIR}/rdc_common.h"
|
||||
"${RDC_LIB_INC_DIR}/RdcLogger.h" "${INC_DIR}/RvsBase.h")
|
||||
|
||||
if(BUILD_RVS)
|
||||
message("Build librdc_rvs.so is enabled, make sure RVS is installed.")
|
||||
@@ -32,38 +25,43 @@ if(BUILD_RVS)
|
||||
list(APPEND CMAKE_PREFIX_PATH ${ROCM_DIR})
|
||||
find_package(rvs REQUIRED)
|
||||
|
||||
set(RDC_LIB_MODULES ${RDC_LIB_MODULES} ${RDC_RVS_LIB} PARENT_SCOPE)
|
||||
set(RDC_LIB_MODULES
|
||||
${RDC_LIB_MODULES} ${RDC_RVS_LIB}
|
||||
PARENT_SCOPE)
|
||||
add_library(${RDC_RVS_LIB} SHARED ${RDC_RVS_LIB_SRC_LIST} ${RDC_RVS_LIB_INC_LIST})
|
||||
target_link_libraries(${RDC_RVS_LIB} PRIVATE ${RDC_LIB} ${BOOTSTRAP_LIB} rvs::rvs pthread dl)
|
||||
target_include_directories(${RDC_RVS_LIB} PRIVATE
|
||||
"${PROJECT_SOURCE_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}/include"
|
||||
"${COMMON_DIR}"
|
||||
"${AMD_SMI_INCLUDE_DIR}"
|
||||
"${ROCM_DIR}/include"
|
||||
"${ROCM_DIR}/include/hsa"
|
||||
"${ROCM_VALIDATION_SUITE_INCLUDE_DIR}")
|
||||
target_include_directories(
|
||||
${RDC_RVS_LIB}
|
||||
PRIVATE "${PROJECT_SOURCE_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}/include"
|
||||
"${COMMON_DIR}"
|
||||
"${AMD_SMI_INCLUDE_DIR}"
|
||||
"${ROCM_DIR}/include"
|
||||
"${ROCM_DIR}/include/hsa"
|
||||
"${ROCM_VALIDATION_SUITE_INCLUDE_DIR}")
|
||||
|
||||
# let bootstrap find this module at build time
|
||||
# at install-time the directory structure is a lot simpler
|
||||
set_property(TARGET ${BOOTSTRAP_LIB} APPEND PROPERTY
|
||||
BUILD_RPATH "\$ORIGIN/../rdc_modules/${RDC_RVS_LIB}")
|
||||
set_property(
|
||||
TARGET ${BOOTSTRAP_LIB}
|
||||
APPEND
|
||||
PROPERTY BUILD_RPATH "\$ORIGIN/../rdc_modules/${RDC_RVS_LIB}")
|
||||
|
||||
# Set the VERSION and SOVERSION values
|
||||
set_property(TARGET ${RDC_RVS_LIB} PROPERTY
|
||||
SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDC_RVS_LIB} PROPERTY
|
||||
VERSION "${SO_VERSION_STRING}")
|
||||
set_property(TARGET ${RDC_RVS_LIB} PROPERTY SOVERSION "${VERSION_MAJOR}")
|
||||
set_property(TARGET ${RDC_RVS_LIB} PROPERTY VERSION "${SO_VERSION_STRING}")
|
||||
|
||||
# If the library is a release, strip the target library
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL Release)
|
||||
add_custom_command(
|
||||
TARGET ${RDC_RVS_LIB}
|
||||
POST_BUILD COMMAND ${CMAKE_STRIP} ${RDC_RVS_LIB_COMPONENT}.so)
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_STRIP} ${RDC_RVS_LIB_COMPONENT}.so)
|
||||
endif()
|
||||
|
||||
# Install RVS config files into /opt/rocm/share/rdc/conf/rvs/
|
||||
install(DIRECTORY "${SRC_DIR}/conf/"
|
||||
install(
|
||||
DIRECTORY "${SRC_DIR}/conf/"
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${RDC}/conf/rvs/
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
endif()
|
||||
|
||||
+14
-10
@@ -42,10 +42,8 @@ message("")
|
||||
set(SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
set(INC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
|
||||
include_directories(${INC_DIR} ${PROJECT_SOURCE_DIR}/include
|
||||
"${GRPC_ROOT}/include"
|
||||
${PROJECT_SOURCE_DIR}
|
||||
${AMD_SMI_INCLUDE_DIR})
|
||||
include_directories(${INC_DIR} ${PROJECT_SOURCE_DIR}/include "${GRPC_ROOT}/include"
|
||||
${PROJECT_SOURCE_DIR} ${AMD_SMI_INCLUDE_DIR})
|
||||
|
||||
set(RDCI_SRC_LIST
|
||||
"${COMMON_DIR}/rdc_fields_supported.cc"
|
||||
@@ -72,19 +70,25 @@ add_executable(${RDCI_EXE} "${RDCI_SRC_LIST}")
|
||||
target_compile_definitions(${RDCI_EXE} PRIVATE CURRENT_GIT_HASH=${GIT_HASH})
|
||||
|
||||
# help find librdc_bootstrap.so at runtime
|
||||
set_target_properties(${RDCI_EXE}
|
||||
PROPERTIES INSTALL_RPATH "\$ORIGIN/../lib:\$ORIGIN/../lib/rdc/grpc/lib")
|
||||
set_target_properties(${RDCI_EXE} PROPERTIES INSTALL_RPATH
|
||||
"\$ORIGIN/../lib:\$ORIGIN/../lib/rdc/grpc/lib")
|
||||
|
||||
target_link_libraries(${RDCI_EXE} pthread dl gRPC::grpc++ rdc_bootstrap)
|
||||
|
||||
## Add the install directives for the rdci executable
|
||||
install(TARGETS ${RDCI_EXE}
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
|
||||
WORLD_READ WORLD_EXECUTE
|
||||
install(
|
||||
TARGETS ${RDCI_EXE}
|
||||
PERMISSIONS
|
||||
OWNER_READ
|
||||
OWNER_WRITE
|
||||
OWNER_EXECUTE
|
||||
GROUP_READ
|
||||
GROUP_EXECUTE
|
||||
WORLD_READ
|
||||
WORLD_EXECUTE
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
COMPONENT ${CLIENT_COMPONENT})
|
||||
|
||||
|
||||
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
message(" Finished Cmake rdci ")
|
||||
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
|
||||
+31
-20
@@ -40,7 +40,8 @@ message("")
|
||||
# See:
|
||||
# - https://github.com/llvm/llvm-project/issues/102443
|
||||
# - https://github.com/abseil/abseil-cpp/issues/1747
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 18.0.0)
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL
|
||||
18.0.0)
|
||||
message("Compiler is " ${CMAKE_CXX_COMPILER_ID} ":" ${CMAKE_CXX_COMPILER_VERSION})
|
||||
message("Applying abi patch...")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fclang-abi-compat=17")
|
||||
@@ -53,19 +54,13 @@ set(INC_DIR "include/rdc")
|
||||
file(GLOB PROTOBUF_GENERATED_INCLUDES "${PROTOB_OUT_DIR}/*.h")
|
||||
file(GLOB PROTOBUF_GENERATED_SRCS "${PROTOB_OUT_DIR}/*.cc")
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||
"${PROJECT_SOURCE_DIR}/include"
|
||||
"${GRPC_ROOT}/include"
|
||||
"${PROTOB_OUT_DIR}"
|
||||
"${AMD_SMI_INCLUDE_DIR}"
|
||||
"${PROJECT_SOURCE_DIR}")
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include "${PROJECT_SOURCE_DIR}/include" "${GRPC_ROOT}/include"
|
||||
"${PROTOB_OUT_DIR}" "${AMD_SMI_INCLUDE_DIR}" "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
set(SERVER_SRC_LIST
|
||||
"${COMMON_DIR}/rdc_capabilities.cc"
|
||||
"${COMMON_DIR}/rdc_utils.cc"
|
||||
"${PROTOBUF_GENERATED_SRCS}"
|
||||
"${SRC_DIR}/rdc_admin_service.cc"
|
||||
"${SRC_DIR}/rdc_api_service.cc"
|
||||
"${COMMON_DIR}/rdc_capabilities.cc" "${COMMON_DIR}/rdc_utils.cc" "${PROTOBUF_GENERATED_SRCS}"
|
||||
"${SRC_DIR}/rdc_admin_service.cc" "${SRC_DIR}/rdc_api_service.cc"
|
||||
"${SRC_DIR}/rdc_server_main.cc")
|
||||
message("SERVER_SRC_LIST=${SERVER_SRC_LIST}")
|
||||
|
||||
@@ -82,20 +77,36 @@ target_compile_definitions(${SERVER_DAEMON_EXE} PRIVATE CURRENT_GIT_HASH=${GIT_H
|
||||
|
||||
# help find librdc_bootstrap.so at runtime
|
||||
set_target_properties(${SERVER_DAEMON_EXE}
|
||||
PROPERTIES INSTALL_RPATH "\$ORIGIN/../lib:\$ORIGIN/../lib/rdc/grpc/lib")
|
||||
PROPERTIES INSTALL_RPATH "\$ORIGIN/../lib:\$ORIGIN/../lib/rdc/grpc/lib")
|
||||
|
||||
target_link_libraries(${SERVER_DAEMON_EXE} pthread rt gRPC::grpc++
|
||||
cap dl amd_smi rdc_bootstrap)
|
||||
target_link_libraries(
|
||||
${SERVER_DAEMON_EXE}
|
||||
pthread
|
||||
rt
|
||||
gRPC::grpc++
|
||||
cap
|
||||
dl
|
||||
amd_smi
|
||||
rdc_bootstrap)
|
||||
|
||||
install(TARGETS ${SERVER_DAEMON_EXE}
|
||||
PERMISSIONS OWNER_EXECUTE OWNER_READ OWNER_WRITE GROUP_READ
|
||||
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||
install(
|
||||
TARGETS ${SERVER_DAEMON_EXE}
|
||||
PERMISSIONS
|
||||
OWNER_EXECUTE
|
||||
OWNER_READ
|
||||
OWNER_WRITE
|
||||
GROUP_READ
|
||||
GROUP_EXECUTE
|
||||
WORLD_READ
|
||||
WORLD_EXECUTE
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
install(FILES ${PROJECT_BINARY_DIR}/${SERVICE_FILE_NAME}
|
||||
install(
|
||||
FILES ${PROJECT_BINARY_DIR}/${SERVICE_FILE_NAME}
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${RDC}
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
install(FILES ${PROJECT_BINARY_DIR}/${SERVER_CONFIG_FILE}
|
||||
install(
|
||||
FILES ${PROJECT_BINARY_DIR}/${SERVER_CONFIG_FILE}
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${RDC}/conf
|
||||
COMPONENT ${SERVER_COMPONENT})
|
||||
|
||||
|
||||
@@ -24,11 +24,19 @@ message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
|
||||
# Set compile flags
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG" CACHE STRING "Flags for Debug builds")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG
|
||||
"${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG"
|
||||
CACHE STRING "Flags for Debug builds")
|
||||
# note: no '-s' here unlike other CMakeLists.txt
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG" CACHE STRING "Flags for Release builds")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG" CACHE STRING "Flags for RelWithDebInfo builds")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG" CACHE STRING "Flags for MinSizeRel builds")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE
|
||||
"${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG"
|
||||
CACHE STRING "Flags for Release builds")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG"
|
||||
CACHE STRING "Flags for RelWithDebInfo builds")
|
||||
set(CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
"${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG"
|
||||
CACHE STRING "Flags for MinSizeRel builds")
|
||||
|
||||
# Required Defines first:
|
||||
|
||||
@@ -63,9 +71,9 @@ set(TEST_CLIENT_EXE "rdc_test_client")
|
||||
|
||||
add_executable(${TEST_CLIENT_EXE} "${EXAMPLE_SRC_LIST}")
|
||||
|
||||
target_include_directories(${TEST_CLIENT_EXE} PRIVATE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../client/include"
|
||||
"${AMD_SMI_INCLUDE_DIR}")
|
||||
target_include_directories(
|
||||
${TEST_CLIENT_EXE} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../client/include"
|
||||
"${AMD_SMI_INCLUDE_DIR}")
|
||||
|
||||
target_link_libraries(${TEST_CLIENT_EXE} rdc_client)
|
||||
|
||||
|
||||
@@ -12,14 +12,9 @@ option(INSTALL_GTEST "Install GTest (only useful if GTest is not already install
|
||||
|
||||
# Hack to find libraries after installation
|
||||
# /opt/rocm/share/rdc/rdctst_tests/../../../ = /opt/rocm
|
||||
set(RDCTST_RPATH
|
||||
"\$ORIGIN"
|
||||
"\$ORIGIN/../../../lib"
|
||||
"\$ORIGIN/../../../lib/rdc")
|
||||
set(RDCTST_RPATH "\$ORIGIN" "\$ORIGIN/../../../lib" "\$ORIGIN/../../../lib/rdc")
|
||||
# combine lists
|
||||
set(CMAKE_INSTALL_RPATH
|
||||
${CMAKE_INSTALL_RPATH}
|
||||
${RDCTST_RPATH})
|
||||
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} ${RDCTST_RPATH})
|
||||
|
||||
#
|
||||
# Print out the build configuration being used:
|
||||
@@ -73,7 +68,8 @@ target_include_directories(
|
||||
PUBLIC ${AMD_SMI_INCLUDE_DIR}
|
||||
PUBLIC ${SRC_DIR}/..)
|
||||
|
||||
target_link_libraries(${RDCTST}
|
||||
target_link_libraries(
|
||||
${RDCTST}
|
||||
PUBLIC rdc_bootstrap
|
||||
PUBLIC rdc
|
||||
PUBLIC GTest::gtest_main
|
||||
@@ -81,10 +77,12 @@ target_link_libraries(${RDCTST}
|
||||
PUBLIC stdc++
|
||||
PUBLIC pthread)
|
||||
|
||||
install(TARGETS ${RDCTST} gtest gtest_main
|
||||
install(
|
||||
TARGETS ${RDCTST} gtest gtest_main
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${RDC}/rdctst_tests
|
||||
COMPONENT ${TESTS_COMPONENT})
|
||||
|
||||
install(FILES ${RDCTST}.exclude
|
||||
install(
|
||||
FILES ${RDCTST}.exclude
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${RDC}/rdctst_tests
|
||||
COMPONENT ${TESTS_COMPONENT})
|
||||
|
||||
Referens i nytt ärende
Block a user