cmake_minimum_required (VERSION 2.8.6) PROJECT (HDFJAVA_TEST_OBJECT Java) SET(CMAKE_VERBOSE_MAKEFILE 1) INCLUDE_DIRECTORIES( ${JAVA_NCSA_HDF_HDF4_BINARY_DIR} ${JAVA_NCSA_HDF_HDF5_BINARY_DIR} ${JAVA_NCSA_HDF_OBJECT_BINARY_DIR} ${HDFJAVA_LIB_DIR} ) SET (CMAKE_JAVA_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH} ${HDFJAVA_LIB_DIR}/junit.jar ${HDFJAVA_JARS_TO_EXPORT}) SET (HDFJAVA_TEST_OBJECT_SRCS AllH5ObjectTests.java AttributeTest.java CompoundDSTest.java DatasetTest.java DatatypeTest.java DataFormatTest.java FileFormatTest.java GroupTest.java H5BugFixTest.java H5CompoundDSTest.java H5DatatypeTest.java H5FileTest.java H5GroupTest.java H5ScalarDSTest.java H5TestFile.java HObjectTest.java MetadataTest.java ScalarDSTest.java ) ADD_JAR (${HDFJAVA_TEST_OBJECT_LIB_TARGET} ${HDFJAVA_TEST_OBJECT_SRCS}) GET_TARGET_PROPERTY(${HDFJAVA_TEST_OBJECT_LIB_TARGET}_JAR_FILE ${HDFJAVA_TEST_OBJECT_LIB_TARGET} JAR_FILE) #INSTALL_JAR (${HDFJAVA_TEST_OBJECT_LIB_TARGET} ${HJAVA_INSTALL_DATA_DIR}/tests tests) ADD_DEPENDENCIES (${HDFJAVA_TEST_OBJECT_LIB_TARGET} ${HDFJAVA_NCSA_H5_LIB_TARGET}) SET (HDF_JAVA_TEST_FILES h5ex_d_extern.data h5ex_d_extern.hdf5 ) FOREACH (h5_file ${HDF_JAVA_TEST_FILES}) SET (dest "${PROJECT_BINARY_DIR}/${h5_file}") #MESSAGE (STATUS " Copying ${h5_file}") ADD_CUSTOM_COMMAND ( TARGET ${HDFJAVA_TEST_OBJECT_LIB_TARGET} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${PROJECT_SOURCE_DIR}/${h5_file} ${dest} ) ENDFOREACH (h5_file ${HDF_JAVA_TEST_FILES}) IF (WIN32 AND NOT CYGWIN) SET(CMAKE_JAVA_INCLUDE_FLAG_SEP ";") ELSE (WIN32 AND NOT CYGWIN) SET(CMAKE_JAVA_INCLUDE_FLAG_SEP ":") ENDIF(WIN32 AND NOT CYGWIN) SET (CMAKE_JAVA_CLASSPATH ".") FOREACH (CMAKE_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH}) SET(CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${CMAKE_INCLUDE_PATH}") ENDFOREACH(CMAKE_INCLUDE_PATH) SET (CMAKE_JAVA_CLASSPATH "${CMAKE_JAVA_CLASSPATH}${CMAKE_JAVA_INCLUDE_FLAG_SEP}${${HDFJAVA_TEST_OBJECT_LIB_TARGET}_JAR_FILE}") SET (JUNIT_TEST_RUNNER ${PROJECT_BINARY_DIR}/JUnitRunner.cmake) FILE (WRITE ${JUNIT_TEST_RUNNER} "EXECUTE_PROCESS(COMMAND ${CMAKE_Java_RUNTIME} -Xmx1024M -Djava.library.path=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} -cp \"${CMAKE_JAVA_CLASSPATH}\" -ea org.junit.runner.JUnitCore test.object.AllH5ObjectTests WORKING_DIRECTORY ${CMAKE_BINARY_DIR} RESULT_VARIABLE RESULT) IF(RESULT) MESSAGE(SEND_ERROR \"Error during JUnit OBJECT Tests\") ENDIF(RESULT) ") IF (WIN32 AND NOT CYGWIN) SET (CMAKE_JAVA_PATH_EXPORT "PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY};%PATH%") ELSE (WIN32 AND NOT CYGWIN) SET (CMAKE_JAVA_PATH_EXPORT "LD_LIBRARY_PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:$LD_LIBRARY_PATH") ENDIF (WIN32 AND NOT CYGWIN) ADD_TEST (JUnit-object-interface ${CMAKE_COMMAND} -P ${JUNIT_TEST_RUNNER}) SET_TESTS_PROPERTIES (JUnit-object-interface PROPERTIES ENVIRONMENT "${CMAKE_JAVA_PATH_EXPORT}" )