From b56d4e041a62985b1e9c757a1b12c6cf3f2f4ae4 Mon Sep 17 00:00:00 2001
From: scivision <scivision@users.noreply.github.com>
Date: Wed, 20 Sep 2023 00:07:14 -0400
Subject: FindJava: use cmake_host_system_info to query registry

---
 Modules/FindJava.cmake | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/Modules/FindJava.cmake b/Modules/FindJava.cmake
index 2a409ef..74e424b 100644
--- a/Modules/FindJava.cmake
+++ b/Modules/FindJava.cmake
@@ -90,13 +90,12 @@ if(_JAVA_HOME)
 endif()
 if (WIN32)
   macro (_JAVA_GET_INSTALLED_VERSIONS _KIND)
-    execute_process(COMMAND REG QUERY "HKLM\\SOFTWARE\\JavaSoft\\${_KIND}"
-      RESULT_VARIABLE _JAVA_RESULT
-      OUTPUT_VARIABLE _JAVA_VERSIONS
-      ERROR_QUIET)
-    if (NOT  _JAVA_RESULT)
-      string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\${_KIND}\\\\[0-9._]+" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
-      string (REGEX REPLACE "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\${_KIND}\\\\([0-9._]+)" "\\1" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
+    cmake_host_system_information(RESULT _JAVA_VERSIONS
+    QUERY WINDOWS_REGISTRY "HKLM/SOFTWARE/JavaSoft/${_KIND}"
+    SUBKEYS)
+    if (_JAVA_VERSIONS)
+      string (REGEX MATCHALL "[0-9._]+" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
+      string (REGEX REPLACE "([0-9._]+)" "\\1" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
       if (_JAVA_VERSIONS)
         # sort versions. Most recent first
         list (SORT _JAVA_VERSIONS COMPARE NATURAL ORDER DESCENDING)
-- 
cgit v0.12