cmake_minimum_required (VERSION 2.8.6) PROJECT (HDFJAVA_JNI C) #----------------------------------------------------------------------------- # Option to Build Shared/Static libs, default is static #----------------------------------------------------------------------------- OPTION (BUILD_SHARED_LIBS "Build Shared Libraries" OFF) SET (LIB_TYPE STATIC) SET (HDFJAVA_BUILT_AS_DYNAMIC_LIB 1) IF (BUILD_SHARED_LIBS) SET (LIB_TYPE SHARED) SET (H4_BUILT_AS_DYNAMIC_LIB 1) SET (H5_BUILT_AS_DYNAMIC_LIB 1) ELSE (BUILD_SHARED_LIBS) SET (H4_BUILT_AS_STATIC_LIB 1) SET (H5_BUILT_AS_STATIC_LIB 1) IF (NOT WIN32) # should this be a user setting : Everyone uses it anyway ? ADD_DEFINITIONS (-DPIC) ENDIF (NOT WIN32) ENDIF (BUILD_SHARED_LIBS) #----------------------------------------------------------------------------- # When building utility executables that generate other (source) files : # we make use of the following variables defined in the root CMakeLists. # Certain systems may add /Debug or /Release to output paths # and we need to call the executable from inside the CMake configuration #----------------------------------------------------------------------------- SET (EXE_EXT "") IF (WIN32) SET (EXE_EXT ".exe") IF (NOT CYGWIN) ADD_DEFINITIONS (-DBIND_TO_CURRENT_VCLIBS_VERSION=1) ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS) ENDIF (NOT CYGWIN) ENDIF (WIN32) IF (MSVC) SET (CMAKE_MFC_FLAG 0) ENDIF (MSVC) #----------------------------------------------------------------------------- # Add some definitions for Debug Builds #----------------------------------------------------------------------------- IF (CMAKE_BUILD_TYPE MATCHES Debug) ADD_DEFINITIONS(-DDEBUG) #-- NMake Makefiles will overwhelm the console with warnings if -Wall is used. IF (NOT WIN32) ADD_DEFINITIONS (-Wall) ENDIF (NOT WIN32) ELSE (CMAKE_BUILD_TYPE MATCHES Debug) ADD_DEFINITIONS (-UH4_DEBUG_API -DNDEBUG) ENDIF (CMAKE_BUILD_TYPE MATCHES Debug) #----------------------------------------------------------------------------- # Compiler specific flags : Shouldn't there be compiler tests for these #----------------------------------------------------------------------------- IF (CMAKE_COMPILER_IS_GNUCC) SET (CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS} -std=c99 -fomit-frame-pointer -finline-functions -fno-common") ENDIF (CMAKE_COMPILER_IS_GNUCC) IF (CMAKE_COMPILER_IS_GNUCXX) SET (CMAKE_CXX_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_CXX_FLAGS} -fomit-frame-pointer -finline-functions -fno-common") ENDIF (CMAKE_COMPILER_IS_GNUCXX) #----------------------------------------------------------------------------- # Option to allow the user to disable compiler warnings #----------------------------------------------------------------------------- OPTION (HDF_DISABLE_COMPILER_WARNINGS "Disable compiler warnings" OFF) IF (HDF_DISABLE_COMPILER_WARNINGS) # MSVC uses /w to suppress warnings. It also complains if another # warning level is given, so remove it. IF (MSVC) 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") STRING (REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /w") ENDIF (MSVC) IF (WIN32 AND NOT CYGWIN) ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS) ENDIF (WIN32 AND NOT CYGWIN) # Borland uses -w- to suppress warnings. IF (BORLAND) SET (HDF_WARNINGS_BLOCKED 1) SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w-") ENDIF (BORLAND) # Most compilers use -w to suppress warnings. IF (NOT HDF_WARNINGS_BLOCKED) SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w") SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w") ENDIF (NOT HDF_WARNINGS_BLOCKED) ENDIF (HDF_DISABLE_COMPILER_WARNINGS) SET (EXTERNAL_HEADER_LIST "") SET (EXTERNAL_LIBRARY_LIST "") SET (EXTERNAL_LIBRARYDLL_LIST "") #----------------------------------------------------------------------------- # 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) SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fmessage-length=0") ENDIF (CMAKE_COMPILER_IS_GNUCC) IF (CMAKE_COMPILER_IS_GNUCXX) SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fmessage-length=0") ENDIF (CMAKE_COMPILER_IS_GNUCXX) INCLUDE (ExternalProject) OPTION (HDF_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building" "NO") OPTION (JPEG_USE_EXTERNAL "Use External Library Building for JPEG" 0) OPTION (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" 0) OPTION (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" 0) OPTION (HDF4_USE_EXTERNAL "Use External Library Building for HDF4" 0) OPTION (HDF5_USE_EXTERNAL "Use External Library Building for HDF5" 0) IF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") SET (JPEG_USE_EXTERNAL 1 CACHE BOOL "Use External Library Building for JPEG" FORCE) SET (ZLIB_USE_EXTERNAL 1 CACHE BOOL "Use External Library Building for ZLIB" FORCE) SET (SZIP_USE_EXTERNAL 1 CACHE BOOL "Use External Library Building for SZIP" FORCE) SET (HDF4_USE_EXTERNAL 1 CACHE BOOL "Use External Library Building for HDF4" FORCE) SET (HDF5_USE_EXTERNAL 1 CACHE BOOL "Use External Library Building for HDF5" FORCE) IF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN") SET (JPEG_URL ${JPEG_SVN_URL}) SET (ZLIB_URL ${ZLIB_SVN_URL}) SET (SZIP_URL ${SZIP_SVN_URL}) SET (HDF4_URL ${HDF4_SVN_URL}) SET (HDF5_URL ${HDF5_SVN_URL}) ELSEIF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") IF (NOT TGZ_PATH) SET (TGZ_PATH ${HDFJAVA_SOURCE_DIR}) ENDIF (NOT TGZ_PATH) SET (JPEG_URL ${TGZ_PATH}/${JPEG_TGZ_NAME}) SET (ZLIB_URL ${TGZ_PATH}/${ZLIB_TGZ_NAME}) SET (SZIP_URL ${TGZ_PATH}/${SZIP_TGZ_NAME}) SET (HDF4_URL ${TGZ_PATH}/${HDF4_TGZ_NAME}) SET (HDF5_URL ${TGZ_PATH}/${HDF5_TGZ_NAME}) ENDIF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN") ENDIF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") SET (HDF4_LINK_LIBS ${LINK_LIBS}) SET (HDF5_LINK_LIBS ${LINK_LIBS}) #----------------------------------------------------------------------------- # Option for LibJpeg support #----------------------------------------------------------------------------- OPTION (HDF_ENABLE_JPEG_LIB_SUPPORT "Enable libjpeg" ON) IF (HDF_ENABLE_JPEG_LIB_SUPPORT) IF (NOT HJAVA_JPEGLIB_HEADER) IF (NOT JPEG_USE_EXTERNAL) FIND_PACKAGE (JPEG) ENDIF (NOT JPEG_USE_EXTERNAL) IF (JPEG_FOUND) SET (JPEG_INCLUDE_DIRS ${JPEG_INCLUDE_DIR}) SET (HJAVA_HAVE_JPEGLIB_H 1) SET (HJAVA_HAVE_LIBJPEG 1) SET (HJAVA_JPEGLIB_HEADER "jpeglib.h") SET (JPEG_INCLUDE_DIR_GEN ${JPEG_INCLUDE_DIR}) ELSE (JPEG_FOUND) IF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") # May need to build JPEG with PIC on x64 machines with gcc # Need to use CMAKE_ANSI_CFLAGS define so that compiler test works IF (BUILD_JPEG_WITH_PIC) SET (JPEG_CMAKE_C_FLAGS "-fPIC") ELSE (BUILD_JPEG_WITH_PIC) IF (DEFINED CMAKE_ANSI_CFLAGS) SET (JPEG_CMAKE_C_FLAGS ${CMAKE_ANSI_CFLAGS}) ELSE (DEFINED CMAKE_ANSI_CFLAGS) SET (JPEG_CMAKE_C_FLAGS " ") ENDIF (DEFINED CMAKE_ANSI_CFLAGS) ENDIF (BUILD_JPEG_WITH_PIC) EXTERNAL_JPEG_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${JPEG_CMAKE_C_FLAGS}) SET (HJAVA_HAVE_JPEGLIB_H 1) SET (HJAVA_HAVE_LIBJPEG 1) SET (HJAVA_JPEGLIB_HEADER "jpeglib.h") MESSAGE (STATUS "JPEGLIB is built") ELSE (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") MESSAGE (FATAL_ERROR " JPEGLib is Required for JPEGLib support in HDFJAVA") ENDIF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") ENDIF (JPEG_FOUND) ELSE (NOT HJAVA_JPEGLIB_HEADER) # This project is being called from within another and JPEGLib is already configured SET (HJAVA_HAVE_JPEGLIB_H 1) ENDIF (NOT HJAVA_JPEGLIB_HEADER) SET (LINK_LIBS ${LINK_LIBS} ${JPEG_LIBRARY}) SET (HDF4_LINK_LIBS ${HDF4_LINK_LIBS} ${JPEG_LIBRARY}) INCLUDE_DIRECTORIES (${JPEG_INCLUDE_DIRS}) SET (JPEG_FOUND 1 PARENT_SCOPE) SET (JPEG_INCLUDE_DIR_GEN ${JPEG_INCLUDE_DIR_GEN} PARENT_SCOPE) MESSAGE (STATUS "JPEGLIB is ON") ENDIF (HDF_ENABLE_JPEG_LIB_SUPPORT) #----------------------------------------------------------------------------- # Option for ZLib support #----------------------------------------------------------------------------- OPTION (HDF_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON) IF (HDF_ENABLE_Z_LIB_SUPPORT) IF (NOT HJAVA_ZLIB_HEADER) IF (NOT ZLIB_USE_EXTERNAL) FIND_PACKAGE (ZLIB) ENDIF (NOT ZLIB_USE_EXTERNAL) IF (ZLIB_FOUND) SET (HJAVA_HAVE_FILTER_DEFLATE 1) SET (HJAVA_HAVE_ZLIB_H 1) SET (HJAVA_HAVE_LIBZ 1) SET (HJAVA_ZLIB_HEADER "zlib.h") SET (ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR}) ELSE (ZLIB_FOUND) IF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") EXTERNAL_ZLIB_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE}) SET (HJAVA_HAVE_FILTER_DEFLATE 1) SET (HJAVA_HAVE_ZLIB_H 1) SET (HJAVA_HAVE_LIBZ 1) MESSAGE (STATUS "Filter ZLIB is built") ELSE (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") MESSAGE (FATAL_ERROR " ZLib is Required for ZLib support in HDFJAVA") ENDIF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") ENDIF (ZLIB_FOUND) ELSE (NOT HJAVA_ZLIB_HEADER) # This project is being called from within another and ZLib is already configured SET (HJAVA_HAVE_FILTER_DEFLATE 1) SET (HJAVA_HAVE_ZLIB_H 1) SET (HJAVA_HAVE_LIBZ 1) ENDIF (NOT HJAVA_ZLIB_HEADER) SET (LINK_LIBS ${LINK_LIBS} ${ZLIB_LIBRARIES}) SET (HDF4_LINK_LIBS ${HDF4_LINK_LIBS} ${ZLIB_LIBRARIES}) SET (HDF5_LINK_LIBS ${HDF5_LINK_LIBS} ${ZLIB_LIBRARIES}) INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIRS}) SET (ZLIB_FOUND 1 PARENT_SCOPE) SET (ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR_GEN} PARENT_SCOPE) MESSAGE (STATUS "Filter ZLIB is ON") ENDIF (HDF_ENABLE_Z_LIB_SUPPORT) #----------------------------------------------------------------------------- # Option for SzLib support #----------------------------------------------------------------------------- #SET (CMAKE_MODULE_PATH ${HDFJAVA_RESOURCES_DIR} ${CMAKE_MODULE_PATH}) OPTION (HDF_ENABLE_SZIP_SUPPORT "Use SZip Filter" OFF) IF (HDF_ENABLE_SZIP_SUPPORT) OPTION (HDF_ENABLE_SZIP_ENCODING "Use SZip Encoding" OFF) IF (NOT SZIP_USE_EXTERNAL) FIND_PACKAGE (SZIP) ENDIF (NOT SZIP_USE_EXTERNAL) IF (SZIP_FOUND) SET (HJAVA_HAVE_FILTER_SZIP 1) SET (HJAVA_HAVE_SZLIB_H 1) SET (HJAVA_HAVE_LIBSZ 1) SET (SZIP_INCLUDE_DIR_GEN ${SZIP_INCLUDE_DIR}) ELSE (SZIP_FOUND) IF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") EXTERNAL_SZIP_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE} ${HDF_ENABLE_SZIP_ENCODING}) SET (HJAVA_HAVE_FILTER_SZIP 1) SET (HJAVA_HAVE_SZLIB_H 1) SET (HJAVA_HAVE_LIBSZ 1) MESSAGE (STATUS "Filter SZIP is built") ELSE (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") MESSAGE (FATAL_ERROR "SZIP is Required for SZIP support in HDFJAVA") ENDIF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") ENDIF (SZIP_FOUND) SET (LINK_LIBS ${LINK_LIBS} ${SZIP_LIBRARIES}) SET (HDF4_LINK_LIBS ${HDF4_LINK_LIBS} ${SZIP_LIBRARIES}) SET (HDF5_LINK_LIBS ${HDF5_LINK_LIBS} ${SZIP_LIBRARIES}) INCLUDE_DIRECTORIES (${SZIP_INCLUDE_DIRS}) SET (SZIP_FOUND 1 PARENT_SCOPE) SET (SZIP_INCLUDE_DIR_GEN ${SZIP_INCLUDE_DIR_GEN} PARENT_SCOPE) MESSAGE (STATUS "Filter SZIP is ON") IF (HDF_ENABLE_SZIP_ENCODING) SET (HDF_HAVE_SZIP_ENCODER 1) ENDIF (HDF_ENABLE_SZIP_ENCODING) ENDIF (HDF_ENABLE_SZIP_SUPPORT) #----------------------------------------------------------------------------- # HDF4 support #----------------------------------------------------------------------------- IF (NOT BUILD_SHARED_LIBS) SET (HDF4_USE_STATIC_LIBRARIES 1) ENDIF (NOT BUILD_SHARED_LIBS) IF (NOT HJAVA_HDF4_HEADER) IF (NOT HDF4_USE_EXTERNAL) FIND_PACKAGE (HDF4) ENDIF (NOT HDF4_USE_EXTERNAL) IF (HDF4_FOUND) SET (HJAVA_HAVE_HDF_H 1) SET (HJAVA_HAVE_HDF4 1) SET (HJAVA_HDF4_HEADER "hdf.h") SET (HDF4_INCLUDE_DIR_GEN ${HDF4_INCLUDE_DIR}) MESSAGE (STATUS "HDF4 found") ELSE (HDF4_FOUND) IF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") # May need to build JPEG with PIC on x64 machines with gcc # Need to use CMAKE_ANSI_CFLAGS define so that compiler test works IF (BUILD_JPEG_WITH_PIC) SET (JPEG_CMAKE_C_FLAGS "-fPIC") ELSE (BUILD_JPEG_WITH_PIC) SET (JPEG_CMAKE_C_FLAGS " ") ENDIF (BUILD_JPEG_WITH_PIC) EXTERNAL_HDF4_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE} ${JPEG_CMAKE_C_FLAGS}) SET (HJAVA_HAVE_HDF_H 1) SET (HJAVA_HAVE_HDF4 1) SET (HJAVA_HDF4_HEADER "hdf.h") MESSAGE (STATUS "HDF4 is built") ELSE (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") MESSAGE (FATAL_ERROR " HDF4 is Required for HDFJAVA") ENDIF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") ENDIF (HDF4_FOUND) ELSE (NOT HJAVA_HDF4_HEADER) # This project is being called from within another and HDF4 is already configured SET (HJAVA_HAVE_HDF_H 1) SET (HJAVA_HAVE_HDF4 1) ENDIF (NOT HJAVA_HDF4_HEADER) IF (NOT HDF4_LIBRARY) SET (HDF4_LIBRARY ${HDF4_LIBRARIES}) ENDIF (NOT HDF4_LIBRARY) IF (NOT TARGET "hdiff") ADD_EXECUTABLE (hdiff IMPORTED) IF (USE_SHARED_LIBS AND WIN32) SET_PROPERTY (TARGET hdiff PROPERTY IMPORTED_LOCATION "${HDF4_TOOLS_DIR}/hdiffdll") ELSE (USE_SHARED_LIBS AND WIN32) SET_PROPERTY (TARGET hdiff PROPERTY IMPORTED_LOCATION "${HDF4_TOOLS_DIR}/hdiff") ENDIF (USE_SHARED_LIBS AND WIN32) SET (HDF4_DIFF_EXECUTABLE $) ENDIF (NOT TARGET "hdiff") SET (LINK_LIBS ${LINK_LIBS} ${HDF4_LIBRARIES}) SET (HDF4_LINK_LIBS ${HDF4_LINK_LIBS} ${HDF4_LIBRARIES}) INCLUDE_DIRECTORIES (${HDF4_INCLUDE_DIRS}) SET (HDF4_FOUND 1 PARENT_SCOPE) SET (HDF4_INCLUDE_DIR_GEN ${HDF4_INCLUDE_DIR_GEN} PARENT_SCOPE) #----------------------------------------------------------------------------- # HDF5 support #----------------------------------------------------------------------------- IF (NOT BUILD_SHARED_LIBS) SET (HDF5_USE_STATIC_LIBRARIES 1) ENDIF (NOT BUILD_SHARED_LIBS) IF (NOT HJAVA_HDF5_HEADER) IF (NOT HDF5_USE_EXTERNAL) FIND_PACKAGE (HDF5) ENDIF (NOT HDF5_USE_EXTERNAL) IF (HDF5_FOUND) SET (HJAVA_HAVE_H5PUBCONF_H 1) SET (HJAVA_HAVE_HDF5 1) SET (HJAVA_HDF5_HEADER "h5pubconf.h") SET (HDF5_INCLUDE_DIR_GEN ${HDF5_INCLUDE_DIR}) MESSAGE (STATUS "HDF5 found") ELSE (HDF5_FOUND) IF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") EXTERNAL_HDF5_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE}) SET (HJAVA_HAVE_H5PUBCONF_H 1) SET (HJAVA_HAVE_HDF5 1) SET (HJAVA_HDF5_HEADER "h5pubconf.h") MESSAGE (STATUS "HDF5 is built") ELSE (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") MESSAGE (FATAL_ERROR " HDF5 is Required for HDFJAVA") ENDIF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") ENDIF (HDF5_FOUND) ELSE (NOT HJAVA_HDF5_HEADER) # This project is being called from within another and HDF5 is already configured SET (HJAVA_HAVE_H5PUBCONF_H 1) SET (HJAVA_HAVE_HDF5 1) ENDIF (NOT HJAVA_HDF5_HEADER) IF (NOT HDF5_LIBRARY) SET (HDF5_LIBRARY ${HDF5_LIBRARIES}) ENDIF (NOT HDF5_LIBRARY) IF (NOT TARGET "h5diff") ADD_EXECUTABLE (h5diff IMPORTED) IF (USE_SHARED_LIBS AND WIN32) SET_PROPERTY (TARGET h5diff PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5diffdll") ELSE (USE_SHARED_LIBS AND WIN32) SET_PROPERTY (TARGET h5diff PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5diff") ENDIF (USE_SHARED_LIBS AND WIN32) SET (HDF5_DIFF_EXECUTABLE $) ENDIF (NOT TARGET "h5diff") SET (LINK_LIBS ${LINK_LIBS} ${HDF5_LIBRARIES}) SET (HDF5_LINK_LIBS ${HDF5_LINK_LIBS} ${HDF5_LIBRARIES}) INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIRS}) SET (HDF5_FOUND 1 PARENT_SCOPE) SET (HDF5_INCLUDE_DIR_GEN ${HDF5_INCLUDE_DIR_GEN} PARENT_SCOPE) #----------------------------------------------------------------------------- # Option for external libraries #----------------------------------------------------------------------------- OPTION (HDF_PACKAGE_EXTLIBS "CPACK - include external libraries" OFF) IF (HDF_PACKAGE_EXTLIBS) IF (HDF_ENABLE_JPEG_LIB_SUPPORT AND JPEG_FOUND) PACKAGE_JPEG_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT}) ENDIF (HDF_ENABLE_JPEG_LIB_SUPPORT AND JPEG_FOUND) IF (HDF_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND) PACKAGE_ZLIB_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE}) ENDIF (HDF_ENABLE_Z_LIB_SUPPORT AND ZLIB_FOUND) IF (HDF_ENABLE_SZIP_SUPPORT AND SZIP_FOUND) PACKAGE_SZIP_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE}) ENDIF (HDF_ENABLE_SZIP_SUPPORT AND SZIP_FOUND) IF (HDF4_FOUND) PACKAGE_HDF4_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE}) ENDIF (HDF4_FOUND) IF (HDF5_FOUND) PACKAGE_HDF5_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE}) ENDIF (HDF5_FOUND) ENDIF (HDF_PACKAGE_EXTLIBS) ADD_SUBDIRECTORY(${HDFJAVA_JNI_SOURCE_DIR}/hdflib hdflib) ADD_SUBDIRECTORY(${HDFJAVA_JNI_SOURCE_DIR}/hdf5lib hdf5lib) IF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ") IF (JPEG_FOUND AND JPEG_USE_EXTERNAL) ADD_DEPENDENCIES (${HDFJAVA_JNI_HDF_LIB_TARGET} JPEG) ENDIF (JPEG_FOUND AND JPEG_USE_EXTERNAL) IF (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) ADD_DEPENDENCIES (${HDFJAVA_JNI_HDF_LIB_TARGET} ZLIB) ADD_DEPENDENCIES (${HDFJAVA_JNI_HDF5_LIB_TARGET} ZLIB) ENDIF (ZLIB_FOUND AND ZLIB_USE_EXTERNAL) IF (SZIP_FOUND AND SZIP_USE_EXTERNAL) ADD_DEPENDENCIES (${HDFJAVA_JNI_HDF_LIB_TARGET} SZIP) ADD_DEPENDENCIES (${HDFJAVA_JNI_HDF5_LIB_TARGET} SZIP) ENDIF (SZIP_FOUND AND SZIP_USE_EXTERNAL) IF (HDF4_FOUND AND HDF4_USE_EXTERNAL) ADD_DEPENDENCIES (HDF4 JPEG) ADD_DEPENDENCIES (HDF4 ZLIB) ADD_DEPENDENCIES (HDF4 SZIP) ADD_DEPENDENCIES (${HDFJAVA_JNI_HDF_LIB_TARGET} HDF4) ENDIF (HDF4_FOUND AND HDF4_USE_EXTERNAL) IF (HDF5_FOUND AND HDF5_USE_EXTERNAL) ADD_DEPENDENCIES (HDF5 ZLIB) ADD_DEPENDENCIES (HDF5 SZIP) ADD_DEPENDENCIES (${HDFJAVA_JNI_HDF5_LIB_TARGET} HDF5) ENDIF (HDF5_FOUND AND HDF5_USE_EXTERNAL) ENDIF (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "SVN" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")