diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6b33bc1bd2ac6bfaaf30ac2522d5deb65d0ea857..cd4b7d8e0d5a9a06c04f372e94f55a470bdb8420 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -255,7 +255,7 @@ fedora39-java8:build: # The Java build extends the build time considerably. timeout: 4 hours variables: - VTK_JAVA_VERSION: 1.8 + VTK_JAVA_VERSION: 8 needs: [] fedora39-java11:build: @@ -2111,7 +2111,7 @@ macos-x86_64-java8:build: - .cmake_build_artifacts - .weekly_upload_only variables: - VTK_JAVA_VERSION: 1.8 + VTK_JAVA_VERSION: 8 timeout: 4 hours needs: [] @@ -2135,7 +2135,7 @@ macos-arm64-java8:build: - .cmake_build_artifacts - .weekly_upload_only variables: - VTK_JAVA_VERSION: 1.8 + VTK_JAVA_VERSION: 8 timeout: 4 hours needs: [] @@ -2159,7 +2159,7 @@ windows-x86_64-java8:build: - .cmake_build_artifacts - .weekly_upload_only variables: - VTK_JAVA_VERSION: 1.8 + VTK_JAVA_VERSION: 8 timeout: 4 hours needs: [] diff --git a/.gitlab/ci/configure_fedora39_java.cmake b/.gitlab/ci/configure_fedora39_java.cmake index b0c65056f4d7e8edf05f551df8f19c8566a6ad55..641b75812dc625c3e9aa50f06ebd0bb1daefdb27 100644 --- a/.gitlab/ci/configure_fedora39_java.cmake +++ b/.gitlab/ci/configure_fedora39_java.cmake @@ -1,5 +1,4 @@ -set(VTK_JAVA_SOURCE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) -set(VTK_JAVA_TARGET_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) +set(VTK_JAVA_RELEASE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora39.cmake") diff --git a/.gitlab/ci/configure_macos_arm64_java.cmake b/.gitlab/ci/configure_macos_arm64_java.cmake index f590c264b30a25a876ed7e8bde1e4eb2232cb846..2e2f3c4cd8af8ffd25934ff4525f063b73b02697 100644 --- a/.gitlab/ci/configure_macos_arm64_java.cmake +++ b/.gitlab/ci/configure_macos_arm64_java.cmake @@ -1,5 +1,4 @@ -set(VTK_JAVA_SOURCE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) -set(VTK_JAVA_TARGET_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) +set(VTK_JAVA_RELEASE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) include("${CMAKE_CURRENT_LIST_DIR}/configure_macos.cmake") diff --git a/.gitlab/ci/configure_macos_x86_64_java.cmake b/.gitlab/ci/configure_macos_x86_64_java.cmake index ff5e7ca4f30112a137c95ce316a0d8ffa5e6e444..517869c5a2802c5046d69b5e1b251f98a87886a2 100644 --- a/.gitlab/ci/configure_macos_x86_64_java.cmake +++ b/.gitlab/ci/configure_macos_x86_64_java.cmake @@ -1,5 +1,4 @@ -set(VTK_JAVA_SOURCE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) -set(VTK_JAVA_TARGET_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) +set(VTK_JAVA_RELEASE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) include("${CMAKE_CURRENT_LIST_DIR}/configure_macos.cmake") diff --git a/.gitlab/ci/configure_options.cmake b/.gitlab/ci/configure_options.cmake index e22b63f60e0eff28f4128207400455e614a07435..fd228e78d49982629ca6382b0c663b92a0ed55db 100644 --- a/.gitlab/ci/configure_options.cmake +++ b/.gitlab/ci/configure_options.cmake @@ -44,7 +44,7 @@ configuration_flag(VTK_WRAP_PYTHON "python") # java configuration_flag(VTK_WRAP_JAVA "java") -configuration_flag(VTK_JAVA_INSTALL "java") +configuration_flag(VTK_BUILD_MAVEN_PKG "java") if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "java") set(BUILD_TESTING OFF CACHE BOOL "" FORCE) @@ -52,7 +52,7 @@ if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "java") # Naming is <arch-platform> since some maven versions fail to properly parse # the artifact name when numbers are trailing in the classifer name. set(MAVEN_NATIVE_ARTIFACTS "darwin-amd;darwin-arm;linux-amd;windows-amd" CACHE STRING "" FORCE) - set(MAVEN_VTK_ARTIFACT_SUFFIX "-java${VTK_JAVA_TARGET_VERSION}" CACHE STRING "") + set(MAVEN_VTK_ARTIFACT_SUFFIX "-java${VTK_JAVA_RELEASE_VERSION}" CACHE STRING "") # Disable snapshots for tag releases and also when the env variable # VTK_JAVA_FORCE_RELEASE is defined through the Gitlab schedule pipeline UI. # Note that VTK_JAVA_FORCE_RELEASE is used to create/override VTK java diff --git a/.gitlab/ci/configure_windows_vs2022_java.cmake b/.gitlab/ci/configure_windows_vs2022_java.cmake index f68bfb2126d6ffaf998936c6cd20e1edfeb86e11..782f87294c7e7b2d23467f04c652587ec47955f7 100644 --- a/.gitlab/ci/configure_windows_vs2022_java.cmake +++ b/.gitlab/ci/configure_windows_vs2022_java.cmake @@ -1,5 +1,4 @@ -set(VTK_JAVA_SOURCE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) -set(VTK_JAVA_TARGET_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) +set(VTK_JAVA_RELEASE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE) set(VTK_MODULE_ENABLE_VTK_vtkvtkm NO CACHE STRING "") # Java Wrap errors in windows diff --git a/CMakeLists.txt b/CMakeLists.txt index 964e18bd36614c33a4e8ce33053993e61a051648..ba9766d83c018e9596c4c0eb8ee8541596561404 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -711,8 +711,15 @@ if (VTK_WRAP_PYTHON) endif () if (VTK_WRAP_JAVA) - enable_language(Java) + find_package(Java 11 REQUIRED COMPONENTS Development) + + # We need to set CMAKE_Java variables before enable_language to + # retain specified JDK in ENV{JAVA_HOME}. + set(CMAKE_Java_ARCHIVE ${Java_JAR_EXECUTABLE}) + set(CMAKE_Java_COMPILER ${Java_JAVAC_EXECUTABLE}) + set(CMAKE_Java_RUNTIME ${Java_JAVA_EXECUTABLE}) + enable_language(Java) add_subdirectory(Wrapping/Java) endif () diff --git a/Documentation/docs/build_instructions/build_settings.md b/Documentation/docs/build_instructions/build_settings.md index a05b63d786143be340aca79af56e1ed625327623..23929d36e566c9350f855bcafa1d2f41de095229 100644 --- a/Documentation/docs/build_instructions/build_settings.md +++ b/Documentation/docs/build_instructions/build_settings.md @@ -31,9 +31,11 @@ Less common, but variables which may be of interest to some: available or not. * `VTK_WRAP_JAVA` (default `OFF`; requires `VTK_ENABLE_WRAPPING`): Whether Java support will be available or not. + * `VTK_JAVA_RELEASE_VERSION` (default `8`; requires `VTK_WRAP_JAVA`): + The version of Java in which VTK's Java wrapping will be built for. * `VTK_WRAP_SERIALIZATION` (default `OFF`; requires `VTK_ENABLE_WRAPPING`): Whether serialization code will be auto generated or not. - * `VTK_JAVA_INSTALL` (default `OFF`; requires `VTK_WRAP_JAVA`): + * `VTK_BUILD_MAVEN_PKG` (default `OFF`; requires `VTK_WRAP_JAVA`): Whether to build the Java Maven package for VTK. * `VTK_SMP_IMPLEMENTATION_TYPE` (default `Sequential`): Set which SMPTools will be implemented by default. Must be either `Sequential`, `STDThread`, diff --git a/Documentation/release/dev/change-java-build-flags.md b/Documentation/release/dev/change-java-build-flags.md new file mode 100644 index 0000000000000000000000000000000000000000..25ed8543a59b7fff074c4596d233aa0ce13de640 --- /dev/null +++ b/Documentation/release/dev/change-java-build-flags.md @@ -0,0 +1,9 @@ +# Change Java build flags + +We superseded `VTK_JAVA_SOURCE_VERSION` and `VTK_JAVA_TARGET_VERSION` cmake +flags by `VTK_JAVA_RELEASE_VERSION` which has the effect of the two former +flags when having the same value. + +This was added in newer JDK javac versions which now provide the `-release` +flags which simplifies its usage by avoiding having to add other flags such +as `--boot-class-path/-source/-release`. diff --git a/Wrapping/Java/CMakeLists.txt b/Wrapping/Java/CMakeLists.txt index ef8d1a36ba4eadc9368bd45d714d23d0c20c09c6..2e494e01352af0cad23f6a2f772d2d8ad4078aa8 100644 --- a/Wrapping/Java/CMakeLists.txt +++ b/Wrapping/Java/CMakeLists.txt @@ -24,8 +24,7 @@ vtk_module_wrap_java( # Update vtkSettings.java.in if this changes. JNILIB_DESTINATION "${CMAKE_INSTALL_JNILIBDIR}") -# TODO: Make FindJava.cmake use imported targets. -find_package(Java REQUIRED COMPONENTS Development) +# Needed for FindJOGL.cmake include(UseJava) option(VTK_JAVA_SWT_COMPONENT "Enable the SWT component for Java" OFF) @@ -206,16 +205,11 @@ foreach (java_file IN LISTS java_configure_sources) endforeach () # Set the javac source version -set(VTK_JAVA_SOURCE_VERSION "<DEFAULT>" CACHE STRING "javac source version") -mark_as_advanced(VTK_JAVA_SOURCE_VERSION) -set(VTK_JAVA_TARGET_VERSION "<DEFAULT>" CACHE STRING "javac target version") -mark_as_advanced(VTK_JAVA_TARGET_VERSION) +set(VTK_JAVA_RELEASE_VERSION "<DEFAULT>" CACHE STRING "javac release version") +mark_as_advanced(VTK_JAVA_RELEASE_VERSION) -if (VTK_JAVA_SOURCE_VERSION STREQUAL "<DEFAULT>") - set(VTK_JAVA_SOURCE_VERSION "1.7") -endif () -if (VTK_JAVA_TARGET_VERSION STREQUAL "<DEFAULT>") - set(VTK_JAVA_TARGET_VERSION "1.7") +if (VTK_JAVA_RELEASE_VERSION STREQUAL "<DEFAULT>") + set(VTK_JAVA_RELEASE_VERSION "8") endif () set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_JARDIR}") @@ -255,8 +249,7 @@ target_compile_options(vtkjava PRIVATE # TODO(java): Why does adding this to the include directories not work? "SHELL:-classpath \"${java_classpath}\"" - "SHELL:-source ${VTK_JAVA_SOURCE_VERSION}" - "SHELL:-target ${VTK_JAVA_TARGET_VERSION}") + "SHELL:--release ${VTK_JAVA_RELEASE_VERSION}") target_link_libraries(vtkjava PRIVATE $<$<BOOL:${VTK_JAVA_SWT_COMPONENT}>:${SWT_ECLIPSE_LIBRARIES}> @@ -295,9 +288,9 @@ if (NOT VTK_ABI_NAMESPACE_NAME STREQUAL "<DEFAULT>" AND NOT DEFINED ENV{CI}) endif () # Add the option to package VTK for custom Java packaging -option(VTK_JAVA_INSTALL "Use the Java rules to build the native libraries." OFF) +option(VTK_BUILD_MAVEN_PKG "Use the Java rules to build the native libraries." OFF) -if (VTK_JAVA_INSTALL) +if (VTK_BUILD_MAVEN_PKG) # Make sure we embed the runtime libraries when packaging the Java binaries if (WIN32) # install system runtimes. @@ -328,7 +321,7 @@ if (VTK_JAVA_INSTALL) endif () mark_as_advanced( - VTK_JAVA_INSTALL + VTK_BUILD_MAVEN_PKG MAVEN_LOCAL_REPOSITORY MAVEN_NATIVE_ARTIFACTS MAVEN_LOCAL_NATIVE_NAME @@ -401,7 +394,7 @@ endif() # Post-Install script for Custom Java Packaging # This install rule MUST stay at the bottom of that CMakeLists file as # it has to be the last install rule that get executed -if(VTK_JAVA_INSTALL) +if(VTK_BUILD_MAVEN_PKG) set(MAVEN_NATIVE_ARTIFACT_XML) foreach(native_name ${MAVEN_NATIVE_ARTIFACTS}) string(APPEND MAVEN_NATIVE_ARTIFACT_XML diff --git a/Wrapping/Java/README.md b/Wrapping/Java/README.md new file mode 100644 index 0000000000000000000000000000000000000000..422fc47ab4381ec9558662a54ed468c6b290163c --- /dev/null +++ b/Wrapping/Java/README.md @@ -0,0 +1,57 @@ +# Java instructions + +## Building + +In order to build the JOGL rendering classes, you will need to have JOGL +libraries installed on your system. For that you can use Maven to download +for you the proper JARs. + +List of possible classifiers: + + - natives-android-aarch64 + - natives-android-armv6 + - natives-linux-amd64 + - natives-linux-armv6 + - natives-linux-armv6hf + - natives-linux-i586 + - natives-macosx-universal + - natives-solaris-amd64 + - natives-solaris-i586 + - natives-windows-amd64 + - natives-windows-i586 + + +For that you can run the following command lines: + +``` +mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \ + -DrepoUrl=http://download.java.net/maven/2/ \ + -Dartifact=org.jogamp.gluegen:gluegen-rt:2.3.2 + +mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \ + -DrepoUrl=http://download.java.net/maven/2/ \ + -Dartifact=org.jogamp.gluegen:gluegen-rt:2.3.2:jar:CLASSIFIER + +mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \ + -DrepoUrl=http://download.java.net/maven/2/ \ + -Dartifact=org.jogamp.jogl:jogl-all:2.3.2 + +mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \ + -DrepoUrl=http://download.java.net/maven/2/ \ + -Dartifact=org.jogamp.jogl:jogl-all:2.3.2:jar:CLASSIFIER + +cmake --build build --source vtk-source \ + -DVTK_WRAP_JAVA=ON \ + -DVTK_JAVA_JOGL_COMPONENT=ON \ + -DJOGL_VERSION="2.3.2" \ + -DJOGL_GLUE=$HOME/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2.jar \ + -DJOGL_LIB=$HOME/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2.jar + +# Substitute $INSTALLDIR +cmake --install build --prefix $INSTALLDIR +``` + +## Demonstration +``` +java -cp $INSTALLDIR/vtk-XY.jar:/home/kitware/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2.jar:/home/kitware/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2.jar -Djava.library.path=$INSTALLDIR/natives-Linux-64bit vtk.sample.Demo +``` diff --git a/Wrapping/Java/README.txt b/Wrapping/Java/README.txt deleted file mode 100644 index f834528629ed7bb50bbbcc769ddbf1e8c4049508..0000000000000000000000000000000000000000 --- a/Wrapping/Java/README.txt +++ /dev/null @@ -1,97 +0,0 @@ -In order to build the JOGL rendering classes, you will need to have JOGL -libraries installed on your system. For that you can use Maven to download -for you the proper JARs. - -List of possible classifiers: - - - natives-android-aarch64 - - natives-android-armv6 - - natives-linux-amd64 - - natives-linux-armv6 - - natives-linux-armv6hf - - natives-linux-i586 - - natives-macosx-universal - - natives-solaris-amd64 - - natives-solaris-i586 - - natives-windows-amd64 - - natives-windows-i586 - -For that you can run the following command lines: - -$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \ - -DrepoUrl=http://download.java.net/maven/2/ \ - -Dartifact=org.jogamp.gluegen:gluegen-rt:2.3.2 - -$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \ - -DrepoUrl=http://download.java.net/maven/2/ \ - -Dartifact=org.jogamp.gluegen:gluegen-rt:2.3.2:jar:CLASSIFIER - - -$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \ - -DrepoUrl=http://download.java.net/maven/2/ \ - -Dartifact=org.jogamp.jogl:jogl-all:2.3.2 - -$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \ - -DrepoUrl=http://download.java.net/maven/2/ \ - -Dartifact=org.jogamp.jogl:jogl-all:2.3.2:jar:CLASSIFIER - - ------------------ - macOS build ------------------ -=> "/Users/seb" should be replaced with your HOME directory - -$ mkdir vtk-java -$ cd vtk-java - -$ java - ==> Follow direction to install java if missing -$ brew install maven -$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DrepoUrl=http://download.java.net/maven/2/ -Dartifact=org.jogamp.gluegen:gluegen-rt:2.3.2 -$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DrepoUrl=http://download.java.net/maven/2/ -Dartifact=org.jogamp.gluegen:gluegen-rt:2.3.2:jar:natives-macosx-universal -$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DrepoUrl=http://download.java.net/maven/2/ -Dartifact=org.jogamp.jogl:jogl-all:2.3.2 -$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DrepoUrl=http://download.java.net/maven/2/ -Dartifact=org.jogamp.jogl:jogl-all:2.3.2:jar:natives-macosx-universal - -$ git clone https://gitlab.kitware.com/vtk/vtk-superbuild.git -$ mkdir build-sb -$ cd build-sb -$ cmake -DUSE_VTK_MASTER:BOOL=ON -DBUILD_VTK7:BOOL=ON -DGENERATE_JAVA_PACKAGE:BOOL=ON -DENABLE_vtk:BOOL=ON -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=10.9 -DCMAKE_BUILD_TYPE:STRING=Release -DJAVA_AWT_INCLUDE_PATH:PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework/Headers -DJAVA_AWT_LIBRARY:FILEPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework -DJAVA_INCLUDE_PATH:PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework/Headers -DJAVA_INCLUDE_PATH2:PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework/Headers -DJAVA_JVM_LIBRARY:FILEPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework -DJava_IDLJ_EXECUTABLE:FILEPATH=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/idlj -DJava_JARSIGNER_EXECUTABLE:FILEPATH=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/jarsigner -DJava_JAR_EXECUTABLE:FILEPATH=/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/jar -DJava_JAVAC_EXECUTABLE:FILEPATH=/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac -DJava_JAVADOC_EXECUTABLE:FILEPATH=/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javadoc -DJava_JAVAH_EXECUTABLE:FILEPATH=/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javah -DJava_JAVA_EXECUTABLE:FILEPATH=/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -DJOGL_GLUE:FILEPATH=/Users/seb/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2.jar -DJOGL_LIB:FILEPATH=/Users/seb/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2.jar -DVTK_JAVA_SOURCE_VERSION:STRING=1.8 -DVTK_JAVA_TARGET_VERSION:STRING=1.8 ../vtk-superbuild/ -$ make -$ cd install -$ java -cp vtk-7.1.jar:/Users/seb/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2.jar:/Users/seb/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2.jar -Djava.library.path=./natives-Darwin-64bit vtk.sample.rendering.JoglConeRendering - - ------------------ - Linux build ------------------ -=> "/home/kitware" should be replaced with your HOME directory - -$ mkdir vtk-java -$ cd vtk-java - -$ curl http://apache.cs.utah.edu/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz -O -$ tar xvfz apache-maven-3.3.9-bin.tar.gz -$ ./apache-maven-3.3.9/bin/mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DrepoUrl=http://download.java.net/maven/2/ -Dartifact=org.jogamp.gluegen:gluegen-rt:2.3.2 -$ ./apache-maven-3.3.9/bin/mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DrepoUrl=http://download.java.net/maven/2/ -Dartifact=org.jogamp.gluegen:gluegen-rt:2.3.2:jar:natives-linux-amd64 -$ ./apache-maven-3.3.9/bin/mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DrepoUrl=http://download.java.net/maven/2/ -Dartifact=org.jogamp.jogl:jogl-all:2.3.2 -$ ./apache-maven-3.3.9/bin/mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DrepoUrl=http://download.java.net/maven/2/ -Dartifact=org.jogamp.jogl:jogl-all:2.3.2:jar:natives-linux-amd64 - -$ git clone https://gitlab.kitware.com/vtk/vtk-superbuild.git -$ mkdir build-sb -$ cd build-sb -$ cmake -DUSE_VTK_MASTER:BOOL=ON -DBUILD_VTK7:BOOL=ON -DGENERATE_JAVA_PACKAGE:BOOL=ON -DENABLE_vtk:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DVTK_JAVA_SOURCE_VERSION:STRING=1.8 -DVTK_JAVA_TARGET_VERSION:STRING=1.8 -DJAVA_AWT_INCLUDE_PATH:PATH=/usr/lib/jvm/java/include -DJAVA_AWT_LIBRARY:FILEPATH=/usr/lib/jvm/jre/lib/amd64/libjawt.so -DJAVA_INCLUDE_PATH:PATH=/usr/lib/jvm/java/include -DJAVA_INCLUDE_PATH2:PATH=/usr/lib/jvm/java/include/linux -DJAVA_JVM_LIBRARY:FILEPATH=/usr/lib/jvm/jre/lib/amd64/server/libjvm.so -DJava_IDLJ_EXECUTABLE:FILEPATH=/usr/bin/idlj -DJava_JARSIGNER_EXECUTABLE:FILEPATH=/usr/bin/jarsigner -DJava_JAR_EXECUTABLE:FILEPATH=/usr/bin/jar -DJava_JAVAC_EXECUTABLE:FILEPATH=/usr/bin/javac -DJava_JAVADOC_EXECUTABLE:FILEPATH=/usr/bin/javadoc -DJava_JAVAH_EXECUTABLE:FILEPATH=/usr/bin/javah -DJava_JAVA_EXECUTABLE:FILEPATH=/usr/bin/java -DJOGL_GLUE:FILEPATH=/home/kitware/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2.jar -DJOGL_LIB:FILEPATH=/home/kitware/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2.jar ../vtk-superbuild/ - -$ make -$ cd install -$ java -cp vtk-7.1.jar:/home/kitware/.m2/repository/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2.jar:/home/kitware/.m2/repository/org/jogamp/jogl/jogl-all/2.3.2/jogl-all-2.3.2.jar -Djava.library.path=./natives-Linux-64bit vtk.sample.Demo - -------------------- - Windows build -------------------- - -git clone https://gitlab.kitware.com/vtk/vtk-superbuild.git -mkdir build-sb -cd build-sb -cmake -DUSE_VTK_MASTER:BOOL=ON -DBUILD_VTK7:BOOL=ON -DGENERATE_JAVA_PACKAGE:BOOL=ON -DENABLE_vtk:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release -DVTK_JAVA_SOURCE_VERSION:STRING=1.8 -DVTK_JAVA_TARGET_VERSION:STRING=1.8 -DJAVA_AWT_INCLUDE_PATH:PATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\include -DJAVA_AWT_LIBRARY:FILEPATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\jre\bin\jawt.dll -DJAVA_INCLUDE_PATH:PATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\include -DJAVA_INCLUDE_PATH2:PATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\include\win32 -DJAVA_JVM_LIBRARY:FILEPATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\jre\bin\server\jvm.dll -DJava_IDLJ_EXECUTABLE:FILEPATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\bin\idlj.exe -DJava_JARSIGNER_EXECUTABLE:FILEPATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\bin\jarsigner.exe -DJava_JAR_EXECUTABLE:FILEPATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\bin\jar.exe -DJava_JAVAC_EXECUTABLE:FILEPATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\bin\javac.exe -DJava_JAVADOC_EXECUTABLE:FILEPATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\bin\javadoc.exe -DJava_JAVAH_EXECUTABLE:FILEPATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\bin\javah.exe -DJava_JAVA_EXECUTABLE:FILEPATH=C:\Users\utkarsh\vtk-java\jdk1.8.0_121\bin\java.exe -DJOGL_GLUE:FILEPATH=C:\Users\utkarsh\.m2\repository\org\jogamp\gluegen\gluegen-rt\2.3.2\gluegen-rt-2.3.2.jar -DJOGL_LIB:FILEPATH=C:\Users\utkarsh\.m2\repository\org\jogamp\jogl\jogl-all\2.3.2\jogl-all-2.3.2.jar ../vtk-superbuild/ - -C:\Users\utkarsh\vtk-java\jdk1.8.0_121\ diff --git a/Wrapping/Java/Testing/Java/CMakeLists.txt b/Wrapping/Java/Testing/Java/CMakeLists.txt index 83bfad0688884627c21a2ca166186a3feb1939bf..60b8cfd357cc67ad8565c77442861edc824afef9 100644 --- a/Wrapping/Java/Testing/Java/CMakeLists.txt +++ b/Wrapping/Java/Testing/Java/CMakeLists.txt @@ -29,8 +29,7 @@ add_library(vtkjava_tests STATIC target_compile_options(vtkjava_tests PRIVATE "SHELL:-classpath \"${vtk_test_classpath}\"" - "SHELL:-source ${VTK_JAVA_SOURCE_VERSION}" - "SHELL:-target ${VTK_JAVA_TARGET_VERSION}") + "SHELL:--release ${VTK_JAVA_RELEASE_VERSION}") target_link_libraries(vtkjava_tests PRIVATE VTK::vtkjava)