# -----------------------------------------------------------------------------
# list of sources:
# -----------------------------------------------------------------------------
set(MCDS_CONFIG_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_otgb_a1g2g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_otgb_a1g2g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_otgb_a3g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_otgb_a3g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_otgb_rc1.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_otgb_rc1.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_a1g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_a1g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_a2g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_a2g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_a3g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_a3g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_mm.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_mm.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_rc1.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_rc1.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_soc_a3g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_soc_a3g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_soc_rc1.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs_soc_rc1.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_config_regs.h"
)

set(MCDS_DECODER_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_a1g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_a1g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_a2g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_a2g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_a3g_tc49a.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_a3g_tc49a.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_a3g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_a3g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_factory.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_factory.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_fast.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_fast.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_rc1.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_rc1.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder.h"
)

set(MCDS_DEVICE_ADDR_RANGE_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_device_addr_range_des.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_device_addr_range_des.h"
)

set(MCDS_DEVICE_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_device_cache.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_device_cache.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_device_model.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_device_model.h"
)

set(MCDS_HL_DECODER_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_binary_instr_axg.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_binary_instr_rcx.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_binary_instr.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_hl_decoder_packaged.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_hl_decoder_packaged.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_hl_decoder.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_hl_decoder.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_hl_decoder_axg.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_hl_decoder_axg.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_hl_decoder_rcx.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_hl_decoder_rcx.h"
)

set(MCDS_OTGB_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_otgb_decoder_a1g2g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_otgb_decoder_a1g2g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_otgb_decoder_a3g.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_otgb_decoder_a3g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_otgb_decoder_rc1.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_otgb_decoder_rc1.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_otgb_decoder.h"
)

set(MCDS_RAW_FILE_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_raw_file_reader.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_raw_file_reader.h"
)

set(MCDS_REGS_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_regs_a1g2g_mcds.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_regs_a1g2g_mcds.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_regs_a1g2g_mm.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_regs_a1g2g_mm.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_regs_a1g2g.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_regs_tc4.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_regs_tc4.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_regs_rc1.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_regs_rc1.h"
)


# -----------------------------------------------------------------------------
# include sources in the following targets:
# -----------------------------------------------------------------------------

# -----------------------------------------------------------------------------
# lib demo
if(MCDS_BUILD_DEMOS)
    target_link_libraries(mcds_lib_demo PRIVATE mcds_core)
endif()

# -----------------------------------------------------------------------------
# trace viewer — sources now linked via library targets (mcds_configurator, mcds_decoder, mcds_recorder)

# -----------------------------------------------------------------------------
# configurator dll
add_target_sources(mcds_configurator
    ${MCDS_CONFIG_SRCS}
    ${MCDS_DEVICE_ADDR_RANGE_SRCS}
    ${MCDS_REGS_SRCS})

# -----------------------------------------------------------------------------
# decoder dll
add_target_sources(mcds_decoder
    ${MCDS_CONFIG_SRCS}
    ${MCDS_DECODER_SRCS}
    ${MCDS_DEVICE_ADDR_RANGE_SRCS}
    ${MCDS_DEVICE_SRCS}
    ${MCDS_HL_DECODER_SRCS}
    ${MCDS_OTGB_SRCS}
    ${MCDS_RAW_FILE_SRCS}
    ${MCDS_REGS_SRCS})

# -----------------------------------------------------------------------------
# recorder dll
# mcds_control.cpp now provided by mcds_core (linked in mcds_recorder_dll.cmake)
