# Make sure the compiler can find include files from our libraries. 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcextensions) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpccsv) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcift) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcisotope) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcfileutil) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpctac) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcpar) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcli) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpclinopt) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcdcm) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcecat) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcnifti) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcimage) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcstatist) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcmodels) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcfunc) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpccm) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpctacmod) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpctacimg) 

# Make sure the linker can find the libraries once they are built. 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcextensions) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpccsv) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcift) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcisotope) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcfileutil) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpctac) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcpar) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcli) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpclinopt) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcdcm) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcecat) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcnifti) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcimage) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcstatist) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcmodels) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcfunc) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpccm) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpctacmod) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpctacimg) 

# Add executable that is built from the source file(s) 
# The extensions are automatically found. 
add_executable (imgflowb imgflowb.c) 
add_executable (imgwcbf imgwcbf.c) 

# Link the executable to the libraries. 
target_link_libraries (imgflowb 
  tpctacimg tpctacmod tpclinopt tpcli tpcimage tpcdcm tpcecat tpctac tpcift tpccsv tpcextensions m
)
target_link_libraries (imgwcbf 
  tpctacimg tpctacmod tpccm tpclinopt tpcli tpcimage tpcdcm tpcecat tpctac tpcift tpccsv tpcextensions m
)

# Install the executable(s)
install (
  PROGRAMS
#  ${CMAKE_CURRENT_BINARY_DIR}/imgflowb${CMAKE_EXECUTABLE_SUFFIX}
#  ${CMAKE_CURRENT_BINARY_DIR}/imgwcbf${CMAKE_EXECUTABLE_SUFFIX}
  DESTINATION bin
  COMPONENT applications
)

# Copy test data folder
add_custom_target(imgcmtests 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
#
if(NOT (MINGW OR MSYS))
# Does the usage message work
#add_test(imgflowbUsage imgflowb "--help")
#set_tests_properties(
#  imgflowbUsage
#  PROPERTIES PASS_REGULAR_EXPRESSION "Usage: *"
#)
#add_test(imgwcbfUsage imgwcbf "--help")
#set_tests_properties(
#  imgwcbfUsage
#  PROPERTIES PASS_REGULAR_EXPRESSION "Usage: *"
#)
endif()

#
# Run test scripts
#
add_test (
  NAME imgflowbTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/imgflowb
  COMMAND ${BASH_EXEC} "./test_imgflowb.sh"
)
add_test (
  NAME imgwcbfTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/imgwcbf
  COMMAND ${BASH_EXEC} "./test_imgwcbf.sh"
)
# Add app installation location to PATH so that bash scripts can find the other apps
set_tests_properties(
  imgflowbTests imgwcbfTests
  PROPERTIES ENVIRONMENT_MODIFICATION PATH=path_list_append:${CMAKE_BINARY_DIR}
)
