FindJava: Update check to avoid accepting macOS stub 'java' as Java
Since commitdd378258f1
(FindJava: Do not accept OS X stub 'java' as Java, 2014-10-24, v3.1.0-rc3~29^2) we try to avoid using the macOS `/usr/bin/java` stub if no underlying implementation of Java is actually installed. However, the message that `/usr/bin/java` prints when there is no Java available has changed since then. Update our check to also look for the new message. While at it, revise the way we suppress `Java_JAVA_EXECUTABLE`. Previously we set its cache entry to `Java_JAVA_EXECUTABLE-NOTFOUND`, but that would cause the same find-and-reject sequence to be followed every time CMake runs in a build tree. Instead, use the approach from commit2c0db404d1
(FindSubversion: Do not accept macOS stub without Xcode implementation, 2020-05-28, v3.18.0-rc1~67^2). Leave the cache entry alone and just set a normal variable of the same name to hide it.
This commit is contained in:
parent
1e26c84b96
commit
e8051b1f20
@ -160,9 +160,8 @@ if(Java_JAVA_EXECUTABLE)
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_STRIP_TRAILING_WHITESPACE)
|
||||
if( res )
|
||||
if(var MATCHES "No Java runtime present, requesting install")
|
||||
set_property(CACHE Java_JAVA_EXECUTABLE
|
||||
PROPERTY VALUE "Java_JAVA_EXECUTABLE-NOTFOUND")
|
||||
if(var MATCHES "Unable to locate a Java Runtime to invoke|No Java runtime present, requesting install")
|
||||
set(Java_JAVA_EXECUTABLE Java_JAVA_EXECUTABLE-NOTFOUND)
|
||||
elseif(${Java_FIND_REQUIRED})
|
||||
message( FATAL_ERROR "Error executing java -version" )
|
||||
else()
|
||||
|
Loading…
Reference in New Issue
Block a user