cmake_minimum_required(VERSION 3.2)
project(testing)

addProjectIncludeDirectory()
setUpProject(library)

if (GALAXY_ENABLE_UNITY_BUILD)
	set_property(TARGET ${PROJECT_NAME} PROPERTY UNITY_BUILD ON)
endif (GALAXY_ENABLE_UNITY_BUILD)

# N.B. The purpose of this project is to be a minimal library for generic testing functionality,
# and therefore must not connect to galaxy libraries beyond what is currently present.

target_link_libraries(${PROJECT_NAME} PUBLIC ${CONAN_LIBS_GOOGLETEST})
target_link_libraries(${PROJECT_NAME} PUBLIC ${CONAN_LIBS_POCO_FOUNDATION})
target_link_libraries(${PROJECT_NAME} PRIVATE ${GalaxyServiceLibraryDeps})

target_link_libraries(${PROJECT_NAME} PUBLIC error-handling)
target_link_libraries(${PROJECT_NAME} PUBLIC fundamentals)
target_link_libraries(${PROJECT_NAME} PRIVATE operating-system)

# Copy the test sample files
set(SAMPLEDATA_PATH ${OUTPUT_PATH}/sampledata)
add_custom_command(TARGET ${PROJECT_NAME}
	PRE_BUILD
	COMMAND ${CMAKE_COMMAND} -E make_directory ${SAMPLEDATA_PATH}
	COMMENT Generating sample data directory.
)

file(GLOB_RECURSE UNITTEST_SAMPLEDATA_FILES_CLIENT
	RELATIVE "${PROJECT_SOURCE_DIR}/data"
	"${PROJECT_SOURCE_DIR}/data/*"
)

FOREACH (sampleFile ${UNITTEST_SAMPLEDATA_FILES_CLIENT})
	add_custom_command(TARGET ${PROJECT_NAME}
		PRE_BUILD
		COMMAND ${CMAKE_COMMAND} -E copy_if_different
			"${PROJECT_SOURCE_DIR}/data/${sampleFile}"
			"${SAMPLEDATA_PATH}/${sampleFile}"
		COMMENT Copying sample file '${sampleFile}' to sample data directory.
	)
ENDFOREACH (sampleFile ${UNITTEST_SAMPLEDATA_FILES_CLIENT})
