cmake_minimum_required (VERSION 2.8.6)
PROJECT (H4H5_LIB_SRC C CXX)

#-----------------------------------------------------------------------------
# Setup include Directories
#-----------------------------------------------------------------------------
LINK_DIRECTORIES (
    ${H4H5_LIB_SRC_BINARY_DIR}
    ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
)

INCLUDE_DIRECTORIES (${H4H5_LIB_SRC_SOURCE_DIR} ${HDF4_INCLUDE_DIRS} ${HDF5_INCLUDE_DIRS})

SET (H4H5_LIB_SRC_CSRCS
    ${H4H5_LIB_SRC_SOURCE_DIR}/H4TOH5I.c
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5anno.c
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5pal.c
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5sds.c
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5util.c
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5vdata.c
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5vgroup.c
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5image.c
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5main.c
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5eos.c
)

SET (H4H5_PUBLIC_HEADERS
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5.h
    ${H4H5_LIB_SRC_SOURCE_DIR}/H4TOH5api_adpt.h
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5vector.h
    ${H4H5_LIB_SRC_SOURCE_DIR}/h4toh5apicompatible.h
)

IF (H5_USE_HDFEOS2)
  ADD_DEFINITIONS (-DHAVE_LIBHDFEOS)
ENDIF (H5_USE_HDFEOS2)

ADD_LIBRARY (${H4H5_SRC_LIB_TARGET} ${LIB_TYPE} ${H4H5_LIB_SRC_CSRCS} ${H4H5_PUBLIC_HEADERS})
IF (H5_USE_16_API_DEFAULT)
  ADD_DEFINITIONS (-DH5_USE_16_API)
ENDIF (H5_USE_16_API_DEFAULT)
IF(MSVC)
  TARGET_LINK_LIBRARIES (${H4H5_SRC_LIB_TARGET} "ws2_32.lib")
ENDIF(MSVC)
TARGET_LINK_LIBRARIES (${H4H5_SRC_LIB_TARGET} ${LINK_LIBS})
SET_GLOBAL_VARIABLE (H4H5_LIBRARIES_TO_EXPORT "${H4H5_LIBRARIES_TO_EXPORT};${H4H5_SRC_LIB_TARGET}")
H4H5_SET_LIB_OPTIONS (${H4H5_SRC_LIB_TARGET} ${H4H5_SRC_LIB_NAME} ${LIB_TYPE})

#-----------------------------------------------------------------------------
# Add file(s) to CMake Install
#-----------------------------------------------------------------------------
IF (NOT H4H5_INSTALL_NO_DEVELOPMENT)
  INSTALL (
      FILES
          ${H4H5_PUBLIC_HEADERS}
      DESTINATION
          ${H4H5_INSTALL_INCLUDE_DIR}
      COMPONENT
          headers
  )
ENDIF (NOT H4H5_INSTALL_NO_DEVELOPMENT)

#-----------------------------------------------------------------------------
# Add Target(s) to CMake Install for import into other projects
#-----------------------------------------------------------------------------
IF (H4H5_EXPORTED_TARGETS)
  INSTALL (
      TARGETS 
          ${H4H5_SRC_LIB_TARGET}
      EXPORT
          ${H4H5_EXPORTED_TARGETS}
      LIBRARY DESTINATION ${H4H5_INSTALL_LIB_DIR} COMPONENT libraries 
      ARCHIVE DESTINATION ${H4H5_INSTALL_LIB_DIR} COMPONENT libraries
      RUNTIME DESTINATION ${H4H5_INSTALL_BIN_DIR} COMPONENT libraries
  )
ENDIF (H4H5_EXPORTED_TARGETS)
