#
# Common include directories and source files for bluetooth unit tests
#

include_directories(
  src
  ${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/include
  ${ZEPHYR_BASE}/tests/bluetooth/controller/common/include
  ${ZEPHYR_BASE}/include/zephyr/bluetooth
  ${ZEPHYR_BASE}/subsys/bluetooth
  ${ZEPHYR_BASE}/subsys/bluetooth/controller
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/util
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/include
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/nordic
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/nordic/lll
)

FILE(GLOB ll_sw_sources
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/util/mem.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/util/memq.c
	${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_chan.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_tx_queue.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_llcp_local.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_llcp_pdu.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_llcp_phy.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_llcp_enc.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_llcp_conn_upd.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_llcp_chmu.c
  ${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_llcp.c
	${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ull_conn.c
	${ZEPHYR_BASE}/subsys/bluetooth/controller/ll_sw/ll_addr.c
)

FILE(GLOB mock_sources
  ${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/kernel.c
  ${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/ecb.c
  ${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/mayfly.c
  ${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/lll.c
  ${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/lll_conn.c
  ${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/ll_assert.c
	${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/util.c
	${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/ticker.c
	${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/ull.c
	${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/ull_peripheral.c
	${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/ull_central.c
	${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/ull_scan.c
	${ZEPHYR_BASE}/tests/bluetooth/controller/mock_ctrl/src/lll_clock.c
)

FILE(GLOB common_sources
  ${ZEPHYR_BASE}/tests/bluetooth/controller/common/src/helper_pdu.c
  ${ZEPHYR_BASE}/tests/bluetooth/controller/common/src/helper_util.c
)

add_definitions(-include kconfig.h)
if(KCONFIG_OVERRIDE_FILE)
  add_definitions(-include ${KCONFIG_OVERRIDE_FILE})
endif()

add_definitions(-include ztest.h)
add_definitions(-include soc.h)
