Fix ant/Java detection in cmake scripts

Mac OS X 10.7 and newer don't come with Java installed. They do
include some stub binaries, which ask the user if they want to
install Java when run.

OpenCV's cmake script just checks for the existence of an ant
binary and assumes that Java's available if ant is. As a result,
cmake will configure the build to use Java and it will fail once
it tries to compile the Java bindings.

This fixes the issue by checking for the exit status of
`ant -version` - it exits 0 if Java is installed, or 1
otherwise.(cherry picked from commit a423afddc143f4b10e09e7b253a420b29f877b6c)
This commit is contained in:
Misty De Meo 2013-03-22 11:18:42 -05:00 committed by Andrey Kamaev
parent f5c3cb8b7c
commit e143706ef9

View File

@ -16,10 +16,16 @@ find_host_program(ANT_EXECUTABLE NAMES ${ANT_NAME})
if(ANT_EXECUTABLE)
execute_process(COMMAND ${ANT_EXECUTABLE} -version
RESULT_VARIABLE ANT_ERROR_LEVEL
OUTPUT_VARIABLE ANT_VERSION_FULL
OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REGEX MATCH "[0-9]+.[0-9]+.[0-9]+" ANT_VERSION "${ANT_VERSION_FULL}")
set(ANT_VERSION "${ANT_VERSION}" CACHE INTERNAL "Detected ant vesion")
if (ANT_ERROR_LEVEL)
unset(ANT_EXECUTABLE)
unset(ANT_EXECUTABLE CACHE)
else()
string(REGEX MATCH "[0-9]+.[0-9]+.[0-9]+" ANT_VERSION "${ANT_VERSION_FULL}")
set(ANT_VERSION "${ANT_VERSION}" CACHE INTERNAL "Detected ant vesion")
message(STATUS "Found apache ant ${ANT_VERSION}: ${ANT_EXECUTABLE}")
message(STATUS "Found apache ant ${ANT_VERSION}: ${ANT_EXECUTABLE}")
endif()
endif()