From e7cf2fc25fbc5fbe3b6f1d90878c59e8924c5d68 Mon Sep 17 00:00:00 2001 From: Lauren Wrubleski Date: Thu, 13 Jul 2023 14:06:38 -0600 Subject: [PATCH 1/3] Add argument to install non-target for ASAN builds --- share/rocm/cmake/ROCMInstallTargets.cmake | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/share/rocm/cmake/ROCMInstallTargets.cmake b/share/rocm/cmake/ROCMInstallTargets.cmake index eaa9e147..b572b674 100644 --- a/share/rocm/cmake/ROCMInstallTargets.cmake +++ b/share/rocm/cmake/ROCMInstallTargets.cmake @@ -66,6 +66,16 @@ function(rocm_install) if(ARGV0 STREQUAL "TARGETS") # rocm_install_targets deals with the component in its own fashion. rocm_install_targets("${ARGN}") + elseif(ENABLE_ASAN_PACKAGING) + set(oneValueArgs ASAN_DESTINATION DESTINATION COMPONENT) + cmake_parse_arguments(PARSE "" "${oneValueArgs}" "" ${ARGN}) + if(DEFINED PARSE_ASAN_DESTINATION) + install( + ${PARSE_UNPARSED_ARGUMENTS} + DESTINATION ${PARSE_ASAN_DESTINATION} + COMPONENT runtime + ) + endif() elseif(NOT ROCM_USE_DEV_COMPONENT) # If we want legacy behaviour, directly call install with no meddling. install(${ARGN}) From cdca4a0584446520e1beb554eb7023666fc169a8 Mon Sep 17 00:00:00 2001 From: Lauren Wrubleski Date: Thu, 13 Jul 2023 14:07:09 -0600 Subject: [PATCH 2/3] Add flag to block installation of targets for ASAN --- share/rocm/cmake/ROCMInstallTargets.cmake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/share/rocm/cmake/ROCMInstallTargets.cmake b/share/rocm/cmake/ROCMInstallTargets.cmake index b572b674..4716f3bc 100644 --- a/share/rocm/cmake/ROCMInstallTargets.cmake +++ b/share/rocm/cmake/ROCMInstallTargets.cmake @@ -129,12 +129,16 @@ endfunction() option(ROCM_SYMLINK_LIBS "Create backwards compatibility symlink for library files." ON) function(rocm_install_targets) - set(options) + set(options PRIVATE) set(oneValueArgs PREFIX EXPORT COMPONENT) set(multiValueArgs TARGETS INCLUDE) cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + if(PARSE_PRIVATE AND ENABLE_ASAN_PACKAGING) + return() + endif() + string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER) set(EXPORT_FILE ${PROJECT_NAME_LOWER}-targets) if(PARSE_EXPORT) From 6e57e4cb49d85b6358e1843e36778df128246c9c Mon Sep 17 00:00:00 2001 From: Lauren Wrubleski Date: Thu, 13 Jul 2023 16:15:06 -0600 Subject: [PATCH 3/3] Adjust paths for binaries marked private --- share/rocm/cmake/ROCMInstallTargets.cmake | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/share/rocm/cmake/ROCMInstallTargets.cmake b/share/rocm/cmake/ROCMInstallTargets.cmake index 4716f3bc..767d33e3 100644 --- a/share/rocm/cmake/ROCMInstallTargets.cmake +++ b/share/rocm/cmake/ROCMInstallTargets.cmake @@ -135,10 +135,6 @@ function(rocm_install_targets) cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if(PARSE_PRIVATE AND ENABLE_ASAN_PACKAGING) - return() - endif() - string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER) set(EXPORT_FILE ${PROJECT_NAME_LOWER}-targets) if(PARSE_EXPORT) @@ -151,7 +147,7 @@ function(rocm_install_targets) set(LIB_INSTALL_DIR ${PARSE_PREFIX}/${ROCM_INSTALL_LIBDIR}) set(INCLUDE_INSTALL_DIR ${PARSE_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}) elseif(ENABLE_ASAN_PACKAGING) - set(BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR}) + set(BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR}/asan) set(LIB_INSTALL_DIR ${ROCM_INSTALL_LIBDIR}/asan) set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}) else() @@ -160,6 +156,11 @@ function(rocm_install_targets) set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}) endif() + if (PARSE_PRIVATE) + set(BIN_INSTALL_DIR ${BIN_INSTALL_DIR}/${PROJECT_NAME}) + set(LIB_INSTALL_DIR ${LIB_INSTALL_DIR}/${PROJECT_NAME}) + endif() + foreach(TARGET ${PARSE_TARGETS}) foreach(INCLUDE ${PARSE_INCLUDE}) get_filename_component(INCLUDE_PATH ${INCLUDE} ABSOLUTE)