IF(JAVA_COMPILE) SET(VTK_JAVA_DEPENDENCIES "") INCLUDE(${VTK_BINARY_DIR}/Common/JavaDependencies.cmake OPTIONAL) INCLUDE(${VTK_BINARY_DIR}/Filtering/JavaDependencies.cmake OPTIONAL) INCLUDE(${VTK_BINARY_DIR}/Graphics/JavaDependencies.cmake OPTIONAL) INCLUDE(${VTK_BINARY_DIR}/IO/JavaDependencies.cmake OPTIONAL) INCLUDE(${VTK_BINARY_DIR}/Imaging/JavaDependencies.cmake OPTIONAL) IF (VTK_USE_HYBRID) INCLUDE(${VTK_BINARY_DIR}/Hybrid/JavaDependencies.cmake OPTIONAL) ENDIF(VTK_USE_HYBRID) IF (VTK_USE_PARALLEL) INCLUDE(${VTK_BINARY_DIR}/Parallel/JavaDependencies.cmake OPTIONAL) ENDIF(VTK_USE_PARALLEL) IF (VTK_USE_PATENTED) INCLUDE(${VTK_BINARY_DIR}/Patented/JavaDependencies.cmake OPTIONAL) ENDIF(VTK_USE_PATENTED) IF (VTK_USE_RENDERING) INCLUDE(${VTK_BINARY_DIR}/Rendering/JavaDependencies.cmake OPTIONAL) ENDIF(VTK_USE_RENDERING) SET(VTK_JAVA_NEW_STYLE 0) IF(COMMAND VTK_GENERATE_JAVA_DEPENDENCIES) IF(VTK_JAVA_DEPENDENCIES) SET(VTK_JAVA_NEW_STYLE 1) ENDIF(VTK_JAVA_DEPENDENCIES) ENDIF(COMMAND VTK_GENERATE_JAVA_DEPENDENCIES) IF(VTK_JAVA_NEW_STYLE) SET(CLASS_FILES ${VTK_JAVA_DEPENDENCIES}) STRING(REGEX REPLACE "\\.java" ".class;" CLASS_FILES ${VTK_JAVA_DEPENDENCIES}) ADD_CUSTOM_TARGET(VTKJava ALL) ADD_CUSTOM_TARGET(VTKJavaJar ALL) SET(KITS Common Filtering Graphics IO Imaging) IF (VTK_USE_HYBRID) SET(KITS ${KITS} Hybrid) ENDIF(VTK_USE_HYBRID) IF (VTK_USE_PARALLEL) SET(KITS ${KITS} Parallel) ENDIF(VTK_USE_PARALLEL) IF (VTK_USE_PATENTED) SET(KITS ${KITS} Patented) ENDIF(VTK_USE_PATENTED) IF (VTK_USE_RENDERING) SET(KITS ${KITS} Rendering) ENDIF(VTK_USE_RENDERING) # Some platforms have libjvm in a subdirectory from # the rest of the java libraries and are missing the symlink. IF(JAVA_AWT_LIBRARY) GET_FILENAME_COMPONENT(JAVA_LIB_DIR ${JAVA_AWT_LIBRARY} PATH) IF(EXISTS ${JAVA_LIB_DIR}/client) LINK_DIRECTORIES(${JAVA_LIB_DIR}/client) ENDIF(EXISTS ${JAVA_LIB_DIR}/client) ENDIF(JAVA_AWT_LIBRARY) SET(CMAKE_SKIP_RPATH 0) ADD_EXECUTABLE(VTKJavaExecutable VTKJava.cxx) SET(JAVA_LIBRARIES) FOREACH(kit ${KITS}) IF(APPLE) SET(src ${LIBRARY_OUTPUT_PATH}/libvtk${kit}Java.dylib) SET(tgt ${LIBRARY_OUTPUT_PATH}/libvtk${kit}Java.jnilib) ADD_CUSTOM_COMMAND(SOURCE ${src} COMMAND ln ARGS -sf ${src} ${tgt} OUTPUTS ${tgt} TARGET VTKJava) SET(JAVA_LIBRARIES ${JAVA_LIBRARIES} ${tgt}) ENDIF(APPLE) TARGET_LINK_LIBRARIES(VTKJavaExecutable vtk${kit}Java) SET(VTK_JAVA_DEPENDENCIES "") ADD_CUSTOM_TARGET(VTKJava${kit} ALL) INCLUDE(${VTK_BINARY_DIR}/${kit}/JavaDependencies.cmake OPTIONAL) VTK_GENERATE_JAVA_DEPENDENCIES(VTKJava${kit} ${VTK_JAVA_DEPENDENCIES}) ADD_DEPENDENCIES(VTKJava${kit} VTKJavaExecutable) ADD_DEPENDENCIES(VTKJava${kit} vtk${kit}JavaJavaClasses) ADD_DEPENDENCIES(VTKJavaJar VTKJava${kit}) ENDFOREACH(kit) ADD_DEPENDENCIES(VTKJavaFiltering VTKJavaCommon) ADD_DEPENDENCIES(VTKJavaImaging VTKJavaFiltering) ADD_DEPENDENCIES(VTKJavaGraphics VTKJavaFiltering) ADD_DEPENDENCIES(VTKJavaIO VTKJavaFiltering) ADD_DEPENDENCIES(VTKJava VTKJavaJar) IF(VTK_USE_RENDERING) ADD_DEPENDENCIES(VTKJavaRendering VTKJavaGraphics VTKJavaIO VTKJavaImaging ) ENDIF(VTK_USE_RENDERING) IF(VTK_USE_HYBRID) ADD_DEPENDENCIES(VTKJavaHybrid VTKJavaRendering) ENDIF(VTK_USE_HYBRID) IF(VTK_USE_PATENTED) ADD_DEPENDENCIES(VTKJavaPatented VTKJavaGraphics VTKJavaIO VTKJavaImaging) ENDIF(VTK_USE_PATENTED) IF(VTK_USE_PARALLEL) ADD_DEPENDENCIES(VTKJavaParallel VTKJavaRendering) ENDIF(VTK_USE_PARALLEL) ADD_CUSTOM_COMMAND(SOURCE ${VTK_JAVA_HOME}/vtkObject.class COMMAND ${JAVA_ARCHIVE} ARGS -cvf "${LIBRARY_OUTPUT_PATH}/vtk.jar" -C ${VTK_BINARY_DIR}/java vtk TARGET VTKJavaJar DEPENDS ${CLASS_FILES} ${JAVA_LIBRARIES} OUTPUTS ${LIBRARY_OUTPUT_PATH}/vtk.jar COMMENT "Java Archive") ADD_CUSTOM_COMMAND(SOURCE VTKJavaJar TARGET VTKJavaJar DEPENDS ${LIBRARY_OUTPUT_PATH}/vtk.jar) IF(BUILD_TESTING) FOREACH(jfile SimpleVTK Regression TestVTKCanvas TestInternalFrames ImagePlaneWidget AxesActor) ADD_CUSTOM_COMMAND( SOURCE ${VTK_SOURCE_DIR}/Wrapping/Java/${jfile}.java COMMAND ${JAVA_COMPILE} ARGS -classpath ${LIBRARY_OUTPUT_PATH}/vtk.jar -sourcepath ${VTK_SOURCE_DIR}/Wrapping/Java -d ${VTK_BINARY_DIR}/Wrapping/Java ${VTK_SOURCE_DIR}/Wrapping/Java/${jfile}.java TARGET VTKJava DEPENDS ${LIBRARY_OUTPUT_PATH}/vtk.jar OUTPUTS ${VTK_BINARY_DIR}/Wrapping/Java/${jfile}.class COMMENT "Java Test") SET(JAVA_TESTS ${JAVA_TESTS} ${VTK_BINARY_DIR}/Wrapping/Java/${jfile}.class) ENDFOREACH(jfile) IF(WIN32) SET(SEPARATOR "\;") ELSE(WIN32) SET(SEPARATOR ":") ENDIF(WIN32) ADD_TEST(JavaRegression ${JAVA_RUNTIME} -classpath ${LIBRARY_OUTPUT_PATH}/vtk.jar${SEPARATOR}${VTK_BINARY_DIR}/Wrapping/Java Regression -D ${VTK_DATA_ROOT} -V Baseline/Graphics/Cone.png) ENDIF(BUILD_TESTING) ADD_CUSTOM_COMMAND( SOURCE VTKJava TARGET VTKJava DEPENDS ${LIBRARY_OUTPUT_PATH}/vtk.jar ${JAVA_TESTS} ) ELSE(VTK_JAVA_NEW_STYLE) ADD_CUSTOM_TARGET(VTKJava ALL) ADD_CUSTOM_COMMAND(SOURCE ${VTK_JAVA_HOME}/VTKJavaWrapped COMMAND ${JAVA_COMPILE} ARGS ${VTK_JAVA_HOME}/vtk*.java TARGET VTKJava OUTPUTS ${VTK_JAVA_HOME}/vtkObject.class) IF(JAVA_ARCHIVE) ADD_CUSTOM_COMMAND(SOURCE ${VTK_JAVA_HOME}/vtkObject.class COMMAND ${CMAKE_COMMAND} ARGS -E chdir ${VTK_BINARY_DIR}/java ${JAVA_ARCHIVE} -cvf "\"${LIBRARY_OUTPUT_PATH}/vtk.jar\"" vtk TARGET VTKJava DEPENDS ${VTK_JAVA_HOME}/vtkObject.class OUTPUTS ${LIBRARY_OUTPUT_PATH}/vtk.jar) IF(BUILD_TESTING) FOREACH(jfile SimpleVTK Regression TestVTKCanvas TestInternalFrames ImagePlaneWidget AxesActor) ADD_CUSTOM_COMMAND( SOURCE ${VTK_SOURCE_DIR}/Wrapping/Java/${jfile}.java COMMAND ${JAVA_COMPILE} ARGS -classpath ${LIBRARY_OUTPUT_PATH}/vtk.jar -sourcepath ${VTK_SOURCE_DIR}/Wrapping/Java -d ${VTK_BINARY_DIR}/Wrapping/Java ${VTK_SOURCE_DIR}/Wrapping/Java/${jfile}.java TARGET VTKJava DEPENDS ${LIBRARY_OUTPUT_PATH}/vtk.jar OUTPUTS ${VTK_BINARY_DIR}/Wrapping/Java/${jfile}.class) SET(JAVA_TESTS ${JAVA_TESTS} ${VTK_BINARY_DIR}/Wrapping/Java/${jfile}.class) ENDFOREACH(jfile) IF(WIN32) SET(SEPARATOR "\;") ELSE(WIN32) SET(SEPARATOR ":") ENDIF(WIN32) ADD_TEST(JavaRegression ${JAVA_RUNTIME} -classpath ${LIBRARY_OUTPUT_PATH}/vtk.jar${SEPARATOR}${VTK_BINARY_DIR}/Wrapping/Java Regression -D ${VTK_DATA_ROOT} -V Baseline/Graphics/Cone.png) ENDIF(BUILD_TESTING) ADD_CUSTOM_COMMAND( SOURCE VTKJava COMMAND echo ARGS "Checking dependencies for VTK Java" TARGET VTKJava DEPENDS ${LIBRARY_OUTPUT_PATH}/vtk.jar ${JAVA_TESTS} ) INSTALL_FILES(/lib/vtk/java FILES ${LIBRARY_OUTPUT_PATH}/vtk.jar) ENDIF(JAVA_ARCHIVE) ENDIF(VTK_JAVA_NEW_STYLE) ENDIF(JAVA_COMPILE)