cmake_minimum_required (VERSION 2.8.10)
PROJECT (HDFEOS5_TESTDRIVERS_POINT)

ADD_EXECUTABLE (testpoint ${PROJECT_SOURCE_DIR}/TestPoint.c)
TARGET_NAMING (testpoint ${LIB_TYPE})
TARGET_LINK_LIBRARIES (testpoint ${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 (F2CFORTRAN_32PTR)
    ADD_EXECUTABLE (testpoint_f ${PROJECT_SOURCE_DIR}/testpoint32.f)
  ELSE (F2CFORTRAN_32PTR)
    ADD_EXECUTABLE (testpoint_f ${PROJECT_SOURCE_DIR}/testpoint64.f)
  ENDIF (F2CFORTRAN_32PTR)
  TARGET_NAMING (testpoint_f ${LIB_TYPE})
  TARGET_FORTRAN_WIN_PROPERTIES (testpoint_f "")
  SET_TARGET_PROPERTIES (testpoint_f PROPERTIES LINKER_LANGUAGE Fortran)
  TARGET_LINK_LIBRARIES (testpoint_f ${HDFEOS_SRC_LIB_TARGET} ${HDFEOS_GCTP_SRC_LIB_TARGET} ${LINK_LIBS})

  SET (POINT_REFERENCE_FILES
    fixedBuoy0.txt
    fixedBuoy1.txt
    fixedBuoy1s.txt
    floatBuoy0.txt
    floatBuoy1.txt
    simple.txt
  )

  FOREACH (out_file ${POINT_REFERENCE_FILES})
    SET (outdest "${PROJECT_BINARY_DIR}/fortran/${out_file}")
    #MESSAGE (STATUS " Translating ${out_file}")
    ADD_CUSTOM_COMMAND (
        TARGET     testpoint_f
        POST_BUILD
        COMMAND    ${XLATE_UTILITY}
        ARGS       ${PROJECT_SOURCE_DIR}/${out_file} ${outdest}
    )
  ENDFOREACH (out_file ${POINT_REFERENCE_FILES})
ENDIF (HDFEOS_BUILD_FORTRAN AND HAVE_F2CFORTRAN_MACRO)
  
##############################################################################
##############################################################################
###           T H E   T E S T S                                            ###
##############################################################################
##############################################################################
IF (BUILD_TESTING)

  ADD_TEST (NAME POINT_test_c COMMAND $<TARGET_FILE:testpoint>)
  SET_TESTS_PROPERTIES (POINT_test_c PROPERTIES ENVIRONMENT "srcdir=${PROJECT_SOURCE_DIR}")

  ADD_TEST (NAME POINT_test_c_verbose COMMAND $<TARGET_FILE:testpoint> -v h)
  SET_TESTS_PROPERTIES (POINT_test_c_verbose PROPERTIES ENVIRONMENT "srcdir=${PROJECT_SOURCE_DIR}")
  SET_TESTS_PROPERTIES (POINT_test_c_verbose PROPERTIES DEPENDS POINT_test_c)

  IF (HDFEOS_BUILD_FORTRAN AND HAVE_F2CFORTRAN_MACRO)
    ADD_TEST (NAME POINT_test_f COMMAND $<TARGET_FILE:testpoint_f>)
    SET_TESTS_PROPERTIES (POINT_test_f PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/fortran")
    SET_TESTS_PROPERTIES (POINT_test_f PROPERTIES ENVIRONMENT "srcdir=${PROJECT_SOURCE_DIR}")
    SET_TESTS_PROPERTIES (POINT_test_f PROPERTIES DEPENDS POINT_test_c_verbose)
  ENDIF (HDFEOS_BUILD_FORTRAN AND HAVE_F2CFORTRAN_MACRO)

ENDIF (BUILD_TESTING)
