file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/generated")

set(incl_root "${CMAKE_SOURCE_DIR}/src/client/include/daqd_stream")
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/generated/daqd_stream_doc_strings.inc"
        COMMAND ${PYTHON_EXECUTABLE} -B ${CMAKE_SOURCE_DIR}/scrape_docs.py -g DOCS_DAQD_STREAM -i "${incl_root}/daqd_stream.hh" "${incl_root}/basic_types.hh" "${incl_root}/dcu_identifier.hh" "${incl_root}/fixed_string.hh" "${incl_root}/online_channel.hh" "${incl_root}/time_point.hh"  -o "${CMAKE_CURRENT_BINARY_DIR}/generated/daqd_stream_doc_strings.inc"
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
        DEPENDS daqd_stream_client)

add_custom_target(generate_daqd_stream_doc_strings
        DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/generated/daqd_stream_doc_strings.inc")

pybind11_add_module(daqd_stream client.cc)
target_link_libraries(daqd_stream PRIVATE daqd_stream_client)
target_include_directories(daqd_stream PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/generated")
add_dependencies(daqd_stream
        generate_daqd_stream_doc_strings)

install(TARGETS daqd_stream DESTINATION "${Python3_SITEARCH}")

configure_file(tests/test_daqd_client.py ${CMAKE_CURRENT_BINARY_DIR}/test_daqd_client.py COPYONLY)

integration_test( NAME channel_list_changes
        SCRIPT tests/test_channel_list_changes.py)

integration_test( NAME server_custom_size
        SCRIPT tests/test_server_custom_size.py)


#add_test(NAME test_daqd_client_py
#        COMMAND ${PYTHON_EXECUTABLE} -B test_daqd_client.py
#        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})