# -----------------------------------------------------------------------------
# src dir
# -----------------------------------------------------------------------------
add_subdirectory(generated)
add_subdirectory(mcds)
add_subdirectory(mcds_lib)
add_subdirectory(mcds_tools)

include(${CMAKE_CURRENT_SOURCE_DIR}/mcds_configurator_dll.cmake)
include(${CMAKE_CURRENT_SOURCE_DIR}/mcds_decoder_dll.cmake)
include(${CMAKE_CURRENT_SOURCE_DIR}/mcds_recorder_dll.cmake)

# -----------------------------------------------------------------------------
# list of sources:
# -----------------------------------------------------------------------------
set(HEADER_SRCS
    "${CMAKE_CURRENT_SOURCE_DIR}/IFX_MCDS_STDSW_Trace.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcd_api.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcd_types.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_control.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_ifx_devices_tools.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_lib_configurator.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_lib_decoder.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_lib_recorder.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/mcds_lib.h"
)

# -----------------------------------------------------------------------------
# include soruces in the following targets:
# -----------------------------------------------------------------------------
# lib decoder demo
if(MCDS_BUILD_DEMOS)
    add_target_sources(mcds_lib_decoder_demo ${HEADER_SRCS})
endif()

# -----------------------------------------------------------------------------
# lib demo
if(MCDS_BUILD_DEMOS)
    add_target_sources(mcds_lib_demo ${HEADER_SRCS})
endif()

# -----------------------------------------------------------------------------
# lib demo ambrosys
if(MCDS_BUILD_DEMOS)
    target_sources(mcds_ambrosys_demo
        PRIVATE
            ${HEADER_SRCS}
    )

    target_include_directories(mcds_ambrosys_demo
        PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}"
    )
endif()

# -----------------------------------------------------------------------------
# trace viewer
if(MCDS_BUILD_MTV)
    add_target_sources(mcds_trace_viewer ${HEADER_SRCS})
endif()

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

    # -------------------------------------------------------------------------
    # hl decoder test
    add_target_sources(mcds_hl_decoder_test ${HEADER_SRCS})

    # -------------------------------------------------------------------------
    # lib test
    add_target_sources(mcds_lib_test ${HEADER_SRCS})

    # -------------------------------------------------------------------------
    # lib test
    add_target_sources(mcds_binary_decode_test ${HEADER_SRCS})

    # -------------------------------------------------------------------------
    # json loader test
    add_target_sources(mcds_json_loader ${HEADER_SRCS})
endif()
