diff options
author | Brad King <brad.king@kitware.com> | 2018-04-30 13:20:37 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2018-04-30 13:20:42 (GMT) |
commit | 27279fa2db6fc7cce88d15b50ed2e736b208bb72 (patch) | |
tree | 1cee4f68fd983ff095cf6f307eec6915e52cf9b9 /Modules/FindJava.cmake | |
parent | 36d7f8ca106b69fbd02a361a156a31d2be7aae22 (diff) | |
parent | 1013560a6a7c34d7f268eacf12ffdb4874a70c8b (diff) | |
download | CMake-27279fa2db6fc7cce88d15b50ed2e736b208bb72.zip CMake-27279fa2db6fc7cce88d15b50ed2e736b208bb72.tar.gz CMake-27279fa2db6fc7cce88d15b50ed2e736b208bb72.tar.bz2 |
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
Diffstat (limited to 'Modules/FindJava.cmake')
-rw-r--r-- | Modules/FindJava.cmake | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/Modules/FindJava.cmake b/Modules/FindJava.cmake index f8e3d98..95e551f 100644 --- a/Modules/FindJava.cmake +++ b/Modules/FindJava.cmake @@ -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() |