summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-03-18 17:46:57 (GMT)
committerBrad King <brad.king@kitware.com>2011-03-18 17:46:57 (GMT)
commit46c0a5832d1e9334da10f3aa8495b2e6b551b23c (patch)
tree97a6054267ada152c2757312e10061a2dc5d22ac /Tests
parentac9f50e09110fdbdda5b6f704ed04f169f000f7d (diff)
downloadCMake-46c0a5832d1e9334da10f3aa8495b2e6b551b23c.zip
CMake-46c0a5832d1e9334da10f3aa8495b2e6b551b23c.tar.gz
CMake-46c0a5832d1e9334da10f3aa8495b2e6b551b23c.tar.bz2
Enable Java test more carefully on Apple
The CTEST_RUN_Java option added by commit c8f39193 (Avoid problem reading jni.h on Macs, 2010-10-25) was a quick hack to disable the Java test on Mac machines after an update from Apple created a broken jni.h symlink. Remove the option and instead test whether jni.h exists as a readable file before reading it. This restores the original Java test enabling logic but makes it robust to the broken symlink.
Diffstat (limited to 'Tests')
-rw-r--r--Tests/CMakeLists.txt56
1 files changed, 23 insertions, 33 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 6da06f6..2dbb120 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1868,39 +1868,29 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
ENDIF()
ENDIF()
- 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)
- FIND_FILE(JNI_H jni.h
- "${JNIPATH}/../include"
- "${JNIPATH}/../java/include")
- IF(JNI_H)
- FILE(READ "${JNI_H}" JNI_FILE)
- IF("${JNI_FILE}" MATCHES "JDK1_2")
- ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
- --build-and-test
- "${CMake_SOURCE_DIR}/Tests/Java"
- "${CMake_BINARY_DIR}/Tests/Java"
- --build-generator ${CMAKE_TEST_GENERATOR}
- --build-project hello
- --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
- --build-two-config
- --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
- --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
- LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Java")
- ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
- ENDIF(JNI_H)
- ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
- ENDIF(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)
+ FIND_FILE(JNI_H jni.h
+ "${JNIPATH}/../include"
+ "${JNIPATH}/../java/include")
+ IF(JNI_H AND EXISTS "${JNI_H}") # in case jni.h is a broken symlink
+ FILE(READ "${JNI_H}" JNI_FILE)
+ IF("${JNI_FILE}" MATCHES "JDK1_2")
+ ADD_TEST(Java ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/Java"
+ "${CMake_BINARY_DIR}/Tests/Java"
+ --build-generator ${CMAKE_TEST_GENERATOR}
+ --build-project hello
+ --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
+ --build-two-config
+ --build-run-dir "${CMake_BINARY_DIR}/Tests/Java/"
+ --test-command ${JAVA_RUNTIME} -classpath hello.jar HelloWorld)
+ LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Java")
+ ENDIF("${JNI_FILE}" MATCHES "JDK1_2")
+ ENDIF()
+ ENDIF(JAVA_COMPILE AND JAVA_RUNTIME AND JAVA_ARCHIVE AND NOT MINGW)
# add some cross compiler tests, for now only with makefile based generators
IF(CMAKE_TEST_GENERATOR MATCHES "Makefiles" OR CMAKE_TEST_GENERATOR MATCHES "KDevelop")