From 68ce56c7dbfd997ff7b3e23b5e385a9360e64bbd Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Thu, 14 May 2020 15:49:18 +0200 Subject: [PATCH] add FindHDF4.cmake to musrfit since in more modern linux systems it is not available anymore. --- cmake/FindHDF4.cmake | 97 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 cmake/FindHDF4.cmake diff --git a/cmake/FindHDF4.cmake b/cmake/FindHDF4.cmake new file mode 100644 index 00000000..9026459a --- /dev/null +++ b/cmake/FindHDF4.cmake @@ -0,0 +1,97 @@ +## Process this file with cmake +#============================================================================= +# NeXus - Neutron & X-ray Common Data Format +# +# CMakeLists for building the NeXus library and applications. +# +# Copyright (C) 2011 Stephen Rankin +# +# This library is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This library is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License +# for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this library; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# For further information, see +# +# +#============================================================================= + + +#------------------------------------------------------------------------------ +# find the runtime binaries of the HDF4 library +#------------------------------------------------------------------------------ +find_library(HDF4_DF_LIBRARY NAMES df hdf + HINTS ENV HDF4_ROOT + PATH_SUFFIXES hdf) + + +if(HDF4_DF_LIBRARY MATCHES HDF4_DF_LIBRARY-NOTFOUND) + message(FATAL_ERROR "Could not find HDF4 DF library!") +else() + get_filename_component(HDF4_LIBRARY_DIRS ${HDF4_DF_LIBRARY} PATH) + message(STATUS "Found HDF4 DF library: ${HDF4_DF_LIBRARY}") + message(STATUS "HDF4 libary path: ${HDF4_LIBRARY_DIRS}") +endif() + +find_library(HDF4_MFHDF_LIBRARY NAMES mfhdf + HINTS ENV HDF4_ROOT + PATH_SUFFIXES hdf) + +if(HDF4_MFHDF_LIBRARY MATCHES HDF4_MFHDF_LIBRARY-NOTFOUND) + message(FATAL_ERROR "Could not find HDF5 MFHDF library!") +else() + message(STATUS "Found HDF4 MFHDF library: ${HDF4_MFHDF_LIBRARY}") +endif() + + +#------------------------------------------------------------------------------ +# find the HDF4 header file +#------------------------------------------------------------------------------ +find_path(HDF4_INCLUDE_DIRS mfhdf.h + HINTS ENV HDF4_ROOT + PATH_SUFFIXES hdf) + +if(HDF4_INCLUDE_DIRS MATCHES HDF4_INCLUDE_DIRS-NOTFOUND) + message(FATAL_ERROR "Could not find HDF4 header files") +else() + message(STATUS "Found HDF4 header files in: ${HDF4_INCLUDE_DIRS}") +endif() + +#------------------------------------------------------------------------------ +# search for additional packages required to link against HDF4 +#------------------------------------------------------------------------------ +find_package(JPEG REQUIRED) + +#------------------------------------------------------------------------------ +# add libraries to the link list for NAPI +#------------------------------------------------------------------------------ +get_filename_component(LIB_EXT ${HDF4_DF_LIBRARY} EXT) +if(LIB_EXT MATCHES .a) + message(STATUS "HDF4 DF library is static") + list(APPEND NAPI_LINK_LIBS "-Wl,-whole-archive" ${HDF4_DF_LIBRARY} "-Wl,-no-whole-archive") +else() + list(APPEND NAPI_LINK_LIBS ${HDF4_DF_LIBRARY}) +endif() + + +get_filename_component(LIB_EXT ${HDF4_MFHDF_LIBRARY} EXT) +if(LIB_EXT MATCHES .a) + message(STATUS "HDF4 MFHDF library is static") + list(APPEND NAPI_LINK_LIBS "-Wl,-whole-archive" ${HDF4_MFHDF_LIBRARY} "-Wl,-no-whole-archive") +else() + list(APPEND NAPI_LINK_LIBS ${HDF4_MFHDF_LIBRARY}) +endif() + +list(APPEND NAPI_LINK_LIBS jpeg) + +include_directories ( SYSTEM ${HDF4_INCLUDE_DIRS} ) +link_directories(${HDF4_LIBRARY_DIRS})