; see https://docs.platformio.org/en/latest/projectconf/index.html
[platformio]
src_dir = .
include_dir = .

[env]
platform = https://github.com/Community-PIO-CH32V/platform-ch32v.git
; or genericCH32V003A4M6 or whatever, see platform link
board = ch32v003f4p6_evt_r0
monitor_speed = 115200
; all environments use ch32v003 fun as base, no more ch32v003evt
extends = fun_base
; use a source filter to only build certain folders / files in later environments

; for examples that use ch32v003fun as their base
[fun_base]
board_build.ldscript = ch32v003fun/ch32v003fun.ld
build_flags = -flto -Ich32v003fun -I/usr/include/newlib -lgcc -Iextralibs -I"examples/$PIOENV"
build_src_filter = +<ch32v003fun>
extra_libs_srcs = +<extralibs>

; If creating a new example:
; 1. Add new [env:name]
; 2. Add build_src_filter with fun base files + example folder (+ extra libraries if used) for source files
; 3. Add additional build flags as needed (see uartdemo)
; 4. Switch to new environment in VSCode bottom taskbar (https://docs.platformio.org/en/latest/integration/ide/vscode.html#project-tasks)
[env:blink]
build_src_filter = ${fun_base.build_src_filter} +<examples/blink>

[env:bootload]
build_src_filter = ${fun_base.build_src_filter} +<examples/bootload>

[env:debugprintfdemo]
build_src_filter = ${fun_base.build_src_filter} +<examples/debugprintfdemo>

[env:external_crystal]
build_src_filter = ${fun_base.build_src_filter} +<examples/external_crystal>

[env:GPIO]
build_src_filter = ${fun_base.build_src_filter} ${fun_base.extra_libs_srcs} +<examples/GPIO>

[env:optionbytes]
build_src_filter = ${fun_base.build_src_filter} +<examples/optionbytes>

[env:run_from_ram]
build_src_filter = ${fun_base.build_src_filter} +<examples/run_from_ram>

[env:template]
build_src_filter = ${fun_base.build_src_filter} +<examples/template>

[env:self_modify_code]
build_src_filter = ${fun_base.build_src_filter} +<examples/self_modify_code>

[env:uartdemo]
build_flags = ${fun_base.build_flags} -DSTDOUT_UART
build_src_filter = ${fun_base.build_src_filter} +<examples/uartdemo>

[env:ws2812bdemo]
build_src_filter = ${fun_base.build_src_filter} +<examples/ws2812bdemo>