diff --git a/projects/rocprofiler/CMakeLists.txt b/projects/rocprofiler/CMakeLists.txt index b3aa0d5bd0..6b087c58aa 100644 --- a/projects/rocprofiler/CMakeLists.txt +++ b/projects/rocprofiler/CMakeLists.txt @@ -201,6 +201,7 @@ 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 @@ -244,6 +245,11 @@ install( DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} COMPONENT runtime) +install( + FILES ${PROJECT_BINARY_DIR}/test/librocprof-tool.so + DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} + COMPONENT asan) + install( FILES ${PROJECT_BINARY_DIR}/test/rocprof-ctrl DESTINATION ${CMAKE_INSTALL_LIBDIR}/${ROCPROFILER_NAME} @@ -257,9 +263,13 @@ install( WORLD_EXECUTE COMPONENT runtime) -# File reorg Backward compatibility -option(FILE_REORG_BACKWARD_COMPATIBILITY +# File reorg backward compatibility for non ASAN packaging +if ( NOT ENABLE_ASAN_PACKAGING ) + # File reorg Backward compatibility + option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON) +endif() + if(FILE_REORG_BACKWARD_COMPATIBILITY) # To enabe/disable #error in wrapper header files if(NOT DEFINED ROCM_HEADER_WRAPPER_WERROR) @@ -305,11 +315,21 @@ if(${LIBRARY_TYPE} STREQUAL SHARED) message("Using CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}") endif() + + + # Debian package specific variable for ASAN + set ( CPACK_DEBIAN_ASAN_PACKAGE_NAME "${ROCPROFILER_NAME}-asan" ) + set ( CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS "hsa-rocr-asan, rocm-core-asan" ) + # Install license file install( FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT runtime) + install( + FILES ${CPACK_RESOURCE_FILE_LICENSE} + DESTINATION ${CMAKE_INSTALL_DOCDIR}-asan + COMPONENT asan) # Debian package specific variables if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE}) @@ -384,12 +404,18 @@ if(${LIBRARY_TYPE} STREQUAL SHARED) "${PROJECT_NAME}, hsa-rocr-dev, rocm-core") message("CPACK_RPM_PACKAGE_RELEASE: ${CPACK_RPM_PACKAGE_RELEASE}") + # RPM package specific variable for ASAN + set ( CPACK_RPM_ASAN_PACKAGE_NAME "${ROCPROFILER_NAME}-asan" ) + set ( CPACK_RPM_ASAN_PACKAGE_REQUIRES "hsa-rocr-asan, rocm-core-asan" ) + # Remove dependency on rocm-core if -DROCM_DEP_ROCMCORE=ON not given to cmake 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-asan" "" CPACK_RPM_ASAN_PACKAGE_REQUIRES + ${CPACK_RPM_ASAN_PACKAGE_REQUIRES}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_TESTS_PACKAGE_REQUIRES ${CPACK_RPM_TESTS_PACKAGE_REQUIRES}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_RPM_SAMPLES_PACKAGE_REQUIRES @@ -403,6 +429,8 @@ if(${LIBRARY_TYPE} STREQUAL SHARED) ${CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_DEV_PACKAGE_DEPENDS ${CPACK_DEBIAN_DEV_PACKAGE_DEPENDS}) + string(REGEX REPLACE ",? ?rocm-core-asan" "" CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS + ${CPACK_DEBIAN_ASAN_PACKAGE_DEPENDS}) string(REGEX REPLACE ",? ?rocm-core" "" CPACK_DEBIAN_TESTS_PACKAGE_DEPENDS ${CPACK_DEBIAN_TESTS_PACKAGE_DEPENDS}) string(REGEX @@ -415,7 +443,14 @@ if(${LIBRARY_TYPE} STREQUAL SHARED) ${CPACK_DEBIAN_PLUGINS_PACKAGE_DEPENDS}) endif() - set(CPACK_COMPONENTS_ALL runtime dev tests docs plugins samples) + ## set components + if(ENABLE_ASAN_PACKAGING) + # ASAN Package requires only asan component with libraries and license file + set(CPACK_COMPONENTS_ALL asan) + else() + set(CPACK_COMPONENTS_ALL runtime dev tests docs plugins samples) + endif() + include(CPack) cpack_add_component( @@ -452,6 +487,12 @@ if(${LIBRARY_TYPE} STREQUAL SHARED) DISPLAY_NAME "Documentation" DESCRIPTION "Documentation for the ROCProfiler API" DEPENDS dev) + + cpack_add_component( + asan + DISPLAY_NAME "ASAN" + DESCRIPTION "ASAN libraries for the ROCPROFILER" + DEPENDS asan) endif() find_package(Doxygen) @@ -492,3 +533,4 @@ if(DOXYGEN_FOUND) OPTIONAL COMPONENT docs) endif() + diff --git a/projects/rocprofiler/plugin/att/CMakeLists.txt b/projects/rocprofiler/plugin/att/CMakeLists.txt index 386e4cf556..021f27dfdf 100644 --- a/projects/rocprofiler/plugin/att/CMakeLists.txt +++ b/projects/rocprofiler/plugin/att/CMakeLists.txt @@ -48,6 +48,9 @@ target_link_options( target_link_libraries(att_plugin PRIVATE ${ROCPROFILER_TARGET} hsa-runtime64::hsa-runtime64 stdc++fs) +install(TARGETS att_plugin + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} + COMPONENT asan) install(TARGETS att_plugin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} COMPONENT runtime) diff --git a/projects/rocprofiler/plugin/file/CMakeLists.txt b/projects/rocprofiler/plugin/file/CMakeLists.txt index 52c11b6b99..9939ede3ad 100644 --- a/projects/rocprofiler/plugin/file/CMakeLists.txt +++ b/projects/rocprofiler/plugin/file/CMakeLists.txt @@ -41,4 +41,7 @@ target_link_libraries(file_plugin PRIVATE ${ROCPROFILER_TARGET} hsa-runtime64::h install(TARGETS file_plugin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} - COMPONENT runtime) \ No newline at end of file + COMPONENT asan) +install(TARGETS file_plugin LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} + COMPONENT runtime) diff --git a/projects/rocprofiler/src/api/CMakeLists.txt b/projects/rocprofiler/src/api/CMakeLists.txt index d2c5130fd1..566b9340d4 100644 --- a/projects/rocprofiler/src/api/CMakeLists.txt +++ b/projects/rocprofiler/src/api/CMakeLists.txt @@ -251,6 +251,7 @@ endif() ## Install libraries: Non versioned lib file in dev package install ( TARGETS ${ROCPROFILER_TARGET} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev NAMELINK_ONLY ) install ( TARGETS ${ROCPROFILER_TARGET} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime NAMELINK_SKIP ) +install ( TARGETS ${ROCPROFILER_TARGET} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT asan ) configure_file(${PROJECT_SOURCE_DIR}/src/core/counters/metrics/basic_counters.xml ${PROJECT_BINARY_DIR}/counters/basic_counters.xml COPYONLY) configure_file(${PROJECT_SOURCE_DIR}/src/core/counters/metrics/derived_counters.xml ${PROJECT_BINARY_DIR}/counters/derived_counters.xml COPYONLY) diff --git a/projects/rocprofiler/src/tools/CMakeLists.txt b/projects/rocprofiler/src/tools/CMakeLists.txt index 908b13627e..4d1a723619 100644 --- a/projects/rocprofiler/src/tools/CMakeLists.txt +++ b/projects/rocprofiler/src/tools/CMakeLists.txt @@ -36,6 +36,9 @@ endif() install(TARGETS rocprofiler_tool LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime) +install(TARGETS rocprofiler_tool LIBRARY + DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT asan) add_subdirectory(amdsys) add_subdirectory(rocprofv2) @@ -49,4 +52,4 @@ install(TARGETS ctrl RUNTIME COMPONENT runtime) -# ############################################################################################################################################ \ No newline at end of file +# ############################################################################################################################################