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

# This needs to be edited each time a new .c is added
add_library (tpcrand STATIC 
  gaussdev.c shuffle.c
  mertwi.c halton.c
)
# Dependencies on other libraries
include_directories(
  $(libtpcrand_SOURCE_DIR)
  ${libtpcextensions_HEADER_FILES}
  ${libtpcstatist_HEADER_FILES}
)
target_link_libraries (
  tpcrand 
  tpcextensions 
  m
)

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

# Compile executable for testing
add_executable (libtpcrand libtpcrand.c 
  test_gaussdev.c test_shuffle.c
  test_mertwi.c test_halton.c
) 
# Link the executable to the libraries. 
target_link_libraries (
  libtpcrand tpcrand 
  tpcstatist tpcextensions
  m
)

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

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