From fa8b89f4aec87ad8800d0bf6d00d434bdadfe09e Mon Sep 17 00:00:00 2001 From: "Galantsev, Dmitrii" Date: Tue, 6 May 2025 22:22:50 +0000 Subject: [PATCH] CMAKE - Format with cmake-format Change-Id: I08e71fc5060b1f6e0168225cc5fe66886c2044bd Signed-off-by: Galantsev, Dmitrii --- CMakeLists.txt | 304 +++++++++++-------- cmake_modules/Findrocprofiler.cmake | 20 +- cmake_modules/Findrvs.cmake | 35 ++- cmake_modules/rdc-config-version.cmake.in | 11 +- cmake_modules/rdc-config.cmake.in | 2 - cmake_modules/utils.cmake | 130 ++++---- example/CMakeLists.txt | 43 +-- rdc_libs/CMakeLists.txt | 38 +-- rdc_libs/bootstrap/CMakeLists.txt | 38 +-- rdc_libs/rdc/CMakeLists.txt | 27 +- rdc_libs/rdc_client/CMakeLists.txt | 27 +- rdc_libs/rdc_modules/rdc_rocp/CMakeLists.txt | 63 ++-- rdc_libs/rdc_modules/rdc_rocr/CMakeLists.txt | 43 +-- rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt | 56 ++-- rdci/CMakeLists.txt | 24 +- server/CMakeLists.txt | 51 ++-- tests/example/CMakeLists.txt | 22 +- tests/rdc_tests/CMakeLists.txt | 18 +- 18 files changed, 515 insertions(+), 437 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 25e3a828c6..a9216f840a 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 " 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 " + 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' diff --git a/cmake_modules/Findrocprofiler.cmake b/cmake_modules/Findrocprofiler.cmake index ac8d50836f..af27c424db 100644 --- a/cmake_modules/Findrocprofiler.cmake +++ b/cmake_modules/Findrocprofiler.cmake @@ -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() diff --git a/cmake_modules/Findrvs.cmake b/cmake_modules/Findrvs.cmake index 7dd8d91973..2163df5feb 100644 --- a/cmake_modules/Findrvs.cmake +++ b/cmake_modules/Findrvs.cmake @@ -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() diff --git a/cmake_modules/rdc-config-version.cmake.in b/cmake_modules/rdc-config-version.cmake.in index 0813e0b7f0..dbfe16400c 100644 --- a/cmake_modules/rdc-config-version.cmake.in +++ b/cmake_modules/rdc-config-version.cmake.in @@ -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() - diff --git a/cmake_modules/rdc-config.cmake.in b/cmake_modules/rdc-config.cmake.in index 62e6836bef..b35fa387ee 100644 --- a/cmake_modules/rdc-config.cmake.in +++ b/cmake_modules/rdc-config.cmake.in @@ -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@") - diff --git a/cmake_modules/utils.cmake b/cmake_modules/utils.cmake index 0080296c0f..ad3cc48bb5 100755 --- a/cmake_modules/utils.cmake +++ b/cmake_modules/utils.cmake @@ -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() diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index becdc98771..6601524b1e 100755 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -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") diff --git a/rdc_libs/CMakeLists.txt b/rdc_libs/CMakeLists.txt index c9b2461ffd..11776a775b 100755 --- a/rdc_libs/CMakeLists.txt +++ b/rdc_libs/CMakeLists.txt @@ -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("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") diff --git a/rdc_libs/bootstrap/CMakeLists.txt b/rdc_libs/bootstrap/CMakeLists.txt index 81262a0302..0c4e39390d 100644 --- a/rdc_libs/bootstrap/CMakeLists.txt +++ b/rdc_libs/bootstrap/CMakeLists.txt @@ -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 - $ - $) +target_include_directories(${BOOTSTRAP_LIB} PUBLIC $ + $) # 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() diff --git a/rdc_libs/rdc/CMakeLists.txt b/rdc_libs/rdc/CMakeLists.txt index 920e683ad2..82d13989d3 100644 --- a/rdc_libs/rdc/CMakeLists.txt +++ b/rdc_libs/rdc/CMakeLists.txt @@ -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}") \ No newline at end of file +target_compile_definitions(${RDC_LIB} PRIVATE ROCM_DIR="${ROCM_DIR}") diff --git a/rdc_libs/rdc_client/CMakeLists.txt b/rdc_libs/rdc_client/CMakeLists.txt index ec65a2fc43..3030b0ebfb 100644 --- a/rdc_libs/rdc_client/CMakeLists.txt +++ b/rdc_libs/rdc_client/CMakeLists.txt @@ -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() diff --git a/rdc_libs/rdc_modules/rdc_rocp/CMakeLists.txt b/rdc_libs/rdc_modules/rdc_rocp/CMakeLists.txt index 6b641b94e3..0d8cb9be5c 100644 --- a/rdc_libs/rdc_modules/rdc_rocp/CMakeLists.txt +++ b/rdc_libs/rdc_modules/rdc_rocp/CMakeLists.txt @@ -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() diff --git a/rdc_libs/rdc_modules/rdc_rocr/CMakeLists.txt b/rdc_libs/rdc_modules/rdc_rocr/CMakeLists.txt index 4fd2dfddb2..84ee29e9b9 100644 --- a/rdc_libs/rdc_modules/rdc_rocr/CMakeLists.txt +++ b/rdc_libs/rdc_modules/rdc_rocr/CMakeLists.txt @@ -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() diff --git a/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt b/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt index 7f9f80f0de..62fda07c45 100644 --- a/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt +++ b/rdc_libs/rdc_modules/rdc_rvs/CMakeLists.txt @@ -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() diff --git a/rdci/CMakeLists.txt b/rdci/CMakeLists.txt index 8d5047844f..194ba8bfd6 100644 --- a/rdci/CMakeLists.txt +++ b/rdci/CMakeLists.txt @@ -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("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&") diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt index fefe1991eb..5e17c840c1 100755 --- a/server/CMakeLists.txt +++ b/server/CMakeLists.txt @@ -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}) diff --git a/tests/example/CMakeLists.txt b/tests/example/CMakeLists.txt index d50f4b5e19..9c450e56ae 100755 --- a/tests/example/CMakeLists.txt +++ b/tests/example/CMakeLists.txt @@ -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) diff --git a/tests/rdc_tests/CMakeLists.txt b/tests/rdc_tests/CMakeLists.txt index a60c8a8114..1e97516ce7 100755 --- a/tests/rdc_tests/CMakeLists.txt +++ b/tests/rdc_tests/CMakeLists.txt @@ -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})