mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-19 02:17:27 +08:00
FindJava, FindJNI: Ensure most recent version is searched first
This commit is contained in:
@@ -129,9 +129,21 @@ if (WIN32)
|
|||||||
ERROR_QUIET)
|
ERROR_QUIET)
|
||||||
if (NOT _JNI_RESULT)
|
if (NOT _JNI_RESULT)
|
||||||
string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\JDK\\\\[0-9\.]+" _JNI_VERSIONS "${_JNI_VERSIONS}")
|
string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\JDK\\\\[0-9\.]+" _JNI_VERSIONS "${_JNI_VERSIONS}")
|
||||||
foreach (_JNI_HINT IN LISTS _JNI_VERSIONS)
|
if (_JNI_VERSIONS)
|
||||||
list(APPEND _JNI_HINTS "[${_JNI_HINT}\\MSI;INSTALLDIR]")
|
# sort versions. Most recent first
|
||||||
endforeach()
|
## handle version 9 apart from other versions to get correct ordering
|
||||||
|
set (_JNI_V9 ${_JNI_VERSIONS})
|
||||||
|
list (FILTER _JNI_VERSIONS EXCLUDE REGEX "JDK\\\\9")
|
||||||
|
list (SORT _JNI_VERSIONS)
|
||||||
|
list (REVERSE _JNI_VERSIONS)
|
||||||
|
list (FILTER _JNI_V9 INCLUDE REGEX "JDK\\\\9")
|
||||||
|
list (SORT _JNI_V9)
|
||||||
|
list (REVERSE _JNI_V9)
|
||||||
|
list (APPEND _JNI_VERSIONS ${_JNI_V9})
|
||||||
|
foreach (_JNI_HINT IN LISTS _JNI_VERSIONS)
|
||||||
|
list(APPEND _JNI_HINTS "[${_JNI_HINT}\\MSI;INSTALLDIR]")
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
foreach (_JNI_HINT IN LISTS _JNI_HINTS)
|
foreach (_JNI_HINT IN LISTS _JNI_HINTS)
|
||||||
|
@@ -84,10 +84,22 @@ if (WIN32)
|
|||||||
OUTPUT_VARIABLE _JAVA_VERSIONS
|
OUTPUT_VARIABLE _JAVA_VERSIONS
|
||||||
ERROR_QUIET)
|
ERROR_QUIET)
|
||||||
if (NOT _JAVA_RESULT)
|
if (NOT _JAVA_RESULT)
|
||||||
string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\${_KIND}\\\\[0-9\.]+" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
|
string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\${_KIND}\\\\[0-9.]+" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
|
||||||
foreach (_JAVA_HINT IN LISTS _JAVA_VERSIONS)
|
if (_JAVA_VERSIONS)
|
||||||
list(APPEND _JAVA_HINTS "[${_JAVA_HINT}\\MSI;INSTALLDIR]/bin")
|
# sort versions. Most recent first
|
||||||
endforeach()
|
## 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()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user