Merge topic 'java-new-packaging-version-sort'

1013560a6a FindJava, FindJNI: Ensure most recent version is searched first

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2016
This commit is contained in:
Brad King
2018-04-30 13:20:37 +00:00
committed by Kitware Robot
2 changed files with 31 additions and 7 deletions

View File

@@ -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()