# -----------------------------------------------------------------------------
# list of sources:
# -----------------------------------------------------------------------------
set(MCDS_TOOLS_FL_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/fl_mcds_tools_win_mcds_general.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/fl_mcds_tools_win_mcds_opoint.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/fl_mcds_tools_win_mcds_otgb.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/fl_mcds_tools_win_mcds_trace_info.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/fl_mcds_tools_win_mcds.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/fl_mcds_tools_win_mcds.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/fl_mcds_tools.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/fl_mcds_tools.h"
)

set(MCDS_TOOLS_ELF_FILE_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_elf_file_loader_tc.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_elf_file_loader_tc.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_elf_file_loader.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_elf_from_mcds_file.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_elf_from_mcds_file.h"
)

set(MCDS_TOOLS_JSON_FILE_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_json_loader.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_json_loader.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_error.h" 
)

set(MCDS_TOOLS_FILE_HANDLER_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_file_handler.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_file_handler.h"
)

set(MCDS_TOOLS_FILE_BASIC_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_file_io_basic.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_file_io_basic.h"
)

set(MCDS_TOOLS_FILE_MCR_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_file_io_mcr.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_file_io_mcr.h"
)

set(MCDS_TOOLS_FILE_IO_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_file_io.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_file_io.h"
)

set(MCDS_TOOLS_RECORDER_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_lib_recorder_device_if.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_lib_recorder_device_if.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_lib_recorder_device_if.h"
)

set(MCDS_TOOLS_MTSC_SRC
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_mtsc.cpp"  
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_mtsc.h"
)

set(MCDS_TOOLS_RICH_RECORDER_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_rich_recorder.cpp"  
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_rich_recorder.h"
)


# -----------------------------------------------------------------------------
# include soruces in the following targets:
# -----------------------------------------------------------------------------
# lib decoder demo
if(MCDS_BUILD_DEMOS)
    add_target_sources(mcds_lib_decoder_demo 
        ${MCDS_TOOLS_ELF_FILE_SRCS}
        ${MCDS_TOOLS_FILE_HANDLER_SRCS}
        ${MCDS_TOOLS_FILE_BASIC_SRCS}
        ${MCDS_TOOLS_FILE_MCR_SRCS}
        ${MCDS_TOOLS_FILE_IO_SRCS}
        ${MCDS_TOOLS_MTSC_SRC}
        ${MCDS_TOOLS_JSON_FILE_SRCS})
endif()

# -----------------------------------------------------------------------------
# trace viewer
if(MCDS_BUILD_MTV)
    add_target_sources(mcds_trace_viewer 
        ${MCDS_TOOLS_FL_SRCS}
        ${MCDS_TOOLS_ELF_FILE_SRCS}
        ${MCDS_TOOLS_FILE_HANDLER_SRCS}
        ${MCDS_TOOLS_FILE_BASIC_SRCS}
        ${MCDS_TOOLS_FILE_MCR_SRCS}
        ${MCDS_TOOLS_FILE_IO_SRCS}
        ${MCDS_TOOLS_MTSC_SRC}
        ${MCDS_TOOLS_RICH_RECORDER_SRCS}
        ${MCDS_TOOLS_JSON_FILE_SRCS})
endif()

# -----------------------------------------------------------------------------
# configurator dll
add_target_sources(mcds_configurator 
    ${MCDS_TOOLS_FILE_BASIC_SRCS}
    ${MCDS_TOOLS_FILE_MCR_SRCS}
    ${MCDS_TOOLS_JSON_FILE_SRCS})

# -----------------------------------------------------------------------------
# decoder dll
add_target_sources(mcds_decoder 
    ${MCDS_TOOLS_ELF_FILE_SRCS}
    ${MCDS_TOOLS_FILE_HANDLER_SRCS}
    ${MCDS_TOOLS_FILE_BASIC_SRCS}
    ${MCDS_TOOLS_FILE_MCR_SRCS}
    ${MCDS_TOOLS_FILE_IO_SRCS}
    ${MCDS_TOOLS_MTSC_SRC})

# -----------------------------------------------------------------------------
# recorder dll
add_target_sources(mcds_recorder 
    ${MCDS_TOOLS_FILE_BASIC_SRCS} 
    ${MCDS_TOOLS_RECORDER_SRCS})

if (MCDS_BUILD_TEST)
    # -------------------------------------------------------------------------
    # lib a3g test
    if (MSVC)
        add_target_sources(mcds_lib_a3g_test ${MCDS_TOOLS_MTSC_SRC})
    endif()

    # -------------------------------------------------------------------------
    # hl decoder test
    add_target_sources(mcds_hl_decoder_test
            ${MCDS_TOOLS_ELF_FILE_SRCS}
            ${MCDS_TOOLS_FILE_HANDLER_SRCS}
            ${MCDS_TOOLS_FILE_BASIC_SRCS}
            ${MCDS_TOOLS_FILE_MCR_SRCS}
            ${MCDS_TOOLS_FILE_IO_SRCS}
            ${MCDS_TOOLS_MTSC_SRC}
            ${MCDS_TOOLS_JSON_FILE_SRCS})
endif()