# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.20.0)

set(WIRELINK_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../../..")

if(BOARD MATCHES "^unit_testing")
  find_package(Zephyr COMPONENTS unittest REQUIRED HINTS $ENV{ZEPHYR_BASE})
  set(BULK_TEST_TARGET testbinary)
  set(BULK_WIRELINK_SOURCES
    ${WIRELINK_ROOT}/src/bulk_receiver.c
    ${WIRELINK_ROOT}/src/bulk_sender.c
    ${WIRELINK_ROOT}/src/cobs.c
    ${WIRELINK_ROOT}/src/crc.c
    ${WIRELINK_ROOT}/src/frame.c
    ${WIRELINK_ROOT}/src/init.c
    ${WIRELINK_ROOT}/src/protocol.c
    ${WIRELINK_ROOT}/src/rx_ring_bipbuf.c
    ${WIRELINK_ROOT}/src/schedule.c
    ${WIRELINK_ROOT}/src/transport.c
    ${WIRELINK_ROOT}/src/types.c
    ${WIRELINK_ROOT}/src/unit_rx.c
  )
else()
  list(APPEND ZEPHYR_EXTRA_MODULES ${WIRELINK_ROOT})
  find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
  set(BULK_TEST_TARGET app)
endif()
project(wirelink_bulk_transfer_integration)

set(WLC_GENERATED_DIR
    "${WIRELINK_ROOT}/tests/fixtures/wlc/generated/current")

target_sources(${BULK_TEST_TARGET} PRIVATE
  src/main.c
  ${BULK_WIRELINK_SOURCES}
  ${WLC_GENERATED_DIR}/control.c
  ${WLC_GENERATED_DIR}/control_bindings.c
)

target_include_directories(${BULK_TEST_TARGET} PRIVATE
  ${WIRELINK_ROOT}/include
  ${WIRELINK_ROOT}/src
  ${WLC_GENERATED_DIR}
)
