From ffec7917ecb8be9fb468c6870e6e7c5594ecda39 Mon Sep 17 00:00:00 2001
From: Maximilian Gerhardt <maximilian.gerhardt@rub.de>
Date: Mon, 6 Mar 2023 10:21:16 +0100
Subject: [PATCH] Refactor platformio.ini to accomodate ch32v003evt and
 ch32v003fun based builds

---
 platformio.ini | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/platformio.ini b/platformio.ini
index cb1cbce..c494395 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -8,19 +8,33 @@ platform = https://github.com/Community-PIO-CH32V/platform-ch32v.git
 ; or genericCH32V003A4M6 or whatever, see platform link
 board = ch32v003f4p6_evt_r0
 monitor_speed = 115200
+; use a source filter to only build certain folders / files
+
+; for examples that use ch32v003evt as their base
+[evt_base]
 board_build.ldscript = ch32v003evt/ch32v003.ld
 build_flags = -flto -Ich32v003evt -lgcc
-; use a source filter to only build certain folders / files
+build_src_filter = +<ch32v003evt>
+
+; 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
+build_src_filter = +<ch32v003fun>
 
 [env:blink]
-build_src_filter = +<ch32v003evt> +<examples/blink>
+extends = fun_base
+build_src_filter = ${fun_base.build_src_filter} +<examples/blink>
 
 [env:fulldemo]
-build_src_filter = +<ch32v003evt> +<examples/fulldemo>
+extends = evt_base
+build_src_filter = ${evt_base.build_src_filter} +<examples/fulldemo>
 
 ; sandbox demo does currently not compile (undefined reference to `__get_dscratch0')
 ;[env:sandbox]
-;build_src_filter = +<ch32v003evt> +<examples/sandbox>
+;extends = evt_base
+;build_src_filter = ${evt_base.build_src_filter} +<examples/sandbox>
 
 [env:ws2812demo]
-build_src_filter = +<ch32v003evt> +<examples/ws2812demo>
+extends = evt_base
+build_src_filter = ${evt_base.build_src_filter} +<examples/ws2812demo>
-- 
GitLab