mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
Make JAR dep paths modifiable (#6331)
This commit is contained in:
@@ -112,9 +112,9 @@ if (HDF5_BUILD_JAVA)
|
|||||||
set (HDF5_JARHDF5_JAR_NAME "jarhdf5-${HDF5_PACKAGE_VERSION}.jar")
|
set (HDF5_JARHDF5_JAR_NAME "jarhdf5-${HDF5_PACKAGE_VERSION}.jar")
|
||||||
set (HDF5_JAVAHDF5_JAR_NAME "javahdf5-${HDF5_PACKAGE_VERSION}.jar")
|
set (HDF5_JAVAHDF5_JAR_NAME "javahdf5-${HDF5_PACKAGE_VERSION}.jar")
|
||||||
endif ()
|
endif ()
|
||||||
# slf4j JAR names (these are dependencies, version shouldn't change with SNAPSHOT)
|
# slf4j JAR names derived from configured paths so overrides are reflected in the exported config
|
||||||
set (HDF5_SLF4J_API_JAR_NAME "slf4j-api-2.0.16.jar")
|
get_filename_component (HDF5_SLF4J_API_JAR_NAME ${HDF5_JAVA_LOGGING_JAR} NAME)
|
||||||
set (HDF5_SLF4J_NOP_JAR_NAME "slf4j-nop-2.0.16.jar")
|
get_filename_component (HDF5_SLF4J_NOP_JAR_NAME ${HDF5_JAVA_LOGGING_NOP_JAR} NAME)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
|
|||||||
+5
-3
@@ -325,9 +325,11 @@ set (HDF5_JAVA_SRCJNI_PATH ${HDF5_SOURCE_DIR}/java/src-jni)
|
|||||||
set (HDF5_JAVA_SRCJNI_JNI_SRC_DIR ${HDF5_SOURCE_DIR}/java/src-jni/jni)
|
set (HDF5_JAVA_SRCJNI_JNI_SRC_DIR ${HDF5_SOURCE_DIR}/java/src-jni/jni)
|
||||||
set (HDF5_JAVA_LIB_DIR ${HDF5_SOURCE_DIR}/java/lib)
|
set (HDF5_JAVA_LIB_DIR ${HDF5_SOURCE_DIR}/java/lib)
|
||||||
set (HDF5_JAVA_JSRC_DIR ${HDF5_SOURCE_DIR}/java/jsrc)
|
set (HDF5_JAVA_JSRC_DIR ${HDF5_SOURCE_DIR}/java/jsrc)
|
||||||
set (HDF5_JAVA_LOGGING_JAR ${HDF5_SOURCE_DIR}/java/lib/slf4j-api-2.0.16.jar)
|
set (HDF5_JAVA_LOGGING_JAR ${HDF5_SOURCE_DIR}/java/lib/slf4j-api-2.0.16.jar CACHE FILEPATH "Path to SLF4J API jar")
|
||||||
set (HDF5_JAVA_LOGGING_NOP_JAR ${HDF5_SOURCE_DIR}/java/lib/ext/slf4j-nop-2.0.16.jar)
|
set (HDF5_JAVA_LOGGING_NOP_JAR ${HDF5_SOURCE_DIR}/java/lib/ext/slf4j-nop-2.0.16.jar CACHE FILEPATH "Path to SLF4J NOP binding jar")
|
||||||
set (HDF5_JAVA_LOGGING_SIMPLE_JAR ${HDF5_SOURCE_DIR}/java/lib/ext/slf4j-simple-2.0.16.jar)
|
set (HDF5_JAVA_LOGGING_SIMPLE_JAR ${HDF5_SOURCE_DIR}/java/lib/ext/slf4j-simple-2.0.16.jar CACHE FILEPATH "Path to SLF4J simple binding jar")
|
||||||
|
set (HDF5_JAVA_JUNIT_JAR ${HDF5_JAVA_LIB_DIR}/org.junit.jar CACHE FILEPATH "Path to JUnit jar")
|
||||||
|
set (HDF5_JAVA_HAMCREST_JAR ${HDF5_JAVA_LIB_DIR}/org.hamcrest.jar CACHE FILEPATH "Path to Hamcrest jar")
|
||||||
set (HDF5_DOCS_DIR ${HDF5_SOURCE_DIR}/docs)
|
set (HDF5_DOCS_DIR ${HDF5_SOURCE_DIR}/docs)
|
||||||
set (HDF5_DOXYGEN_DIR ${HDF5_DOCS_DIR}/doxygen)
|
set (HDF5_DOXYGEN_DIR ${HDF5_DOCS_DIR}/doxygen)
|
||||||
|
|
||||||
|
|||||||
@@ -166,6 +166,11 @@ These are options which are specific to HDF5's wrappers for programming language
|
|||||||
| `HDF5_JAVA_PACK_JRE` | `BOOL` | `OFF` | If `ON`, packages a Java JRE with an HDF5 installation. |
|
| `HDF5_JAVA_PACK_JRE` | `BOOL` | `OFF` | If `ON`, packages a Java JRE with an HDF5 installation. |
|
||||||
| `HDF5_ENABLE_MAVEN_DEPLOY` | `BOOL` | `OFF` | If `ON`, enables Maven repository deployment support. |
|
| `HDF5_ENABLE_MAVEN_DEPLOY` | `BOOL` | `OFF` | If `ON`, enables Maven repository deployment support. |
|
||||||
| `HDF5_MAVEN_SNAPSHOT` | `BOOL` | `OFF` | If `ON`, adds "-SNAPSHOT" to version portion of names of Maven artifacts. |
|
| `HDF5_MAVEN_SNAPSHOT` | `BOOL` | `OFF` | If `ON`, adds "-SNAPSHOT" to version portion of names of Maven artifacts. |
|
||||||
|
| `HDF5_JAVA_LOGGING_JAR` | `FILEPATH` | Bundled `java/lib/slf4j-api-2.0.16.jar` | Path to the SLF4J API jar. |
|
||||||
|
| `HDF5_JAVA_LOGGING_NOP_JAR` | `FILEPATH` | Bundled `java/lib/ext/slf4j-nop-2.0.16.jar` | Path to the SLF4J NOP binding jar. |
|
||||||
|
| `HDF5_JAVA_LOGGING_SIMPLE_JAR` | `FILEPATH` | Bundled `java/lib/ext/slf4j-simple-2.0.16.jar` | Path to the SLF4J simple binding jar. |
|
||||||
|
| `HDF5_JAVA_JUNIT_JAR` | `FILEPATH` | Bundled `java/lib/org.junit.jar` | Path to the JUnit 4 jar. |
|
||||||
|
| `HDF5_JAVA_HAMCREST_JAR` | `FILEPATH` | Bundled `java/lib/org.hamcrest.jar` | Path to the Hamcrest jar. |
|
||||||
|
|
||||||
### C++ options
|
### C++ options
|
||||||
<a name="pl_cxx"></a>
|
<a name="pl_cxx"></a>
|
||||||
|
|||||||
@@ -25,6 +25,41 @@ set_directory_properties(PROPERTIES INCLUDE_DIRECTORIES "${HDF5_JAVA_INCLUDE_DIR
|
|||||||
|
|
||||||
set (CMAKE_JAVA_INCLUDE_PATH "")
|
set (CMAKE_JAVA_INCLUDE_PATH "")
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# Configurable paths for Java dependency JARs
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
set (HDF5_JAVA_LOGGING_JAR ${HDF5_JAVA_LIB_DIR}/slf4j-api-2.0.16.jar CACHE FILEPATH "Path to SLF4J API jar (used at compile and runtime)")
|
||||||
|
set (HDF5_JAVA_LOGGING_NOP_JAR ${HDF5_JAVA_LIB_DIR}/ext/slf4j-nop-2.0.16.jar CACHE FILEPATH "Path to SLF4J NOP binding jar (suppresses logging when no other backend is present)")
|
||||||
|
set (HDF5_JAVA_LOGGING_SIMPLE_JAR ${HDF5_JAVA_LIB_DIR}/ext/slf4j-simple-2.0.16.jar CACHE FILEPATH "Path to SLF4J simple binding jar (used in tests for basic stdout logging)")
|
||||||
|
set (HDF5_JAVA_JUNIT_JAR ${HDF5_JAVA_LIB_DIR}/org.junit.jar CACHE FILEPATH "Path to JUnit 4 jar (test-only dependency)")
|
||||||
|
set (HDF5_JAVA_HAMCREST_JAR ${HDF5_JAVA_LIB_DIR}/org.hamcrest.jar CACHE FILEPATH "Path to Hamcrest jar (test-only dependency, required by JUnit 4)")
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# Validate that all required JAR paths exist
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
set (_HDF5_REQUIRED_JAVA_JARS
|
||||||
|
HDF5_JAVA_LOGGING_JAR
|
||||||
|
HDF5_JAVA_LOGGING_NOP_JAR
|
||||||
|
HDF5_JAVA_LOGGING_SIMPLE_JAR
|
||||||
|
)
|
||||||
|
if (NOT HDF5_EXTERNALLY_CONFIGURED AND BUILD_TESTING)
|
||||||
|
list (APPEND _HDF5_REQUIRED_JAVA_JARS
|
||||||
|
HDF5_JAVA_JUNIT_JAR
|
||||||
|
HDF5_JAVA_HAMCREST_JAR
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
foreach (_jar_var IN LISTS _HDF5_REQUIRED_JAVA_JARS)
|
||||||
|
if (DEFINED ${_jar_var} AND NOT "${${_jar_var}}" STREQUAL "")
|
||||||
|
if (NOT EXISTS "${${_jar_var}}")
|
||||||
|
message (FATAL_ERROR
|
||||||
|
"Configured JAR path '${${_jar_var}}' for cache variable "
|
||||||
|
"'${_jar_var}' does not exist. Please set -D${_jar_var}=<valid-path>."
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endforeach ()
|
||||||
|
unset (_HDF5_REQUIRED_JAVA_JARS)
|
||||||
|
|
||||||
if (Java_VERSION_STRING VERSION_GREATER_EQUAL "25.0.0")
|
if (Java_VERSION_STRING VERSION_GREATER_EQUAL "25.0.0")
|
||||||
if (HDF5_ENABLE_JNI)
|
if (HDF5_ENABLE_JNI)
|
||||||
set (HDF5_JAVA_USE_FFM FALSE)
|
set (HDF5_JAVA_USE_FFM FALSE)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ set (HDF5_JAVA_JTEST_FFM_TEST_SOURCES
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Update classpath to include FfmTestSupport JAR for test compilation
|
# Update classpath to include FfmTestSupport JAR for test compilation
|
||||||
set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVAHDF5_JARS};${${HDF5_JAVA_JTEST_LIB_TARGET}_FfmTestSupport_JAR_FILE};${HDF5_JAVA_LIB_DIR}/org.junit.jar;${HDF5_JAVA_LIB_DIR}/org.hamcrest.jar;${HDF5_JAVA_LOGGING_JAR};${HDF5_JAVA_LOGGING_SIMPLE_JAR}")
|
set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVAHDF5_JARS};${${HDF5_JAVA_JTEST_LIB_TARGET}_FfmTestSupport_JAR_FILE};${HDF5_JAVA_JUNIT_JAR};${HDF5_JAVA_HAMCREST_JAR};${HDF5_JAVA_LOGGING_JAR};${HDF5_JAVA_LOGGING_SIMPLE_JAR}")
|
||||||
|
|
||||||
foreach (ffm_test_file ${HDF5_JAVA_JTEST_FFM_TEST_SOURCES})
|
foreach (ffm_test_file ${HDF5_JAVA_JTEST_FFM_TEST_SOURCES})
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ Enable-Native-Access: ALL-UNNAMED
|
|||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
# Restore classpath for other tests
|
# Restore classpath for other tests
|
||||||
set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVAHDF5_JARS};${HDF5_JAVA_LIB_DIR}/org.junit.jar;${HDF5_JAVA_LIB_DIR}/org.hamcrest.jar;${HDF5_JAVA_LOGGING_JAR};${HDF5_JAVA_LOGGING_SIMPLE_JAR}")
|
set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVAHDF5_JARS};${HDF5_JAVA_JUNIT_JAR};${HDF5_JAVA_HAMCREST_JAR};${HDF5_JAVA_LOGGING_JAR};${HDF5_JAVA_LOGGING_SIMPLE_JAR}")
|
||||||
|
|
||||||
HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterate.hdf" "${HDF5_JAVA_JTEST_LIB_TARGET}_files")
|
HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterate.hdf" "${HDF5_JAVA_JTEST_LIB_TARGET}_files")
|
||||||
HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterateL1.hdf" "${HDF5_JAVA_JTEST_LIB_TARGET}_files")
|
HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/h5ex_g_iterate.orig" "${PROJECT_BINARY_DIR}/h5ex_g_iterateL1.hdf" "${HDF5_JAVA_JTEST_LIB_TARGET}_files")
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ if (HDF5_ENABLE_HDFS)
|
|||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_LIB_DIR}/org.junit.jar;${HDF5_JAVA_LIB_DIR}/org.hamcrest.jar;${HDF5_JAVA_JARS};${HDF5_JAVA_LOGGING_JAR};${HDF5_JAVA_LOGGING_SIMPLE_JAR}")
|
set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_JUNIT_JAR};${HDF5_JAVA_HAMCREST_JAR};${HDF5_JAVA_JARS};${HDF5_JAVA_LOGGING_JAR};${HDF5_JAVA_LOGGING_SIMPLE_JAR}")
|
||||||
|
|
||||||
foreach (test_file ${HDF5_JAVA_TEST_SOURCES})
|
foreach (test_file ${HDF5_JAVA_TEST_SOURCES})
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ if (HDF5_ENABLE_HDFS)
|
|||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_JARS};${HDF5_JAVAHDF5_JARS};${HDF5_JAVA_LIB_DIR}/org.junit.jar;${HDF5_JAVA_LIB_DIR}/org.hamcrest.jar;${HDF5_JAVA_LOGGING_JAR};${HDF5_JAVA_LOGGING_SIMPLE_JAR}")
|
set (CMAKE_JAVA_INCLUDE_PATH "${HDF5_JAVA_JARS};${HDF5_JAVAHDF5_JARS};${HDF5_JAVA_JUNIT_JAR};${HDF5_JAVA_HAMCREST_JAR};${HDF5_JAVA_LOGGING_JAR};${HDF5_JAVA_LOGGING_SIMPLE_JAR}")
|
||||||
|
|
||||||
foreach (test_file ${HDF5_JAVA_TEST_SOURCES})
|
foreach (test_file ${HDF5_JAVA_TEST_SOURCES})
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,9 @@ For releases prior to version 2.0.0, please see the release.txt file and for mor
|
|||||||
|
|
||||||
## Java Enhancements:
|
## Java Enhancements:
|
||||||
|
|
||||||
|
- Java dependency JAR paths are now configurable CMake cache variables, allowing system-provided JARs to be used in place of the bundled copies.
|
||||||
|
|
||||||
|
|
||||||
## Acknowledgements:
|
## Acknowledgements:
|
||||||
|
|
||||||
We would like to thank the many HDF5 community members who contributed to this release of HDF5.
|
We would like to thank the many HDF5 community members who contributed to this release of HDF5.
|
||||||
@@ -111,6 +113,10 @@ We would like to thank the many HDF5 community members who contributed to this r
|
|||||||
|
|
||||||
## Java Library
|
## Java Library
|
||||||
|
|
||||||
|
### Java dependency JAR paths are now user-configurable
|
||||||
|
|
||||||
|
The CMake variables `HDF5_JAVA_LOGGING_JAR`, `HDF5_JAVA_LOGGING_NOP_JAR`, `HDF5_JAVA_LOGGING_SIMPLE_JAR`, `HDF5_JAVA_JUNIT_JAR`, and `HDF5_JAVA_HAMCREST_JAR` are now CMake cache variables with the bundled JARs as defaults. Users can override these at configure time to use system-provided JARs. See `INSTALL_CMake_options.md` for details.
|
||||||
|
|
||||||
## Tools
|
## Tools
|
||||||
|
|
||||||
## High-Level APIs
|
## High-Level APIs
|
||||||
|
|||||||
Reference in New Issue
Block a user