OpenMP: Correctly query location for amdgpu-arch

This was trying to figure out the build path for amdgpu-arch, and
making assumptions about where it is which were not working on my
system. Whether a standalone build or not, we should have a proper
imported target to get the location from.
This commit is contained in:
Matt Arsenault 2021-11-19 08:33:20 -05:00
parent 4f215bfa6e
commit 935abeaace
1 changed files with 8 additions and 15 deletions

View File

@ -98,27 +98,20 @@ target_link_libraries(
${LDFLAGS_UNDEFINED}
)
if (LLVM_BINARY_DIR)
# for in-tree build using LLVM_ENABLE_RUNTIMES
set(AMDGPU_ARCH_TOOL "${LLVM_BINARY_DIR}/bin/amdgpu-arch")
elseif (OPENMP_LLVM_TOOLS_DIR)
set(AMDGPU_ARCH_TOOL "${OPENMP_LLVM_TOOLS_DIR}/amdgpu-arch")
else()
set(AMDGPU_ARCH_TOOL "amdgpu-arch")
endif()
# in case of amdgcn, skip running tests if amdgpu-arch was not built or fails
if (NOT EXISTS "${AMDGPU_ARCH_TOOL}")
if (NOT TARGET amdgpu-arch)
libomptarget_say("Not generating amdgcn test targets as amdgpu-arch is not found")
return()
endif()
execute_process(COMMAND "${AMDGPU_ARCH_TOOL}" RESULT_VARIABLE amdgpu_arch_result
OUTPUT_VARIABLE amdgpu_arch_output)
get_property(AMDGPU_ARCH_COMMAND TARGET amdgpu-arch PROPERTY LOCATION)
execute_process(COMMAND ${AMDGPU_ARCH_COMMAND} RESULT_VARIABLE amdgpu_arch_result
OUTPUT_VARIABLE amdgpu_arch_output)
if (${amdgpu_arch_result})
libomptarget_say("Not generating amdgcn test targets as amdgpu-arch exited with ${amdgpu_arch_result}")
return()
else()
# Report to the parent scope that we are building a plugin for amdgpu
set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS} amdgcn-amd-amdhsa" PARENT_SCOPE)
endif()
# Report to the parent scope that we are building a plugin for amdgpu
set(LIBOMPTARGET_SYSTEM_TARGETS "${LIBOMPTARGET_SYSTEM_TARGETS} amdgcn-amd-amdhsa" PARENT_SCOPE)