From fe7ba4931a4dd5b891e2e4f02e79fcc7bcdc7efc Mon Sep 17 00:00:00 2001 From: Allen Byrne Date: Wed, 17 Jul 2024 15:31:34 -0500 Subject: [PATCH] Use correct name of java library --- .../config/cmake/HDFExampleMacros.cmake | 26 ++++++++++++++----- config/cmake/hdf4-config.cmake.in | 2 ++ java/src/hdf/hdflib/HDFLibrary.java | 2 +- java/src/jni/CMakeLists.txt | 22 +++++++--------- libhdf4.settings.cmake.in | 2 +- 5 files changed, 33 insertions(+), 21 deletions(-) diff --git a/HDF4Examples/config/cmake/HDFExampleMacros.cmake b/HDF4Examples/config/cmake/HDFExampleMacros.cmake index 012abcbbd1..952bed6518 100644 --- a/HDF4Examples/config/cmake/HDFExampleMacros.cmake +++ b/HDF4Examples/config/cmake/HDFExampleMacros.cmake @@ -33,10 +33,10 @@ macro (BASIC_SETTINGS varname) #----------------------------------------------------------------------------- # Compiler specific flags : Shouldn't there be compiler tests for these #----------------------------------------------------------------------------- - if (CMAKE_COMPILER_IS_GNUCC) + if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99 -fomit-frame-pointer -finline-functions -fno-common") endif () - if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_COMPILER_IS_GNUCXX) + if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set (CMAKE_CXX_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_CXX_FLAGS} -fomit-frame-pointer -finline-functions -fno-common") endif () @@ -44,10 +44,10 @@ macro (BASIC_SETTINGS varname) # This is in here to help some of the GCC based IDES like Eclipse # and code blocks parse the compiler errors and warnings better. #----------------------------------------------------------------------------- - if (CMAKE_COMPILER_IS_GNUCC) + if (CMAKE_C_COMPILER_ID STREQUAL "GNU") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0") endif () - if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_COMPILER_IS_GNUCXX) + if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0") endif () @@ -62,7 +62,7 @@ macro (BASIC_SETTINGS varname) set (HDF_WARNINGS_BLOCKED 1) string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /w") - if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_COMPILER_IS_GNUCXX) + if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") string (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w") endif () @@ -79,7 +79,7 @@ macro (BASIC_SETTINGS varname) # Most compilers use -w to suppress warnings. if (NOT HDF_WARNINGS_BLOCKED) set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w") - if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_COMPILER_IS_GNUCXX) + if (CMAKE_CXX_COMPILER_LOADED AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") endif () endif () @@ -185,7 +185,19 @@ macro (HDF4_SUPPORT) if (HDF_BUILD_JAVA AND HDF4_Java_FOUND) if (${HDF4_BUILD_JAVA}) set (CMAKE_JAVA_INCLUDE_PATH "${CMAKE_JAVA_INCLUDE_PATH};${HDF4_JAVA_INCLUDE_DIRS}") - set (H4EX_JAVA_LIBRARY ${HDF4_JAVA_LIBRARY}) + if (HDF4_BUILD_MODE) + string(TOUPPER "${HDF4_BUILD_MODE}" UPPER_BUILD_TYPE) + get_target_property(libsoname ${HDF4_JAVA_LIBRARY} IMPORTED_SONAME_${UPPER_BUILD_TYPE}) + elseif (HDF_CFG_NAME) + string(TOUPPER "${HDF_CFG_NAME}" UPPER_BUILD_TYPE) + get_target_property(libsoname ${HDF4_JAVA_LIBRARY} IMPORTED_SONAME_${UPPER_BUILD_TYPE}) + else () + get_target_property(libsoname ${HDF4_JAVA_LIBRARY} IMPORTED_SONAME) + endif () + get_filename_component (libname ${libsoname} NAME_WE) + string (REGEX REPLACE "^lib" "" libname ${libname}) + message (STATUS "HDF4 lib:${HDF4_JAVA_LIBRARY} OR ${libsoname} OR ${libname}") + set (H4EX_JAVA_LIBRARY ${libname}) set (H4EX_JAVA_LIBRARIES ${HDF4_JAVA_LIBRARY}) message (STATUS "HDF4 lib:${H4EX_JAVA_LIBRARY} jars:${HDF4_JAVA_INCLUDE_DIRS}}") else () diff --git a/config/cmake/hdf4-config.cmake.in b/config/cmake/hdf4-config.cmake.in index 0a92509665..7912856b4b 100644 --- a/config/cmake/hdf4-config.cmake.in +++ b/config/cmake/hdf4-config.cmake.in @@ -13,6 +13,8 @@ set (${HDF4_PACKAGE_NAME}_VALID_COMPONENTS Java ) +set (${HDF4_PACKAGE_NAME}_BUILD_MODE @HDF_CFG_NAME@) + #----------------------------------------------------------------------------- # User Options #----------------------------------------------------------------------------- diff --git a/java/src/hdf/hdflib/HDFLibrary.java b/java/src/hdf/hdflib/HDFLibrary.java index a3adfef86a..191927b040 100644 --- a/java/src/hdf/hdflib/HDFLibrary.java +++ b/java/src/hdf/hdflib/HDFLibrary.java @@ -146,7 +146,7 @@ */ public class HDFLibrary implements java.io.Serializable { /** - * + * Serialization ID */ private static final long serialVersionUID = -1695429510319126910L; diff --git a/java/src/jni/CMakeLists.txt b/java/src/jni/CMakeLists.txt index df7a211c36..d0baead01d 100644 --- a/java/src/jni/CMakeLists.txt +++ b/java/src/jni/CMakeLists.txt @@ -26,18 +26,16 @@ set (HDF4_JAVA_JNI_CSRCS set (CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON) ########### JNI libraries always must be built shared ############### -if (BUILD_SHARED_LIBS) - add_library (${HDF4_JAVA_JNI_LIB_TARGET} SHARED ${HDF4_JAVA_JNI_CSRCS}) - target_include_directories(${HDF4_JAVA_JNI_LIB_TARGET} - PRIVATE "${HDF4_BINARY_DIR};${HDF4_JAVA_JNI_SOURCE_DIR}" - ) - target_compile_options(${HDF4_JAVA_JNI_LIB_TARGET} PRIVATE "${HDF4_CMAKE_C_FLAGS}") - TARGET_C_PROPERTIES (${HDF4_JAVA_JNI_LIB_TARGET} SHARED) - target_link_libraries (${HDF4_JAVA_JNI_LIB_TARGET} PUBLIC ${HDF4_MF_LIBSH_TARGET} ${HDF4_SRC_LIBSH_TARGET}) - set_target_properties (${HDF4_JAVA_JNI_LIB_TARGET} PROPERTIES FOLDER libraries/jni) - SET_GLOBAL_VARIABLE (HDF4_LIBRARIES_TO_EXPORT "${HDF4_LIBRARIES_TO_EXPORT};${HDF4_JAVA_JNI_LIB_TARGET}") - H4_SET_LIB_OPTIONS (${HDF4_JAVA_JNI_LIB_TARGET} ${HDF4_JAVA_JNI_LIB_NAME} SHARED "JAVA") -endif () +add_library (${HDF4_JAVA_JNI_LIB_TARGET} SHARED ${HDF4_JAVA_JNI_CSRCS}) +target_include_directories(${HDF4_JAVA_JNI_LIB_TARGET} + PRIVATE "${HDF4_BINARY_DIR};${HDF4_JAVA_JNI_SOURCE_DIR}" +) +target_compile_options(${HDF4_JAVA_JNI_LIB_TARGET} PRIVATE "${HDF4_CMAKE_C_FLAGS}") +TARGET_C_PROPERTIES (${HDF4_JAVA_JNI_LIB_TARGET} SHARED) +target_link_libraries (${HDF4_JAVA_JNI_LIB_TARGET} PUBLIC ${HDF4_MF_LIBSH_TARGET} ${HDF4_SRC_LIBSH_TARGET}) +set_target_properties (${HDF4_JAVA_JNI_LIB_TARGET} PROPERTIES FOLDER libraries/jni) +SET_GLOBAL_VARIABLE (HDF4_LIBRARIES_TO_EXPORT "${HDF4_LIBRARIES_TO_EXPORT};${HDF4_JAVA_JNI_LIB_TARGET}") +H4_SET_LIB_OPTIONS (${HDF4_JAVA_JNI_LIB_TARGET} ${HDF4_JAVA_JNI_LIB_NAME} SHARED "JAVA") #----------------------------------------------------------------------------- # Add Target to clang-format diff --git a/libhdf4.settings.cmake.in b/libhdf4.settings.cmake.in index f29bff8928..6533882cea 100644 --- a/libhdf4.settings.cmake.in +++ b/libhdf4.settings.cmake.in @@ -14,7 +14,7 @@ General Information: Compiling Options: ------------------ - Compilation Mode: @CMAKE_BUILD_TYPE@ + Compilation Mode: @HDF_CFG_NAME@ C Compiler: @CMAKE_C_COMPILER@ CFLAGS: @CMAKE_C_FLAGS@ CPPFLAGS: @CMAKE_CPP_FLAGS@