# Create variable so that other source codes can find the include files
set(libtpcdcm_HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}" PARENT_SCOPE)

# This needs to be edited each time a new .c is added
add_library (tpcdcm STATIC 
  dcmuid.c dcmvr.c dcmdictionary.c dcmio.c
  dcmdata.c dcmfile.c dcmsop.c dcmmatrix.c
  dcmimage.c
)
# Dependencies on other libraries
include_directories(
  $(libtpcdcm_SOURCE_DIR)
  ${libtpcextensions_HEADER_FILES}
  ${libtpcift_HEADER_FILES}
  ${libtpcfileutil_HEADER_FILES}
  ${libtpcisotope_HEADER_FILES}
)
target_link_libraries (
  tpcdcm
  tpcextensions tpcift tpcfileutil tpcisotope
  m
)

# Install the library and headers
install (
  TARGETS tpcdcm
  ARCHIVE 
  DESTINATION ${LIBPATH}
  COMPONENT libraries
)
install (
  FILES tpcdcm.h 
  DESTINATION ${LIBPATH}/include
  COMPONENT headers
)

# Compile executable for testing
add_executable (libtpcdcm libtpcdcm.c 
  test_dcmuid.c test_dcmvr.c test_dcmdictionary.c test_dcmio.c
  test_dcmdata.c test_dcmfile.c test_dcmsop.c test_dcmmatrix.c
  test_dcmimage.c
) 
# Link the executable to the libraries. 
target_link_libraries (
  libtpcdcm tpcdcm 
  tpcextensions tpcift tpcfileutil tpcisotope
  m
)
# Install the executable
#install(
#  PROGRAMS 
#  ${CMAKE_CURRENT_BINARY_DIR}/libtpcdcm${CMAKE_EXECUTABLE_SUFFIX}
#  DESTINATION bin
#  COMPONENT librarytests
#)

# Copy test data folder
file(COPY test DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )

# Run tests
add_test (
  NAME libtpcdcmTests
  WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/test
  COMMAND libtpcdcm "--verbose" "--test"
)
