Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

266 lines
10 KiB

2 years ago
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_PARALLEL)
INCLUDE(${VTK_BINARY_DIR}/Parallel/JavaDependencies.cmake OPTIONAL)
ENDIF(VTK_USE_PARALLEL)
IF (VTK_USE_RENDERING)
INCLUDE(${VTK_BINARY_DIR}/Widgets/JavaDependencies.cmake OPTIONAL)
INCLUDE(${VTK_BINARY_DIR}/Hybrid/JavaDependencies.cmake OPTIONAL)
INCLUDE(${VTK_BINARY_DIR}/VolumeRendering/JavaDependencies.cmake OPTIONAL)
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_PARALLEL)
SET(KITS ${KITS} Parallel)
ENDIF(VTK_USE_PARALLEL)
IF (VTK_USE_RENDERING)
SET(KITS ${KITS} Widgets)
SET(KITS ${KITS} Hybrid)
SET(KITS ${KITS} VolumeRendering)
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)
SET(VTK_BUILD_ALL_CONTENT "")
SET(VTK_BUILD_ALL_DEPENDS "")
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} "")
SET(VTK_BUILD_ALL_CONTENT
"${VTK_BUILD_ALL_CONTENT}\n vtk.vtkVTKJava${kit}Driver.Initialize(args);")
SET(VTK_BUILD_ALL_DEPENDS
${VTK_BUILD_ALL_DEPENDS}
${VTK_BINARY_DIR}/java/vtk/vtkVTKJava${kit}Driver.java)
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)
CONFIGURE_FILE(${VTK_SOURCE_DIR}/Wrapping/Java/vtkBuildAllDriver.java.in
${VTK_BINARY_DIR}/java/vtk/vtkBuildAllDriver.java)
ADD_CUSTOM_TARGET(VTKBuildAll ALL)
ADD_CUSTOM_COMMAND(
TARGET VTKBuildAll
OUTPUTS ${VTK_BINARY_DIR}/java/vtk/vtkBuildAllDriver.class
DEPENDS ${VTK_BUILD_ALL_DEPENDS}
SOURCE ${VTK_BINARY_DIR}/java/vtk/vtkBuildAllDriver.java
COMMAND ${JAVA_COMPILE}
ARGS -classpath ${VTK_JAVA_HOME}/.. -d ${VTK_JAVA_HOME}/..
${VTK_BINARY_DIR}/java/vtk/vtkBuildAllDriver.java
)
ADD_CUSTOM_COMMAND(
TARGET VTKBuildAll
SOURCE VTKBuildAll
DEPENDS ${VTK_BINARY_DIR}/java/vtk/vtkBuildAllDriver.class
)
ADD_DEPENDENCIES(VTKJavaJar VTKBuildAll)
ADD_DEPENDENCIES(VTKJavaFiltering VTKJavaCommon)
ADD_DEPENDENCIES(VTKJavaImaging VTKJavaFiltering)
ADD_DEPENDENCIES(VTKJavaGraphics VTKJavaFiltering)
ADD_DEPENDENCIES(VTKJavaIO VTKJavaFiltering)
SET(VTK_JAVA_DEPENDENCIES vtkTesting2 vtkSettings)
IF(VTK_USE_RENDERING)
SET(VTK_JAVA_DEPENDENCIES ${VTK_JAVA_DEPENDENCIES} vtkPanel)
ADD_DEPENDENCIES(VTKJavaRendering VTKJavaGraphics VTKJavaIO VTKJavaImaging)
ADD_DEPENDENCIES(VTKJavaVolumeRendering VTKJavaRendering)
SET(VTK_JAVA_DEPENDENCIES ${VTK_JAVA_DEPENDENCIES} vtkCanvas)
ADD_DEPENDENCIES(VTKJavaHybrid VTKJavaRendering)
ADD_DEPENDENCIES(VTKJavaWidgets VTKJavaRendering)
ENDIF(VTK_USE_RENDERING)
IF(VTK_USE_PARALLEL)
ADD_DEPENDENCIES(VTKJavaParallel VTKJavaRendering)
ENDIF(VTK_USE_PARALLEL)
FOREACH(jfile ${VTK_JAVA_DEPENDENCIES})
SET(src ${VTK_SOURCE_DIR}/Wrapping/Java/vtk/${jfile}.java)
SET(dst ${VTK_JAVA_HOME}/${jfile}.java)
SET(class ${VTK_JAVA_HOME}/${jfile}.class)
IF(${jfile} MATCHES vtkSettings)
CONFIGURE_FILE(${VTK_SOURCE_DIR}/Wrapping/Java/vtk/vtkSettings.java.in
${VTK_JAVA_HOME}/vtkSettings.java)
ELSE(${jfile} MATCHES vtkSettings)
ADD_CUSTOM_COMMAND(
TARGET VTKJavaJar
SOURCE ${src}
OUTPUTS ${dst}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy ${src} ${dst}
)
ENDIF(${jfile} MATCHES vtkSettings)
ADD_CUSTOM_COMMAND(
TARGET VTKJavaJar
SOURCE ${dst}
OUTPUTS ${class}
DEPENDS ${VTK_JAVA_HOME}/vtkPanel.java
COMMAND ${JAVA_COMPILE}
ARGS -classpath ${VTK_JAVA_HOME}/.. -d ${VTK_JAVA_HOME}/.. ${dst}
)
SET(CLASS_FILES ${CLASS_FILES} ${class})
ENDFOREACH(jfile)
ADD_DEPENDENCIES(VTKJava VTKJavaJar)
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)
# Since vtkTesting is within vtkRendering we need blockers
IF(VTK_USE_RENDERING AND VTK_USE_DISPLAY)
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(VTK_USE_RENDERING AND VTK_USE_DISPLAY)
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)
# Since vtkTesting is within vtkRendering we need blockers
IF(VTK_USE_RENDERING AND VTK_USE_DISPLAY)
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(VTK_USE_RENDERING AND VTK_USE_DISPLAY)
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}
)
IF(NOT VTK_INSTALL_NO_RUNTIME)
INSTALL_FILES(${VTK_INSTALL_JAVA_DIR} FILES ${LIBRARY_OUTPUT_PATH}/vtk.jar)
ENDIF(NOT VTK_INSTALL_NO_RUNTIME)
ENDIF(JAVA_ARCHIVE)
ENDIF(VTK_JAVA_NEW_STYLE)
ENDIF(JAVA_COMPILE)