From ee6ea623e2e6a6b6adad197a21a0360f61f2b368 Mon Sep 17 00:00:00 2001 From: Ranjith Ramakrishnan Date: Tue, 17 May 2022 22:15:56 -0700 Subject: [PATCH] SWDEV-321112: Use GNUInstallDirs Use GNUInstallDirs variables to determine the location of BINDIR, LIBDIR, INCLUDEDIR, DOCDIR, LIBEXECDIR and SYSCONFDIR. Note that CMAKE_INSTALL_LIBDIR is overriden, since the default for RHEL is lib64, but ROCm packaging wants it to be lib always. Distros or users can easily override this. Project name changed from rocprofiler64 to rocprofiler,since CMAKE_INSTALL_DOCDIR uses the project name Change-Id: Iff2622b4bfc38ce5caea270e6e44ba74485cb9e4 [ROCm/rocprofiler commit: b24e05e13801df66f862d50d86e87b43ccaaf05c] --- projects/rocprofiler/CMakeLists.txt | 21 +++++++++++-------- projects/rocprofiler/DEBIAN/postinst.in | 2 +- projects/rocprofiler/DEBIAN/prerm.in | 2 +- projects/rocprofiler/RPM/post.in | 2 +- projects/rocprofiler/RPM/postun.in | 2 +- .../rocprofiler-backward-compat.cmake | 12 +++++------ 6 files changed, 22 insertions(+), 19 deletions(-) diff --git a/projects/rocprofiler/CMakeLists.txt b/projects/rocprofiler/CMakeLists.txt index a13b51538b..fc268a842b 100644 --- a/projects/rocprofiler/CMakeLists.txt +++ b/projects/rocprofiler/CMakeLists.txt @@ -29,8 +29,11 @@ set ( CMAKE_VERBOSE_MAKEFILE TRUE CACHE BOOL "Verbose Output" FORCE ) set ( ROCPROFILER_NAME "rocprofiler" ) set ( ROCPROFILER_TARGET "${ROCPROFILER_NAME}64" ) set ( ROCPROFILER_LIBRARY "lib${ROCPROFILER_TARGET}" ) -project ( ${ROCPROFILER_TARGET} ) +project ( ${ROCPROFILER_NAME} ) +# Set default libdir to be "lib" for ROCm +set(CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "Library install directory") +include(GNUInstallDirs) ## Adding default path cmake modules list ( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules" ) ## Include common cmake modules @@ -130,15 +133,15 @@ message ( "CPack-install-prefix: ${CPACK_PACKAGING_INSTALL_PREFIX}" ) message ( "-----------Dest-name: ${DEST_NAME}" ) # Install header and library -install ( TARGETS ${ROCPROFILER_TARGET} LIBRARY DESTINATION lib ) +install ( TARGETS ${ROCPROFILER_TARGET} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/inc/rocprofiler.h ${CMAKE_CURRENT_SOURCE_DIR}/src/core/activity.h - DESTINATION include/${DEST_NAME} ) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${DEST_NAME} ) # rpl_run.sh tblextr.py txt2xml.sh install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/bin/rpl_run.sh - DESTINATION bin + DESTINATION ${CMAKE_INSTALL_BINDIR} PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE RENAME rocprof ) @@ -150,16 +153,16 @@ install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/bin/dform.py ${CMAKE_CURRENT_SOURCE_DIR}/bin/mem_manager.py ${CMAKE_CURRENT_SOURCE_DIR}/bin/sqlitedb.py - DESTINATION libexec/${DEST_NAME} + DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${DEST_NAME} PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) # gfx_metrics.xml metrics.xml install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/test/tool/metrics.xml ${CMAKE_CURRENT_SOURCE_DIR}/test/tool/gfx_metrics.xml - DESTINATION lib/${DEST_NAME} ) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/${DEST_NAME} ) # librocprof-tool.so -install ( FILES ${PROJECT_BINARY_DIR}/test/librocprof-tool.so DESTINATION lib/${DEST_NAME} ) -install ( FILES ${PROJECT_BINARY_DIR}/test/rocprof-ctrl DESTINATION lib/${DEST_NAME} +install ( FILES ${PROJECT_BINARY_DIR}/test/librocprof-tool.so DESTINATION ${CMAKE_INSTALL_LIBDIR}/${DEST_NAME} ) +install ( FILES ${PROJECT_BINARY_DIR}/test/rocprof-ctrl DESTINATION ${CMAKE_INSTALL_LIBDIR}/${DEST_NAME} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) # File reorg Backward compatibility @@ -182,7 +185,7 @@ set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "ROCPROFILER library for AMD HSA runtime set ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" ) # Install license file -install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION share/doc/${CPACK_PACKAGE_NAME}) +install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR}) if ( DEFINED ENV{ROCM_LIBPATCH_VERSION} ) set ( CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.$ENV{ROCM_LIBPATCH_VERSION}" ) diff --git a/projects/rocprofiler/DEBIAN/postinst.in b/projects/rocprofiler/DEBIAN/postinst.in index 90fc57e8fd..33848c4af1 100644 --- a/projects/rocprofiler/DEBIAN/postinst.in +++ b/projects/rocprofiler/DEBIAN/postinst.in @@ -5,7 +5,7 @@ set -e do_ldconfig() { # left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build if [ "@ENABLE_LDCONFIG@" == "ON" ]; then - echo @CPACK_PACKAGING_INSTALL_PREFIX@/lib > /etc/ld.so.conf.d/librocprofiler64.conf + echo @CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ > /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/librocprofiler64.conf ldconfig fi } diff --git a/projects/rocprofiler/DEBIAN/prerm.in b/projects/rocprofiler/DEBIAN/prerm.in index 828d123582..88dc4aab74 100644 --- a/projects/rocprofiler/DEBIAN/prerm.in +++ b/projects/rocprofiler/DEBIAN/prerm.in @@ -5,7 +5,7 @@ set -e rm_ldconfig() { # left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build if [ "@ENABLE_LDCONFIG@" == "ON" ]; then - rm -f /etc/ld.so.conf.d/librocprofiler64.conf + rm -f /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/librocprofiler64.conf ldconfig fi } diff --git a/projects/rocprofiler/RPM/post.in b/projects/rocprofiler/RPM/post.in index ee890d8981..3fb4dd57af 100644 --- a/projects/rocprofiler/RPM/post.in +++ b/projects/rocprofiler/RPM/post.in @@ -1,5 +1,5 @@ # left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build if [ "@ENABLE_LDCONFIG@" == "ON" ]; then - echo @CPACK_PACKAGING_INSTALL_PREFIX@/lib > /etc/ld.so.conf.d/librocprofiler64.conf + echo @CPACK_PACKAGING_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ > /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/librocprofiler64.conf ldconfig fi diff --git a/projects/rocprofiler/RPM/postun.in b/projects/rocprofiler/RPM/postun.in index 678b35d9f4..c5750b65e2 100644 --- a/projects/rocprofiler/RPM/postun.in +++ b/projects/rocprofiler/RPM/postun.in @@ -1,4 +1,4 @@ # left-hand term originates from ENABLE_LDCONFIG = ON/OFF at package build if [ "@ENABLE_LDCONFIG@" == "ON" ]; then - rm -f /etc/ld.so.conf.d/librocprofiler64.conf && ldconfig + rm -f /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/librocprofiler64.conf && ldconfig fi diff --git a/projects/rocprofiler/rocprofiler-backward-compat.cmake b/projects/rocprofiler/rocprofiler-backward-compat.cmake index 8e1ddf6d2e..df607fddb6 100644 --- a/projects/rocprofiler/rocprofiler-backward-compat.cmake +++ b/projects/rocprofiler/rocprofiler-backward-compat.cmake @@ -64,7 +64,7 @@ function(generate_wrapper_header) set(include_guard "${include_guard}ROCPROF_WRAPPER_INCLUDE_${INC_GAURD_NAME}_H") #set include statement get_filename_component(file_name ${header_file} NAME) - set(include_statements "${include_statements}#include \"../../include/${ROCPROFILER_NAME}/${file_name}\"\n") + set(include_statements "${include_statements}#include \"../../${CMAKE_INSTALL_INCLUDEDIR}/${ROCPROFILER_NAME}/${file_name}\"\n") configure_file(${ROCPROF_WRAPPER_DIR}/header.hpp.in ${ROCPROF_WRAPPER_INC_DIR}/${file_name}) unset(include_guard) unset(include_statements) @@ -76,7 +76,7 @@ function(generate_wrapper_header) get_filename_component(INC_GAURD_NAME ${file_name} NAME_WE) string(TOUPPER ${INC_GAURD_NAME} INC_GAURD_NAME) set(include_guard "${include_guard}ROCPROF_WRAPPER_INCLUDE_${INC_GAURD_NAME}_H") - set(include_statements "${include_statements}#include \"../../include/${ROCPROFILER_NAME}/${file_name}\"\n") + set(include_statements "${include_statements}#include \"../../${CMAKE_INSTALL_INCLUDEDIR}/${ROCPROFILER_NAME}/${file_name}\"\n") configure_file(${ROCPROF_WRAPPER_DIR}/header.hpp.in ${ROCPROF_WRAPPER_INC_DIR}/${file_name}) endfunction() @@ -88,7 +88,7 @@ function(create_binary_symlink) add_custom_target(link_${file_name} ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink - ../../bin/${file_name} ${ROCPROF_WRAPPER_BIN_DIR}/${file_name}) + ../../${CMAKE_INSTALL_BINDIR}/${file_name} ${ROCPROF_WRAPPER_BIN_DIR}/${file_name}) endfunction() @@ -104,7 +104,7 @@ function(create_library_symlink) add_custom_target(link_${file_name} ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink - ../../lib/${file_name} ${ROCPROF_WRAPPER_LIB_DIR}/${file_name}) + ../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${ROCPROF_WRAPPER_LIB_DIR}/${file_name}) endforeach() #create symlink to rocprofiler/tool/libtool.so # With File reorg,tool renamed to rocprof-tool @@ -114,7 +114,7 @@ function(create_library_symlink) add_custom_target(link_${LIB_TOOL} ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink - ../../lib/${ROCPROFILER_NAME}/${LIB_ROCPROFTOOL} ${ROCPROF_WRAPPER_TOOL_DIR}/${LIB_TOOL}) + ../../${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME}/${LIB_ROCPROFTOOL} ${ROCPROF_WRAPPER_TOOL_DIR}/${LIB_TOOL}) #create symlink to test binary #since its saved in lib folder , the code for the same is added here # With File reorg ,binary name changed from ctrl to rocprof-ctrl @@ -123,7 +123,7 @@ function(create_library_symlink) add_custom_target(link_${TEST_CTRL} ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink - ../../lib/${ROCPROFILER_NAME}/${TEST_ROCPROFCTRL} ${ROCPROF_WRAPPER_TOOL_DIR}/${TEST_CTRL}) + ../../${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME}/${TEST_ROCPROFCTRL} ${ROCPROF_WRAPPER_TOOL_DIR}/${TEST_CTRL}) endfunction() #Creater a template for header file