|
|
@@ -84,10 +84,22 @@ if (WIN32)
|
|
|
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}")
|
|
|
- foreach (_JAVA_HINT IN LISTS _JAVA_VERSIONS)
|
|
|
- list(APPEND _JAVA_HINTS "[${_JAVA_HINT}\\MSI;INSTALLDIR]/bin")
|
|
|
- endforeach()
|
|
|
+ string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\${_KIND}\\\\[0-9.]+" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
|
|
|
+ if (_JAVA_VERSIONS)
|
|
|
+ # sort versions. Most recent first
|
|
|
+ ## handle version 9 apart from other versions to get correct ordering
|
|
|
+ set (_JAVA_V9 ${_JAVA_VERSIONS})
|
|
|
+ list (FILTER _JAVA_VERSIONS EXCLUDE REGEX "${_KIND}\\\\9")
|
|
|
+ list (SORT _JAVA_VERSIONS)
|
|
|
+ list (REVERSE _JAVA_VERSIONS)
|
|
|
+ list (FILTER _JAVA_V9 INCLUDE REGEX "${_KIND}\\\\9")
|
|
|
+ list (SORT _JAVA_V9)
|
|
|
+ list (REVERSE _JAVA_V9)
|
|
|
+ list (APPEND _JAVA_VERSIONS ${_JAVA_V9})
|
|
|
+ foreach (_JAVA_HINT IN LISTS _JAVA_VERSIONS)
|
|
|
+ list(APPEND _JAVA_HINTS "[${_JAVA_HINT}\\MSI;INSTALLDIR]/bin")
|
|
|
+ endforeach()
|
|
|
+ endif()
|
|
|
endif()
|
|
|
endmacro()
|
|
|
|