1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
|
INCLUDE(TestingSetup)
# Variables that are set externally
SET(java_binary_dir ${CMAKE_CURRENT_BINARY_DIR})
SET(java_source_dir ${CMAKE_CURRENT_SOURCE_DIR})
# Java Add Dependencies Macro
# Author: Brian Panneton
# Description: This macro adds the java test dependencies.
# Parameters:
# dependencies = any target dependencies needed for java tests
MACRO(ADD_TEST_JAVA_DEPENDENCIES dependencies)
IF(NOT ("${dependencies}" STREQUAL ""))
SET_PROPERTY(GLOBAL APPEND PROPERTY JAVA_TEST_DEPENDENCIES
"${dependencies}"
)
ENDIF()
ENDMACRO()
# Java Add File Dependencies Macro
# Author: Brian Panneton
# Description: This macro adds the java test file dependencies.
# Note: The tests already depend on their own file
# Parameters:
# dependencies = any dependencies needed for java tests
MACRO(ADD_TEST_JAVA_FILE_DEPENDENCIES dependencies)
IF(NOT ("${dependencies}" STREQUAL ""))
SET_PROPERTY(GLOBAL APPEND PROPERTY JAVA_TEST_FILE_DEPENDENCIES
"${dependencies}"
)
ENDIF()
ENDMACRO()
# Java Add Classpath Macro
# Author: Brian Panneton
# Description: This macro adds the java test classpaths.
# Parameters:
# cp = any classpaths needed for java tests
MACRO(ADD_TEST_JAVA_CLASSPATH cp)
GET_PROPERTY(classpath GLOBAL PROPERTY JAVA_TEST_CLASSPATH)
IF(NOT ("${cp}" STREQUAL ""))
SET_PROPERTY(GLOBAL PROPERTY JAVA_TEST_CLASSPATH
"${classpath}${sep}${cp}"
)
ENDIF()
ENDMACRO()
# Java Add LDPath Macro
# Author: Brian Panneton
# Description: This macro adds the java test ldpaths.
# Parameters:
# ld = any ldpaths needed for java tests
MACRO(ADD_TEST_JAVA_LDPATH ld)
GET_PROPERTY(ldpath GLOBAL PROPERTY JAVA_TEST_LDPATH)
IF("${ld}" STRGREATER "")
SET_PROPERTY(GLOBAL PROPERTY JAVA_TEST_LDPATH
"${ldpath}${sep}${ld}"
)
ENDIF()
ENDMACRO()
# Java Add Path Macro
# Author: Brian Panneton
# Description: This macro adds the java test paths.
# Parameters:
# p = any paths needed for java tests
MACRO(ADD_TEST_JAVA_PATH p)
GET_PROPERTY(path GLOBAL PROPERTY JAVA_TEST_PATH)
IF("${p}" STRGREATER "")
SET_PROPERTY(GLOBAL PROPERTY JAVA_TEST_PATH
"${path}${sep}${p}"
)
ENDIF()
ENDMACRO()
# Add Java Test Macro
# Author: Brian Panneton
# Description: This macro builds and adds the java test in one shot. There is
# no need to build a test separately, because there isn't a case
# that you don't want to run it.
# Parameters:
# executable = executable name
# ${ARGN} = any arguments for the executable
#
MACRO(ADD_TEST_JAVA executable)
PARSE_TEST_ARGS("${ARGN}")
GET_PROPERTY(java_file_dependencies GLOBAL PROPERTY
JAVA_TEST_FILE_DEPENDENCIES)
GET_PROPERTY(java_classpath GLOBAL PROPERTY JAVA_TEST_CLASSPATH)
GET_PROPERTY(java_ldpath GLOBAL PROPERTY JAVA_TEST_LDPATH)
GET_PROPERTY(java_path GLOBAL PROPERTY JAVA_TEST_PATH)
ADD_CUSTOM_COMMAND(
OUTPUT ${java_binary_dir}/${executable}.class
WORKING_DIRECTORY ${java_binary_dir}
DEPENDS ${java_source_dir}/${executable}.java
${java_file_dependencies}
COMMAND ${JAVA_COMPILE}
ARGS -cp "\"${java_classpath}\""
-d "\"${java_binary_dir}\""
${java_source_dir}/${executable}.java
)
SET_PROPERTY(GLOBAL APPEND PROPERTY JAVA_TEST_TARGETS "${java_binary_dir}/${executable}.class")
# Dlls need to be in the path dir for java
IF(WIN32)
IF("${java_path}" STREQUAL "")
SET(java_path ${java_ldpath})
ENDIF()
ENDIF()
SET_CORE("${java_binary_dir}")
ADD_TEST(Java${is_core}_${executable}${dup} ${CMAKE_COMMAND}
-D "EXECUTABLE=${executable}"
-D "ARGUMENTS=${arguments}"
-D "CLASSPATH=${java_classpath}"
-D "LDPATH=${java_ldpath}"
-D "PATH=${java_path}"
-D "SEPARATOR=${sep}"
-P "${java_binary_dir}/TestDriverJava.cmake"
)
IF(NOT "${tdep}" STREQUAL "")
SET_TESTS_PROPERTIES(Java${is_core}_${executable}${dup}
PROPERTIES DEPENDS ${tdep})
ENDIF()
ENDMACRO()
# Java Clean Macro
# Author: Brian Panneton
# Description: This macro sets up the java test for a make clean.
# Parameters:
# executable = executable name
# ${ARGN} = files that the executable created
MACRO(CLEAN_TEST_JAVA executable)
set_property(DIRECTORY APPEND PROPERTY
ADDITIONAL_MAKE_CLEAN_FILES ${ARGN}
)
ENDMACRO()
# Java Create Target Macro
# Author: Brian Panneton
# Description: This macro sets up the java test target
# Parameters: none
MACRO(CREATE_TARGET_TEST_JAVA)
IF(EXISTS JavaCore_ALLTEST)
SET(JavaCore_ALLTEST JavaCore_ALLTEST)
ENDIF()
GET_PROPERTY(java_dependencies GLOBAL PROPERTY JAVA_TEST_DEPENDENCIES)
SET_CORE("${java_binary_dir}")
GET_PROPERTY(targets GLOBAL PROPERTY JAVA_TEST_TARGETS)
ADD_CUSTOM_TARGET(Java${is_core}_ALLTEST ALL DEPENDS
${JavaCore_ALLTEST} ${targets})
IF(NOT ("${java_dependencies}" STREQUAL ""))
ADD_DEPENDENCIES(Java${is_core}_ALLTEST ${java_dependencies})
ENDIF()
IF(NOT ("${is_core}" STREQUAL ""))
SET_PROPERTY(GLOBAL PROPERTY JAVA_TEST_TARGETS "")
ENDIF()
ENDMACRO()
# Configure the java 'driver' file
CONFIGURE_FILE(${TESTING_SUITE_DIR}/TestingSuite/TestDriverJava.cmake.in ${java_binary_dir}/TestDriverJava.cmake @ONLY)
|