# Make sure the compiler can find include files from our libraries. 
include_directories (${CMAKE_SOURCE_DIR}/v1/libtpcmisc) 
include_directories (${CMAKE_SOURCE_DIR}/v1/libtpcimgio) 
include_directories (${CMAKE_SOURCE_DIR}/v1/libtpcimgp) 
include_directories (${CMAKE_SOURCE_DIR}/v1/libtpcroi) 
include_directories (${CMAKE_SOURCE_DIR}/v1/libtpccurveio) 

# Make sure the linker can find the libraries once they are built. 
link_directories (${CMAKE_BINARY_DIR}/v1/libtpcmisc) 
link_directories (${CMAKE_BINARY_DIR}/v1/libtpcimgio) 
link_directories (${CMAKE_BINARY_DIR}/v1/libtpcimgp) 
link_directories (${CMAKE_BINARY_DIR}/v1/libtpcroi) 
link_directories (${CMAKE_BINARY_DIR}/v1/libtpccurveio) 

# Add executable that is built from the source file(s) 
# The extensions are automatically found. 
add_executable (ecat2nii ecat2nii.c) 
add_executable (nii2ecat nii2ecat.c) 
add_executable (nii_lhdr nii_lhdr.c niftiift.c) 
add_executable (nii_ehdr nii_ehdr.c niftiift.c) 
#add_executable (tac2nii tac2nii.c) 

# Link the executable to the libraries. 
target_link_libraries (ecat2nii tpcimgp tpcimgio tpcmisc m)
target_link_libraries (nii2ecat tpcimgp tpcimgio tpcmisc m)
target_link_libraries (nii_lhdr tpcimgio tpcmisc m)
target_link_libraries (nii_ehdr tpcimgio tpcmisc m)
#target_link_libraries (tac2nii tpccurveio tpcimgio tpcmisc m)

# Install the executable(s)
INSTALL(
  PROGRAMS
  ${CMAKE_CURRENT_BINARY_DIR}/ecat2nii${CMAKE_EXECUTABLE_SUFFIX}
  ${CMAKE_CURRENT_BINARY_DIR}/nii2ecat${CMAKE_EXECUTABLE_SUFFIX}
  ${CMAKE_CURRENT_BINARY_DIR}/nii_lhdr${CMAKE_EXECUTABLE_SUFFIX}
  ${CMAKE_CURRENT_BINARY_DIR}/nii_ehdr${CMAKE_EXECUTABLE_SUFFIX}
#  ${CMAKE_CURRENT_BINARY_DIR}/tac2nii${CMAKE_EXECUTABLE_SUFFIX}
  DESTINATION bin
  COMPONENT applications
)

# Copy test data folder
add_custom_target(niftitests ALL
  COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/test
  COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/test ${CMAKE_CURRENT_BINARY_DIR}/test/
)
# And delete test data folder with clean
set_property(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/test")


#
# Simple tests
#

# Does does the usage message work
add_test(ecat2niiUsage ecat2nii "--help")
add_test(nii2ecatUsage nii2ecat "--help")
add_test(nii_lhdrUsage nii_lhdr "--help")
add_test(nii_ehdrUsage nii_ehdr "--help")
#add_test(tac2niiUsage tac2nii "--help")
set_tests_properties(
  ecat2niiUsage nii2ecatUsage nii_lhdrUsage nii_ehdrUsage 
#tac2niiUsage
  PROPERTIES PASS_REGULAR_EXPRESSION "Usage: *"
)


#
# Run test scripts
# 
add_test (
  NAME ecat2niiTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/ecat2nii
  COMMAND bash "./test_ecat2nii.sh"
)
add_test (
  NAME nii2ecatTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/nii2ecat
  COMMAND bash "./test_nii2ecat.sh"
)
add_test (
  NAME nii_lhdrTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/nii_lhdr
  COMMAND bash "./test_nii_lhdr.sh"
)
add_test (
  NAME nii_ehdrTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/nii_ehdr
  COMMAND bash "./test_nii_ehdr.sh"
)
#add_test (
#  NAME tac2niiTests
#  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/tac2nii
#  COMMAND bash "./test_tac2nii.sh"
#)
