summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-07-08 16:12:19 -0400
committerBrad King <brad.king@kitware.com>2020-07-08 16:17:40 -0400
commite8051b1f20d90cbefd672d1ba108362f9c55c2db (patch)
treeff7bcb58c883cb29768ea83668a6cf74441dc827
parent1e26c84b96c0ec6887de2cf5e14061ccb83bdbfe (diff)
downloadcmake-e8051b1f20d90cbefd672d1ba108362f9c55c2db.tar.gz
FindJava: Update check to avoid accepting macOS stub 'java' as Java
Since commit dd378258f1 (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 commit 2c0db404d1 (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.
-rw-r--r--Modules/FindJava.cmake5
1 files changed, 2 insertions, 3 deletions
diff --git a/Modules/FindJava.cmake b/Modules/FindJava.cmake
index 945df3c986..9db740b4f8 100644
--- a/Modules/FindJava.cmake
+++ b/Modules/FindJava.cmake
@@ -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()