From 9ee831c09f4d0eea853b96fe501120d955449e95 Mon Sep 17 00:00:00 2001 From: Ranjith Ramakrishnan Date: Tue, 17 Jan 2023 14:01:03 -0800 Subject: [PATCH] Split roctracer to runtime and dev/devel package SWDEV-356024 - Development package name will have suffix dev or devel based on OS Devel package contents - Header files, name link of public library files, html files and roctracer manual file Runtime package contents - Versioned public library files, private library files and license file Change-Id: I8ced3eab5d8824a66be39b9e777368506516b155 [ROCm/roctracer commit: 9acba8b4a19d16f1993d8353c3d690d4d1465adc] --- projects/roctracer/CMakeLists.txt | 26 ++++++++++++++----- .../roctracer/roctracer-backward-compat.cmake | 4 +-- projects/roctracer/src/CMakeLists.txt | 16 +++++++++--- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/projects/roctracer/CMakeLists.txt b/projects/roctracer/CMakeLists.txt index 89125632d8..27437652d2 100644 --- a/projects/roctracer/CMakeLists.txt +++ b/projects/roctracer/CMakeLists.txt @@ -76,7 +76,7 @@ message("-----------CPACK-dir: ${CPACK_PACKAGING_INSTALL_PREFIX}") ## Packaging directives set(CPACK_GENERATOR "DEB" "RPM" "TGZ" CACHE STRING "CPACK GENERATOR DEB;RPM") set(ENABLE_LDCONFIG ON CACHE BOOL "Set library links and caches using ldconfig.") -set(CPACK_PACKAGE_NAME "${PROJECT_NAME}-dev") +set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") set(CPACK_PACKAGE_VENDOR "Advanced Micro Devices, Inc.") set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) @@ -105,8 +105,10 @@ endif() message("Using CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_DEBIAN_PACKAGE_RELEASE}") set(CPACK_DEB_COMPONENT_INSTALL ON) set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") -set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME "${PROJECT_NAME}-dev") +set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME "${PROJECT_NAME}") set(CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS "rocm-core") +set(CPACK_DEBIAN_DEV_PACKAGE_NAME "${PROJECT_NAME}-dev") +set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "${PROJECT_NAME}, rocm-core") set(CPACK_DEBIAN_TESTS_PACKAGE_NAME "${PROJECT_NAME}-tests") set(CPACK_DEBIAN_TESTS_PACKAGE_DEPENDS "${PROJECT_NAME}-dev") @@ -132,18 +134,24 @@ if(PROC_RESULT EQUAL "0" AND NOT EVAL_RESULT STREQUAL "") endif() set(CPACK_RPM_COMPONENT_INSTALL ON) set(CPACK_RPM_FILE_NAME "RPM-DEFAULT") -set(CPACK_RPM_RUNTIME_PACKAGE_NAME "${PROJECT_NAME}-dev") +set(CPACK_RPM_RUNTIME_PACKAGE_NAME "${PROJECT_NAME}") set(CPACK_RPM_RUNTIME_PACKAGE_REQUIRES "rocm-core") +set(CPACK_RPM_DEV_PACKAGE_NAME "${PROJECT_NAME}-devel") +set(CPACK_RPM_DEV_PACKAGE_REQUIRES "${PROJECT_NAME}, rocm-core") +set(CPACK_RPM_DEV_PACKAGE_PROVIDES "${PROJECT_NAME}-dev") +set(CPACK_RPM_DEV_PACKAGE_OBSOLETES "${PROJECT_NAME}-dev") set(CPACK_RPM_TESTS_PACKAGE_NAME "${PROJECT_NAME}-tests") -set(CPACK_RPM_TESTS_PACKAGE_REQUIRES "${PROJECT_NAME}-dev") +set(CPACK_RPM_TESTS_PACKAGE_REQUIRES "${PROJECT_NAME}-devel") message("CPACK_RPM_PACKAGE_RELEASE: ${CPACK_RPM_PACKAGE_RELEASE}") 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_DEBIAN_RUNTIME_PACKAGE_DEPENDS ${CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS}) + string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_DEV_PACKAGE_DEPENDS ${CPACK_DEBIAN_DEV_PACKAGE_DEPENDS}) endif() -set(CPACK_COMPONENTS_ALL runtime) +set(CPACK_COMPONENTS_ALL runtime dev) include(CPack) @@ -151,6 +159,10 @@ cpack_add_component(runtime DISPLAY_NAME "Runtime" DESCRIPTION "Dynamic libraries for the ROCtracer") +cpack_add_component(dev + DISPLAY_NAME "Devel" + DESCRIPTION "Header files and documentation for ROCtracer") + cpack_add_component(tests DISPLAY_NAME "Tests" DESCRIPTION "Tests for the ROCtracer" @@ -183,11 +195,11 @@ if(DOXYGEN_FOUND) DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME "roctracer.pdf" OPTIONAL - COMPONENT runtime) + COMPONENT dev) install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html/" DESTINATION ${CMAKE_INSTALL_DATADIR}/html/${PROJECT_NAME} OPTIONAL - COMPONENT runtime) + COMPONENT dev) endif() diff --git a/projects/roctracer/roctracer-backward-compat.cmake b/projects/roctracer/roctracer-backward-compat.cmake index dd7a612ae6..36b49ea7b9 100644 --- a/projects/roctracer/roctracer-backward-compat.cmake +++ b/projects/roctracer/roctracer-backward-compat.cmake @@ -109,8 +109,8 @@ endfunction() #Use template header file and generater wrapper header files generate_wrapper_header() -install(DIRECTORY ${ROCT_WRAPPER_INC_DIR} DESTINATION ${PROJECT_NAME} COMPONENT runtime) +install(DIRECTORY ${ROCT_WRAPPER_INC_DIR} DESTINATION ${PROJECT_NAME} COMPONENT dev) create_library_symlink() -install(DIRECTORY ${ROCT_WRAPPER_LIB_DIR} DESTINATION ${PROJECT_NAME} COMPONENT runtime) +install(DIRECTORY ${ROCT_WRAPPER_LIB_DIR} DESTINATION ${PROJECT_NAME} COMPONENT dev) #install soft link to tool #install(DIRECTORY ${ROCT_WRAPPER_TOOL_DIR} DESTINATION ${PROJECT_NAME}) diff --git a/projects/roctracer/src/CMakeLists.txt b/projects/roctracer/src/CMakeLists.txt index 90bd2e9045..3505cf062b 100644 --- a/projects/roctracer/src/CMakeLists.txt +++ b/projects/roctracer/src/CMakeLists.txt @@ -107,7 +107,7 @@ foreach(header ${PUBLIC_HEADERS}) get_filename_component(header_subdir ${header} DIRECTORY) install(FILES ${PROJECT_SOURCE_DIR}/inc/${header} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${header_subdir} - COMPONENT runtime) + COMPONENT dev) endforeach() set(GENERATED_HEADERS @@ -118,7 +118,7 @@ set(GENERATED_HEADERS foreach(header ${GENERATED_HEADERS}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${header} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} - COMPONENT runtime) + COMPONENT dev) endforeach() ## Build the util library @@ -170,7 +170,11 @@ target_link_libraries(roctracer PRIVATE util hsa-runtime64::hsa-runtime64 stdc++ install(TARGETS roctracer LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - COMPONENT runtime) + COMPONENT runtime NAMELINK_SKIP) +## Install name link library in dev component +install(TARGETS roctracer LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT dev NAMELINK_ONLY) ## Build the ROCTX library file(GLOB ROCTX_SOURCES "roctx/*.cpp") @@ -192,7 +196,11 @@ target_link_options(roctx PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DI install(TARGETS roctx LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - COMPONENT runtime) + COMPONENT runtime NAMELINK_SKIP) +## Install name link library in dev component +install(TARGETS roctx LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT dev NAMELINK_ONLY) ## Build the tracer_tool library if (${LIBRARY_TYPE} STREQUAL SHARED)