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.

GitOrigin-RevId: 935abeaace123e5f11792a5175079d974d0a0be8
diff --git a/libomptarget/plugins/amdgpu/CMakeLists.txt b/libomptarget/plugins/amdgpu/CMakeLists.txt
index 0b830f6..a7cca99 100644
--- a/libomptarget/plugins/amdgpu/CMakeLists.txt
+++ b/libomptarget/plugins/amdgpu/CMakeLists.txt
@@ -98,27 +98,20 @@
   ${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)