set(APP_TARGET app)

add_executable(${APP_TARGET} main.cpp)

if (${CMAKE_BUILD_TYPE} STREQUAL "Release")
    set_property(TARGET ${APP_TARGET} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()

target_link_libraries(${APP_TARGET} PRIVATE
    BSP::CORE
    OS::FreeRTOS
    CSP::F413xx::USB::CDC
)

stm32_add_linker_script(${APP_TARGET} PRIVATE
    ${CMAKE_SOURCE_DIR}/toolchain/linker/${PROVIDER}/${CHIP}/gcc/app/link.ld
)

add_custom_command(TARGET ${APP_TARGET} POST_BUILD
    COMMAND ${STM32_TARGET_TRIPLET}-objcopy -Obinary ${CMAKE_BINARY_DIR}/src/app/app.elf ${CMAKE_BINARY_DIR}/app.bin
    COMMAND ${STM32_TARGET_TRIPLET}-objcopy -Oihex ${CMAKE_BINARY_DIR}/src/app/app.elf ${CMAKE_BINARY_DIR}/app.hex
    COMMENT "Building object files"
)