cmake_minimum_required (VERSION 2.8.10)
PROJECT (HDFEOS5_TESTDRIVERS_GRID)

ADD_EXECUTABLE (testgrid ${PROJECT_SOURCE_DIR}/TestGrid.c)
TARGET_NAMING (testgrid ${LIB_TYPE})
TARGET_LINK_LIBRARIES (testgrid ${HDFEOS_SRC_LIB_TARGET} ${HDFEOS_GCTP_SRC_LIB_TARGET} ${LINK_LIBS})

IF (HDFEOS_BUILD_FORTRAN AND HAVE_F2CFORTRAN_MACRO)
  # make test dir
  FILE (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/fortran")

  IF (HDF5_ENABLE_SZIP_SUPPORT)
    SET (fort_testdriver_src testgrid_szip)
  ELSE (HDF5_ENABLE_SZIP_SUPPORT)
    SET (fort_testdriver_src testgrid)
  ENDIF (HDF5_ENABLE_SZIP_SUPPORT)

  IF (F2CFORTRAN_32PTR)
    ADD_EXECUTABLE (testgrid_f ${PROJECT_SOURCE_DIR}/${fort_testdriver_src}32.f)
  ELSE (F2CFORTRAN_32PTR)
    ADD_EXECUTABLE (testgrid_f ${PROJECT_SOURCE_DIR}/${fort_testdriver_src}64.f)
  ENDIF (F2CFORTRAN_32PTR)
  TARGET_NAMING (testgrid_f ${LIB_TYPE})
  TARGET_FORTRAN_WIN_PROPERTIES (testgrid_f "")
  SET_TARGET_PROPERTIES (testgrid_f PROPERTIES LINKER_LANGUAGE Fortran)
  TARGET_LINK_LIBRARIES (testgrid_f ${HDFEOS_SRC_LIB_TARGET} ${HDFEOS_GCTP_SRC_LIB_TARGET} ${LINK_LIBS})
ENDIF (HDFEOS_BUILD_FORTRAN AND HAVE_F2CFORTRAN_MACRO)
  
##############################################################################
##############################################################################
###           T H E   T E S T S                                            ###
##############################################################################
##############################################################################
IF (BUILD_TESTING)

  ADD_TEST (NAME GRID_test_c COMMAND $<TARGET_FILE:testgrid>)

  ADD_TEST (NAME GRID_test_c_verbose COMMAND $<TARGET_FILE:testgrid> -v h)
  SET_TESTS_PROPERTIES (GRID_test_c_verbose PROPERTIES DEPENDS GRID_test_c)

  IF (HDFEOS_BUILD_FORTRAN AND HAVE_F2CFORTRAN_MACRO)
    # Remove any output file left over from previous test run
    ADD_TEST (
        NAME GRID_test_f-clearall-objects
        COMMAND    ${CMAKE_COMMAND} -E remove
            Grid3.hdf Gridc_Test.hdf Gridf_Test.hdf testgridf.txt
    )
    SET_TESTS_PROPERTIES (GRID_test_f-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/fortran")
    SET_TESTS_PROPERTIES (GRID_test_f-clearall-objects PROPERTIES DEPENDS GRID_test_c_verbose)

    ADD_TEST (NAME GRID_test_f COMMAND $<TARGET_FILE:testgrid_f>)
    SET_TESTS_PROPERTIES (GRID_test_f PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/fortran")
    SET_TESTS_PROPERTIES (GRID_test_f PROPERTIES DEPENDS GRID_test_f-clearall-objects)
  ENDIF (HDFEOS_BUILD_FORTRAN AND HAVE_F2CFORTRAN_MACRO)

ENDIF (BUILD_TESTING)
