include_directories(
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_BINARY_DIR}
  ${CMAKE_SOURCE_DIR}/src
  ${CMAKE_SOURCE_DIR}/src/importers
  ${CMAKE_SOURCE_DIR}/src/exporters
  ${CMAKE_BINARY_DIR}
  ${TQT_INCLUDE_DIRS}
  ${TDE_INCLUDE_DIR}
)


link_directories(
  ${TQT_LIBRARY_DIRS}
  ${TDE_LIB_DIR}
)


##### A function to copy required test files to binary folder

function( setup_test_data _target )
  unset(_sources)
  unset(_copies)

  foreach( _file ${ARGN} )
    add_custom_command(
      OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_file}
      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_file}
      COMMENT "Copying test data: ${_file}"
      COMMAND ${CMAKE_COMMAND} -E copy
        ${CMAKE_CURRENT_SOURCE_DIR}/${_file}
        ${CMAKE_CURRENT_BINARY_DIR}
    )
    list(APPEND _sources ${CMAKE_CURRENT_SOURCE_DIR}/${_file})
    list(APPEND _copies ${CMAKE_CURRENT_BINARY_DIR}/${_file})
  endforeach( )

  add_custom_target( ${_target}_testdata
    SOURCES ${_sources}
    DEPENDS ${_copies}
  )
  add_dependencies( ${_target} ${_target}_testdata )
endfunction()


##### kretest (executable)

tde_add_check_executable( kretest AUTOMOC TEST
  SOURCES kretest.cpp
  LINK
    krecipesexporters-static krecipesimporters-static
    krecipesdbs-static datablocks-static
    tdecore-shared tdeio-shared
)
setup_test_data( kretest kretest.txt test_photo.jpg )


##### mmftest (executable)

tde_add_check_executable( mmftest AUTOMOC TEST
  SOURCES mmftest.cpp
  LINK
    krecipesexporters-static krecipesimporters-static
    krecipesdbs-static datablocks-static
    tdecore-shared tdeio-shared
)
setup_test_data( mmftest mmftest.txt )


##### mx2test (executable)

tde_add_check_executable( mx2test AUTOMOC TEST
  SOURCES mx2test.cpp
  LINK
    krecipesexporters-static krecipesimporters-static
    krecipesdbs-static datablocks-static
    tdecore-shared tdeio-shared
)
setup_test_data( mx2test mx2test.txt )


##### mxptest (executable)

tde_add_check_executable( mxptest AUTOMOC TEST
  SOURCES mxptest.cpp
  LINK
    krecipesexporters-static krecipesimporters-static
    krecipesdbs-static datablocks-static
    tdecore-shared tdeio-shared
)
setup_test_data( mxptest mxptest.txt )


##### nyctest (executable)

tde_add_check_executable( nyctest AUTOMOC TEST
  SOURCES nyctest.cpp
  LINK
    krecipesexporters-static krecipesimporters-static
    krecipesdbs-static datablocks-static
    tdecore-shared tdeio-shared
)
setup_test_data( nyctest nyctest.txt )


##### recipemltest (executable)

tde_add_check_executable( recipemltest AUTOMOC TEST
  SOURCES recipemltest.cpp
  LINK
    krecipesexporters-static krecipesimporters-static
    krecipesdbs-static datablocks-static
    tdecore-shared tdeio-shared
)
setup_test_data( recipemltest recipemltest.txt )


##### rezkonvtest (executable)

tde_add_check_executable( rezkonvtest AUTOMOC TEST
  SOURCES rezkonvtest.cpp
  LINK
    krecipesexporters-static krecipesimporters-static
    krecipesdbs-static datablocks-static
    tdecore-shared tdeio-shared
)
setup_test_data( rezkonvtest rezkonvtest.txt )
