From 9b0e58dfdf96fbf3023861a628e6239b918bd22b Mon Sep 17 00:00:00 2001 From: Ammar ELWazir Date: Thu, 16 Feb 2023 19:48:35 +0000 Subject: [PATCH] Fixing Packages installation path Change-Id: Ide3536b3c6050effcc9337e612375a7e5ddb6522 --- CMakeLists.txt | 200 ++++++++++++++++--------------------- rocprofv2 => bin/rocprofv2 | 0 build.sh | 2 +- cmake_modules/env.cmake | 10 -- samples/CMakeLists.txt | 1 - 5 files changed, 86 insertions(+), 127 deletions(-) rename rocprofv2 => bin/rocprofv2 (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 84ce03e7af..63ff07a30c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,13 +20,13 @@ # THE SOFTWARE. ################################################################################ -cmake_minimum_required ( VERSION 3.18.0 ) +cmake_minimum_required(VERSION 3.18.0) ## Set module name and project name. set ( ROCPROFILER_NAME "rocprofiler" ) set ( ROCPROFILER_TARGET "${ROCPROFILER_NAME}64" ) set ( ROCPROFILER_LIBRARY "lib${ROCPROFILER_TARGET}" ) -project(${ROCPROFILER_NAME} VERSION 2.0.0) +project(rocprofiler VERSION 2.0.0) include(GNUInstallDirs) @@ -48,9 +48,8 @@ set(THREADS_PREFER_PTHREAD_FLAG ON) ## Adding default path cmake modules list ( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules" ) -## Include common cmake modules -include ( utils ) ## Set build environment +include ( utils ) include ( env ) ## Setup the package version. @@ -108,13 +107,6 @@ if (NOT USE_PROF_API) set(USE_PROF_API 1) endif() -configure_file(rocprofv2 ${PROJECT_BINARY_DIR} COPYONLY) -install(FILES - ${PROJECT_SOURCE_DIR}/rocprofv2 - DESTINATION ${CMAKE_INSTALL_BINDIR} - PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - COMPONENT runtime) - # Protocol header lookup set(PROF_API_HEADER_NAME prof_protocol.h) if(USE_PROF_API EQUAL 1) @@ -151,85 +143,74 @@ add_subdirectory(plugin) ## Build tests add_subdirectory(${TEST_DIR} ${PROJECT_BINARY_DIR}/test) -## Installation and packaging -set ( DEST_NAME ${ROCPROFILER_NAME} ) -if ( DEFINED CMAKE_INSTALL_PREFIX ) - get_filename_component ( prefix_name ${CMAKE_INSTALL_PREFIX} NAME ) - get_filename_component ( prefix_dir ${CMAKE_INSTALL_PREFIX} DIRECTORY ) - if ( prefix_name STREQUAL ${DEST_NAME} ) - set ( CMAKE_INSTALL_PREFIX ${prefix_dir} ) - endif () -endif () -if ( DEFINED CPACK_PACKAGING_INSTALL_PREFIX ) - get_filename_component ( prefix_name ${CPACK_PACKAGING_INSTALL_PREFIX} NAME ) - get_filename_component ( prefix_dir ${CPACK_PACKAGING_INSTALL_PREFIX} DIRECTORY ) - if ( prefix_name STREQUAL ${DEST_NAME} ) - set ( CPACK_PACKAGING_INSTALL_PREFIX ${prefix_dir} ) - endif () -else () - set ( CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} ) -endif () -message ( "CMake-install-prefix: ${CMAKE_INSTALL_PREFIX}" ) -message ( "CPack-install-prefix: ${CPACK_PACKAGING_INSTALL_PREFIX}" ) -message ( "-----------Dest-name: ${DEST_NAME}" ) - ## Install headers -install ( FILES - ${CMAKE_CURRENT_SOURCE_DIR}/src/core/activity.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${DEST_NAME} - COMPONENT dev ) +install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/src/core/activity.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${ROCPROFILER_NAME} + COMPONENT dev ) # rpl_run.sh -install ( FILES - ${CMAKE_CURRENT_SOURCE_DIR}/bin/rpl_run.sh - DESTINATION ${CMAKE_INSTALL_BINDIR} - PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - RENAME rocprof - COMPONENT runtime ) +install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/bin/rpl_run.sh + DESTINATION ${CMAKE_INSTALL_BINDIR} + PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + RENAME rocprof + COMPONENT runtime ) + +configure_file(bin/rocprofv2 ${PROJECT_BINARY_DIR} COPYONLY) +install(FILES + ${PROJECT_SOURCE_DIR}/bin/rocprofv2 + DESTINATION ${CMAKE_INSTALL_BINDIR} + PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + COMPONENT runtime) + +install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/bin/txt2xml.sh + ${CMAKE_CURRENT_SOURCE_DIR}/bin/merge_traces.sh + ${CMAKE_CURRENT_SOURCE_DIR}/bin/txt2params.py + ${CMAKE_CURRENT_SOURCE_DIR}/bin/tblextr.py + ${CMAKE_CURRENT_SOURCE_DIR}/bin/dform.py + ${CMAKE_CURRENT_SOURCE_DIR}/bin/mem_manager.py + ${CMAKE_CURRENT_SOURCE_DIR}/bin/sqlitedb.py + DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${ROCPROFILER_NAME} + PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + COMPONENT runtime ) -install ( FILES - ${CMAKE_CURRENT_SOURCE_DIR}/bin/txt2xml.sh - ${CMAKE_CURRENT_SOURCE_DIR}/bin/merge_traces.sh - ${CMAKE_CURRENT_SOURCE_DIR}/bin/txt2params.py - ${CMAKE_CURRENT_SOURCE_DIR}/bin/tblextr.py - ${CMAKE_CURRENT_SOURCE_DIR}/bin/dform.py - ${CMAKE_CURRENT_SOURCE_DIR}/bin/mem_manager.py - ${CMAKE_CURRENT_SOURCE_DIR}/bin/sqlitedb.py - DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${DEST_NAME} - PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - COMPONENT runtime ) # 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 ${CMAKE_INSTALL_LIBDIR}/${DEST_NAME} - COMPONENT runtime ) +install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/test/tool/metrics.xml + ${CMAKE_CURRENT_SOURCE_DIR}/test/tool/gfx_metrics.xml + DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} + COMPONENT runtime ) + # librocprof-tool.so -install ( FILES ${PROJECT_BINARY_DIR}/test/librocprof-tool.so DESTINATION ${CMAKE_INSTALL_LIBDIR}/${DEST_NAME} - COMPONENT runtime ) -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 - COMPONENT runtime ) +install(FILES ${PROJECT_BINARY_DIR}/test/librocprof-tool.so DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} + COMPONENT runtime ) + +install(FILES ${PROJECT_BINARY_DIR}/test/rocprof-ctrl DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + COMPONENT runtime ) # File reorg Backward compatibility -# option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON) -# if(FILE_REORG_BACKWARD_COMPATIBILITY) -# include (rocprofiler-backward-compat.cmake) -# endif() +option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON) +if(FILE_REORG_BACKWARD_COMPATIBILITY) + include (rocprofiler-backward-compat.cmake) +endif() if(${LIBRARY_TYPE} STREQUAL SHARED) - # # Installation and packaging + ## Installation and packaging if(DEFINED CPACK_PACKAGING_INSTALL_PREFIX) get_filename_component(DEST_NAME ${CPACK_PACKAGING_INSTALL_PREFIX} NAME) get_filename_component(DEST_DIR ${CPACK_PACKAGING_INSTALL_PREFIX} DIRECTORY) set(CPACK_PACKAGING_INSTALL_PREFIX ${DEST_DIR}) + else() + set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) endif() - message("-----------Dest-name: ${DEST_NAME}") message("------Install-prefix: ${CMAKE_INSTALL_PREFIX}") message("-----------CPACK-dir: ${CPACK_PACKAGING_INSTALL_PREFIX}") ## Packaging directives - set(CPACK_GENERATOR "DEB" "RPM" "TGZ" CACHE STRING "CPACK GENERATOR DEB;RPM") + set(CPACK_GENERATOR "DEB" "RPM" "TGZ") set(ENABLE_LDCONFIG ON CACHE BOOL "Set library links and caches using ldconfig.") set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") @@ -238,7 +219,7 @@ if(${LIBRARY_TYPE} STREQUAL SHARED) set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") set(CPACK_PACKAGE_CONTACT "ROCm Profiler Support ") - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "AMD ROCMTOOLS library") + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ROCPROFILER library for AMD HSA runtime API extension support") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") if(DEFINED ENV{ROCM_LIBPATCH_VERSION}) @@ -246,12 +227,12 @@ if(${LIBRARY_TYPE} STREQUAL SHARED) message("Using CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}") endif() - # # Install license file + ## Install license file install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT runtime) - # # Debian package specific variables + ## Debian package specific variables if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE}) set(CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE}) else() @@ -274,12 +255,7 @@ if(${LIBRARY_TYPE} STREQUAL SHARED) set(CPACK_DEBIAN_PLUGINS_PACKAGE_NAME "${PROJECT_NAME}-plugins") set(CPACK_DEBIAN_PLUGINS_PACKAGE_DEPENDS "${PROJECT_NAME}, hsa-rocr-dev, rocm-core") -## Process the Debian install/remove scripts to update the CPACK variables -configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst.in DEBIAN/postinst @ONLY ) -configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm.in DEBIAN/prerm @ONLY ) -set ( CPACK_DEBIAN_RUNTIME_PACKAGE_CONTROL_EXTRA "DEBIAN/postinst;DEBIAN/prerm" ) - - # # RPM package specific variables + ## RPM package specific variables if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE}) set(CPACK_RPM_PACKAGE_RELEASE $ENV{CPACK_RPM_PACKAGE_RELEASE}) else() @@ -290,7 +266,7 @@ set ( CPACK_DEBIAN_RUNTIME_PACKAGE_CONTROL_EXTRA "DEBIAN/postinst;DEBIAN/prerm" set(CPACK_RPM_PACKAGE_LICENSE "MIT") - # # 'dist' breaks manual builds on debian systems due to empty Provides + ## 'dist' breaks manual builds on debian systems due to empty Provides execute_process(COMMAND rpm --eval %{?dist} RESULT_VARIABLE PROC_RESULT OUTPUT_VARIABLE EVAL_RESULT @@ -319,14 +295,8 @@ set ( CPACK_DEBIAN_RUNTIME_PACKAGE_CONTROL_EXTRA "DEBIAN/postinst;DEBIAN/prerm" set(CPACK_RPM_PLUGINS_PACKAGE_REQUIRES "${PROJECT_NAME}, hsa-rocr-dev, rocm-core") message("CPACK_RPM_PACKAGE_RELEASE: ${CPACK_RPM_PACKAGE_RELEASE}") -## Process the Rpm install/remove scripts to update the CPACK variables -configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/RPM/post.in" RPM/post @ONLY ) -configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/RPM/postun.in" RPM/postun @ONLY ) - -set ( CPACK_RPM_RUNTIME_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/RPM/post" ) -set ( CPACK_RPM_RUNTIME_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/RPM/postun" ) # Remove dependency on rocm-core if -DROCM_DEP_ROCMCORE=ON not given to cmake - if(NOT ROCM_DEP_ROCMCORE) +if(NOT ROCM_DEP_ROCMCORE) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_RUNTIME_PACKAGE_REQUIRES ${CPACK_RPM_RUNTIME_PACKAGE_REQUIRES}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_DEV_PACKAGE_REQUIRES ${CPACK_RPM_DEV_PACKAGE_REQUIRES}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_TESTS_PACKAGE_REQUIRES ${CPACK_RPM_TESTS_PACKAGE_REQUIRES}) @@ -339,39 +309,39 @@ set ( CPACK_RPM_RUNTIME_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/ string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_SAMPLES_PACKAGE_DEPENDS ${CPACK_DEBIAN_SAMPLES_PACKAGE_DEPENDS}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_DOCS_PACKAGE_DEPENDS ${CPACK_DEBIAN_DOCS_PACKAGE_DEPENDS}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_PLUGINS_PACKAGE_DEPENDS ${CPACK_DEBIAN_PLUGINS_PACKAGE_DEPENDS}) - endif() - - set(CPACK_COMPONENTS_ALL runtime dev tests docs plugins samples) - include(CPack) +endif() - cpack_add_component(runtime - DISPLAY_NAME "Runtime" - DESCRIPTION "Dynamic libraries for the ROCProfiler") +set(CPACK_COMPONENTS_ALL runtime dev tests docs plugins samples) +include(CPack) - cpack_add_component(dev - DISPLAY_NAME "Development" - DESCRIPTION "Development needed header files for ROCProfiler" - DEPENDS runtime) +cpack_add_component(runtime + DISPLAY_NAME "Runtime" + DESCRIPTION "Dynamic libraries for the ROCProfiler") - cpack_add_component(plugins - DISPLAY_NAME "ROCProfile Plugins" - DESCRIPTION "Plugins for handling ROCProfiler data output" - DEPENDS runtime) +cpack_add_component(dev + DISPLAY_NAME "Development" + DESCRIPTION "Development needed header files for ROCProfiler" + DEPENDS runtime) - cpack_add_component(tests - DISPLAY_NAME "Tests" - DESCRIPTION "Tests for the ROCProfiler" - DEPENDS dev) +cpack_add_component(plugins + DISPLAY_NAME "ROCProfile Plugins" + DESCRIPTION "Plugins for handling ROCProfiler data output" + DEPENDS runtime) - cpack_add_component(samples - DISPLAY_NAME "Samples" - DESCRIPTION "Samples for the ROCProfiler" - DEPENDS dev) +cpack_add_component(tests + DISPLAY_NAME "Tests" + DESCRIPTION "Tests for the ROCProfiler" + DEPENDS dev) - cpack_add_component(docs - DISPLAY_NAME "Documentation" - DESCRIPTION "Documentation for the ROCProfiler API" - DEPENDS dev) +cpack_add_component(samples + DISPLAY_NAME "Samples" + DESCRIPTION "Samples for the ROCProfiler" + DEPENDS dev) + +cpack_add_component(docs + DISPLAY_NAME "Documentation" + DESCRIPTION "Documentation for the ROCProfiler API" + DEPENDS dev) endif() find_package(Doxygen) diff --git a/rocprofv2 b/bin/rocprofv2 similarity index 100% rename from rocprofv2 rename to bin/rocprofv2 diff --git a/build.sh b/build.sh index 5794afa382..1178d59951 100755 --- a/build.sh +++ b/build.sh @@ -88,4 +88,4 @@ cmake \ make -j -exit 0 \ No newline at end of file +exit 0 diff --git a/cmake_modules/env.cmake b/cmake_modules/env.cmake index e7e0dec376..664757803c 100644 --- a/cmake_modules/env.cmake +++ b/cmake_modules/env.cmake @@ -45,16 +45,6 @@ if ( DEFINED ENV{CMAKE_LD_AQLPROFILE} ) add_definitions ( -DROCP_LD_AQLPROFILE=1 ) endif() -## Make env vars -if ( NOT DEFINED CMAKE_BUILD_TYPE OR "${CMAKE_BUILD_TYPE}" STREQUAL "" ) - if ( DEFINED ENV{CMAKE_BUILD_TYPE} ) - set ( CMAKE_BUILD_TYPE $ENV{CMAKE_BUILD_TYPE} ) - endif() -endif() -if ( NOT DEFINED CMAKE_PREFIX_PATH AND DEFINED ENV{CMAKE_PREFIX_PATH} ) - set ( CMAKE_PREFIX_PATH $ENV{CMAKE_PREFIX_PATH} ) -endif() - ## Find hsa-runtime find_package(hsa-runtime64 CONFIG REQUIRED HINTS ${CMAKE_INSTALL_PREFIX} PATHS /opt/rocm PATH_SUFFIXES lib/cmake/hsa-runtime64 ) diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index 9c8e29610e..f3ab20ff6c 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -128,7 +128,6 @@ check_c_source_compiles(" hsa-runtime64::hsa-runtime64 Threads::Threads dl) target_include_directories(pc_sampling_code_printing PRIVATE - INTERFACE_INCLUDE_DIRECTORIES ${TEST_DIR} ${ROOT_DIR} ${HSA_RUNTIME_INC_PATH}