From c8f39193e01e15a13a37ca227f02a2e4472f3d8a Mon Sep 17 00:00:00 2001 From: David Cole Date: Mon, 25 Oct 2010 15:03:36 -0400 Subject: [PATCH] Avoid problem reading jni.h on Macs. Apple released an update recently in which there was a broken symlink for jni.h that pointed to a non-existent file. CMake had trouble configuring because it encountered an error trying to read jni.h. We avoid the problem here by introducing a variable CTEST_RUN_Java, which defaults to OFF on Macs, that indicates whether to even attempt finding java, reading jni.h and adding the "Java" CMake test. If you would like to test Java on a Mac where the jni.h symlink is not busted, feel free to pass in -DCTEST_RUN_Java:BOOL=ON when configuring CMake. --- Tests/CMakeLists.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index c056e8612..d618ab485 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1635,7 +1635,15 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ ENDIF() ENDIF() - IF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode") + if(NOT DEFINED CTEST_RUN_Java) + if(APPLE) + set(CTEST_RUN_Java OFF) + else() + set(CTEST_RUN_Java ON) + endif() + endif() + + IF(CTEST_RUN_Java) find_package(Java QUIET) IF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW) GET_FILENAME_COMPONENT(JNIPATH ${JAVA_COMPILE} PATH) @@ -1659,7 +1667,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ ENDIF("${JNI_FILE}" MATCHES "JDK1_2") ENDIF(JNI_H) ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW) - ENDIF(NOT CMAKE_TEST_GENERATOR MATCHES "Xcode") + ENDIF(CTEST_RUN_Java) # add some cross compiler tests, for now only with makefile based generators IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop")