# Make sure the compiler can find include files from our libraries. 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcextensions) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcisotope) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcstatist) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpctac) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpccsv) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcift) 
include_directories (${CMAKE_SOURCE_DIR}/v2/libtpcabss) 

# 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/libtpcisotope) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcstatist) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpctac) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpccsv) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcift) 
link_directories (${CMAKE_BINARY_DIR}/v2/libtpcabss) 

# Add executable that is built from the source file(s) 
# The extensions are automatically found. 
add_executable (abssbkg abssbkg.c) 
add_executable (abssexam abssexam.c) 
add_executable (abssfch abssfch.c) 
add_executable (absstime absstime.c) 
add_executable (absszero absszero.c) 

# Link the executable to the libraries. 
target_link_libraries (abssbkg tpcabss tpctac tpccsv tpcift tpcextensions m)
target_link_libraries (abssexam tpcabss tpcstatist tpctac tpccsv tpcift tpcextensions m)
target_link_libraries (abssfch tpcabss tpctac tpccsv tpcift tpcextensions m)
target_link_libraries (absstime tpcabss tpctac tpccsv tpcift tpcextensions m)
target_link_libraries (absszero tpcabss tpctac tpccsv tpcift tpcextensions m)

# Install the executable(s)
install (
  PROGRAMS
  ${CMAKE_CURRENT_BINARY_DIR}/abssbkg${CMAKE_EXECUTABLE_SUFFIX}
  ${CMAKE_CURRENT_BINARY_DIR}/abssexam${CMAKE_EXECUTABLE_SUFFIX}
  ${CMAKE_CURRENT_BINARY_DIR}/abssfch${CMAKE_EXECUTABLE_SUFFIX}
  ${CMAKE_CURRENT_BINARY_DIR}/absstime${CMAKE_EXECUTABLE_SUFFIX}
  ${CMAKE_CURRENT_BINARY_DIR}/absszero${CMAKE_EXECUTABLE_SUFFIX}
  DESTINATION bin
  COMPONENT applications
)


# Copy test data folder
add_custom_target(absstests 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(abssbkgUsage abssbkg "--help")
add_test(abssexamUsage abssexam "--help")
add_test(abssfchUsage abssfch "--help")
add_test(absstimeUsage absstime "--help")
add_test(absszeroUsage absszero "--help")
set_tests_properties(
  abssbkgUsage abssexamUsage abssfchUsage absstimeUsage absszeroUsage 
  PROPERTIES PASS_REGULAR_EXPRESSION "Usage: *"
)

#
# Run test scripts
#
add_test (
  NAME abssbkgTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/abssbkg
  COMMAND bash "./test_abssbkg.sh"
)
add_test (
  NAME abssexamTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/abssexam
  COMMAND bash "./test_abssexam.sh"
)
add_test (
  NAME abssfchTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/abssfch
  COMMAND bash "./test_abssfch.sh"
)
add_test (
  NAME absstimeTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/absstime
  COMMAND bash "./test_absstime.sh"
)
add_test (
  NAME absszeroTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test/absszero
  COMMAND bash "./test_absszero.sh"
)
