cmake_minimum_required (VERSION 2.8.10)
PROJECT (HDFEOS_TESTDRIVERS_SWATH)

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

ADD_EXECUTABLE (testswath ${PROJECT_SOURCE_DIR}/testswath.c)
TARGET_NAMING (testswath ${LIB_TYPE})
TARGET_LINK_LIBRARIES (testswath ${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")

  ADD_EXECUTABLE (testswath_f77 ${PROJECT_SOURCE_DIR}/testswath.f)
  TARGET_NAMING (testswath_f77 ${LIB_TYPE})
  TARGET_FORTRAN_WIN_PROPERTIES (testswath_f77 "")
  SET_TARGET_PROPERTIES (testswath_f77 PROPERTIES LINKER_LANGUAGE Fortran)
  TARGET_LINK_LIBRARIES (testswath_f77 ${HDFEOS_SRC_LIB_TARGET} ${HDFEOS_GCTP_SRC_LIB_TARGET} ${LINK_LIBS})

  IF (HAVE_F2CFORTRAN_32PTR)
    ADD_EXECUTABLE (testswath_f90 ${PROJECT_SOURCE_DIR}/testswathf90-32.f)
    TARGET_NAMING (testswath_f90 ${LIB_TYPE})
    TARGET_FORTRAN_WIN_PROPERTIES (testswath_f90 "")
    SET_TARGET_PROPERTIES (testswath_f90 PROPERTIES LINKER_LANGUAGE Fortran)
    TARGET_LINK_LIBRARIES (testswath_f90 ${HDFEOS_SRC_LIB_TARGET} ${HDFEOS_GCTP_SRC_LIB_TARGET} ${LINK_LIBS})
  ENDIF (HAVE_F2CFORTRAN_32PTR)
ENDIF (HDFEOS_BUILD_FORTRAN AND HAVE_F2CFORTRAN_MACRO)
  
##############################################################################
##############################################################################
###           T H E   T E S T S                                            ###
##############################################################################
##############################################################################
IF (BUILD_TESTING)

  ADD_TEST (NAME SWATH_test_c COMMAND $<TARGET_FILE:testswath>)

  ADD_TEST (NAME SWATH_test_c_verbose COMMAND $<TARGET_FILE:testswath> -v h)
  SET_TESTS_PROPERTIES (SWATH_test_c_verbose PROPERTIES DEPENDS SWATH_test_c)

  IF (HDFEOS_BUILD_FORTRAN AND HAVE_F2CFORTRAN_MACRO)
    # Remove any output file left over from previous test run
    ADD_TEST (
        NAME SWATH_test_f77-clearall-objects
        COMMAND    ${CMAKE_COMMAND} -E remove
            Swath_2.hdf Swathc_Test.hdf Swathf_Test.hdf testswathf.txt
    )
    SET_TESTS_PROPERTIES (SWATH_test_f77-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/fortran")
    SET_TESTS_PROPERTIES (SWATH_test_f77-clearall-objects PROPERTIES DEPENDS SWATH_test_c_verbose)

    ADD_TEST (NAME SWATH_test_f77 COMMAND $<TARGET_FILE:testswath_f77>)
    SET_TESTS_PROPERTIES (SWATH_test_f77 PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/fortran")
    SET_TESTS_PROPERTIES (SWATH_test_f77 PROPERTIES DEPENDS SWATH_test_f77-clearall-objects)

    IF (HAVE_F2CFORTRAN_32PTR)
      # Remove any output file left over from previous test run
      ADD_TEST (
          NAME SWATH_test_f90-clearall-objects
          COMMAND    ${CMAKE_COMMAND} -E remove
              Swath_2.hdf Swathc_Test.hdf Swathf_Test.hdf testswathf.txt
      )
      SET_TESTS_PROPERTIES (SWATH_test_f90-clearall-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/fortran")
      SET_TESTS_PROPERTIES (SWATH_test_f90-clearall-objects PROPERTIES DEPENDS SWATH_test_f77)

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

ENDIF (BUILD_TESTING)
