From 709e300d9b7e17056faff286ef6e7de8871c35f3 Mon Sep 17 00:00:00 2001 From: Ranjith Ramakrishnan Date: Tue, 21 Jun 2022 10:06:43 -0700 Subject: [PATCH] SWDEV-321112: Use GNUInstallDirs Use GNUInstallDirs variables to determine the location of BINDIR, LIBDIR, INCLUDEDIR, DATADIR, DOCDIR, LIBEXECDIR. Depends-On: Id11f862fb4bdb2425d68f455074172c38814ec92 Change-Id: I6459a4531ef899321a5e2d8050cf8b553e89a968 --- CMakeLists.txt | 7 ++++--- roctracer-backward-compat.cmake | 8 ++++---- src/CMakeLists.txt | 12 ++++++------ 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a4ecb0ef6..416702f34c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ cmake_minimum_required(VERSION 3.18.0) project(roctracer VERSION 4.1.0) +include(GNUInstallDirs) # set default ROCM_PATH if(NOT DEFINED ROCM_PATH) set(ROCM_PATH "/opt/rocm" CACHE STRING "Default ROCM installation directory") @@ -89,7 +90,7 @@ endif() ## Install license file install(FILES ${CPACK_RESOURCE_FILE_LICENSE} - DESTINATION share/doc/${PROJECT_NAME} + DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT runtime) ## Debian package specific variables @@ -176,14 +177,14 @@ if(DOXYGEN_FOUND) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/doc/latex/refman.pdf" - DESTINATION share/doc/${PROJECT_NAME} + DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME "roctracer.pdf" OPTIONAL COMPONENT runtime) install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html/" - DESTINATION share/html/${PROJECT_NAME} + DESTINATION ${CMAKE_INSTALL_DATADIR}/html/${PROJECT_NAME} OPTIONAL COMPONENT runtime) endif() diff --git a/roctracer-backward-compat.cmake b/roctracer-backward-compat.cmake index 89ae525793..dd7a612ae6 100644 --- a/roctracer-backward-compat.cmake +++ b/roctracer-backward-compat.cmake @@ -53,10 +53,10 @@ function(generate_wrapper_header) get_filename_component(file_name ${header_file} NAME) get_filename_component ( header_subdir ${header_file} DIRECTORY ) if(header_subdir) - set(include_statements "#include \"../../../include/${PROJECT_NAME}/${header_subdir}/${file_name}\"\n") + set(include_statements "#include \"../../../${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${header_subdir}/${file_name}\"\n") configure_file(${PROJECT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${header_subdir}/${file_name}) else() - set(include_statements "#include \"../../include/${PROJECT_NAME}/${file_name}\"\n") + set(include_statements "#include \"../../${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${file_name}\"\n") if(${file_name} STREQUAL "roctracer.h") set_file_contents(${PROJECT_SOURCE_DIR}/inc/${file_name}) else() @@ -72,7 +72,7 @@ function(generate_wrapper_header) set(include_guard "ROCTRACER_WRAPPER_INCLUDE_${INC_GAURD_NAME}_H") #set include statements get_filename_component(file_name ${header_file} NAME) - set(include_statements "#include \"../../include/${PROJECT_NAME}/${file_name}\"\n") + set(include_statements "#include \"../../${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${file_name}\"\n") configure_file(${PROJECT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${file_name}) endforeach() @@ -94,7 +94,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} ${ROCT_WRAPPER_LIB_DIR}/${file_name}) + ../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${ROCT_WRAPPER_LIB_DIR}/${file_name}) endforeach() #set softlink for roctracer/tool/libtracer_tool.so #The libray name is changed to libroctracer_tool.so with file reorg changes diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bd9ecc1170..7eacf5d931 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -105,7 +105,7 @@ set(PUBLIC_HEADERS foreach(header ${PUBLIC_HEADERS}) get_filename_component(header_subdir ${header} DIRECTORY) install(FILES ${PROJECT_SOURCE_DIR}/inc/${header} - DESTINATION include/${PROJECT_NAME}/${header_subdir} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${header_subdir} COMPONENT runtime) endforeach() @@ -116,7 +116,7 @@ set(GENERATED_HEADERS foreach(header ${GENERATED_HEADERS}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${header} - DESTINATION include/${PROJECT_NAME} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} COMPONENT runtime) endforeach() @@ -148,7 +148,7 @@ target_link_options(roctracer PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURC target_link_libraries(roctracer PRIVATE hsa-runtime64::hsa-runtime64 Threads::Threads dl) install(TARGETS roctracer LIBRARY - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime) ## Build the ROCTX library @@ -170,7 +170,7 @@ target_include_directories(roctx target_link_options(roctx PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/roctx/exportmap -Wl,--no-undefined) install(TARGETS roctx LIBRARY - DESTINATION lib + DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime) ## Build the tracer_tool library @@ -194,12 +194,12 @@ target_include_directories(roctracer_tool target_link_libraries(roctracer_tool roctracer hsa-runtime64::hsa-runtime64 Threads::Threads atomic dl) target_link_options(roctracer_tool PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/tracer_tool/exportmap -Wl,--no-undefined) -install(TARGETS roctracer_tool LIBRARY DESTINATION lib/${PROJECT_NAME} COMPONENT runtime) +install(TARGETS roctracer_tool LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} COMPONENT runtime) add_library(hip_stats SHARED hip_stats/hip_stats.cpp) target_compile_definitions(hip_stats PRIVATE __HIP_PLATFORM_AMD__) target_link_libraries(hip_stats roctracer stdc++fs) -install(TARGETS hip_stats LIBRARY DESTINATION lib/${PROJECT_NAME} COMPONENT runtime) +install(TARGETS hip_stats LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME} COMPONENT runtime) endif()