cmake_minimum_required(VERSION 3.21)
include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake)
project(app_an02003)

set(APP_HW_TARGET       xk-audio-316-mc.xn)

set(APP_DEPENDENT_MODULES   "lib_i2c(6.4.0)"
                            "lib_i2s(6.0.1)"
                            "lib_adat(2.0.1)"
                            "lib_spdif(6.2.1)"
                            "lib_sw_pll(2.3.1)"
                            "lib_logging(3.3.1)"
                            "lib_src(2.7.0)"
                            "lib_xassert(4.3.1)"
                            "lib_xcore_math(2.4.0)"
                            "lib_board_support(1.1.1)"
                            )

set(COMPILER_FLAGS_COMMON       -O3
                                -g
                                -report
                                -DBOARD_SUPPORT_BOARD=XK_AUDIO_316_MC_AB
                                -DADAT_TX_USE_SHARED_BUFF=1 # Pointer mode (faster)
                                -DASRC_TASK_CONFIG=1 # Enables user setting of ASRC configuration
                                -DDEBUG_ASRC_TASK=1 # Prints cycle usage
                                -DAPPLY_PRE_POST_GAIN=1 # Apply 1 dB attenuate/gain to ASRC to handle non-sine 0dB FS signals without clipping
                                )

set(APP_COMPILER_FLAGS_ADAT     ${COMPILER_FLAGS_COMMON})

set(APP_COMPILER_FLAGS_SPDIF    ${COMPILER_FLAGS_COMMON})

set(APP_COMPILER_FLAGS_I2S      ${COMPILER_FLAGS_COMMON})

# Suppress over cautious warning about reference to resource
set(APP_COMPILER_FLAGS_spdif_wrapper.xc ${APP_COMPILER_FLAGS}
                                        -Wno-unusual-code
                                        )

set(APP_INCLUDES                src/
                                ../../lib_src/lib_src/src/asrc_task/)

set(XMOS_SANDBOX_DIR            ${CMAKE_CURRENT_LIST_DIR}/../..)

XMOS_REGISTER_APP()
