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