Skip to content

Commit e82e9be

Browse files
committed
feat: switch to C++20 standard (-std=gnu++20)
ESP32-S3 toolchain (GCC 14.2.0) fully supports C++20. This enables modern C++ features: - std::jthread and stop_token for safer thread management - std::shared_mutex for read-heavy concurrent access - std::optional, std::span for safer APIs - Concepts and constexpr improvements - Designated initializers, three-way comparison Also fixes: - linux_common lib_deps: remove dead ESP-IDF-InkPlate upstream ref - memory_pool.tcc: freeSlots → freeSlots_ typo (lines 56, 76)
1 parent eae0bf7 commit e82e9be

2 files changed

Lines changed: 30 additions & 33 deletions

File tree

lib/externals/memory_pool.tcc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ noexcept
5353
memoryPool.currentBlock_ = nullptr;
5454
currentSlot_ = memoryPool.currentSlot_;
5555
lastSlot_ = memoryPool.lastSlot_;
56-
freeSlots_ = memoryPool.freeSlots;
56+
freeSlots_ = memoryPool.freeSlots_;
5757
}
5858

5959
template <typename T, size_t BlockSize>
@@ -73,7 +73,7 @@ noexcept
7373
std::swap(currentBlock_, memoryPool.currentBlock_);
7474
currentSlot_ = memoryPool.currentSlot_;
7575
lastSlot_ = memoryPool.lastSlot_;
76-
freeSlots_ = memoryPool.freeSlots;
76+
freeSlots_ = memoryPool.freeSlots_;
7777
}
7878
return *this;
7979
}

platformio.ini

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ default_envs = inkplate_6_release
1313

1414
[common]
1515
lib_deps = https://github.com/turgu1/ESP-IDF-InkPlate.git#v0.9.6
16-
build_flags =
17-
-std=gnu++17
16+
build_flags =
17+
-std=gnu++20
1818
-I include_global
1919
-D PNGLE_GRAYSCALE_OUTPUT=1
2020
-D PNGLE_NO_GAMMA_CORRECTION=1
21-
build_unflags =
21+
build_unflags =
2222
-std=gnu++11
2323

2424
[inkplate_common]
@@ -29,7 +29,7 @@ monitor_speed = 115200
2929
upload_speed = 256000
3030
monitor_filters = colorize
3131
board_build.partitions = partitions.csv
32-
build_flags =
32+
build_flags =
3333
-O3
3434
${common.build_flags}
3535
-D CONFIG_SPIRAM_CACHE_WORKAROUND
@@ -42,19 +42,18 @@ build_flags =
4242
-I lib_freetype/include/freetype2
4343
-L lib_freetype/lib
4444
-lfreetype
45-
build_unflags =
45+
build_unflags =
4646
${common.build_unflags}
47-
lib_extra_dirs =
47+
lib_extra_dirs =
4848
lib_esp32
49-
board_build.embed_files =
49+
board_build.embed_files =
5050
src/embed/favicon.ico
5151
src/embed/upload_script.html
52-
lib_deps =
53-
${common.lib_deps}
52+
lib_deps =
5453

5554
[linux_common]
5655
platform = linux_x86_64
57-
build_flags =
56+
build_flags =
5857
${common.build_flags}
5958
-lpthread
6059
-lrt
@@ -64,58 +63,57 @@ build_flags =
6463
-I lib/externals
6564
!pkg-config --cflags --libs gtk+-3.0
6665
!pkg-config --cflags --libs freetype2
67-
build_unflags =
66+
build_unflags =
6867
${common.build_unflags}
69-
lib_extra_dirs =
68+
lib_extra_dirs =
7069
lib_linux
7170
lib_freetype
72-
lib_deps =
73-
${common.lib_deps}
71+
lib_deps =
7472

7573
[env:inkplate_6_release]
7674
extends = inkplate_common
7775
build_type = release
78-
build_flags =
76+
build_flags =
7977
-D INKPLATE_6
8078
-D EPUB_LOG_LEVEL=ESP_LOG_INFO
8179
${inkplate_common.build_flags}
8280

8381
[env:inkplate_6_debug]
8482
extends = inkplate_common
8583
build_type = release
86-
build_flags =
84+
build_flags =
8785
-D INKPLATE_6
8886
-D EPUB_LOG_LEVEL=ESP_LOG_VERBOSE
8987
${inkplate_common.build_flags}
9088

9189
[env:inkplate_6plus_release]
9290
extends = inkplate_common
9391
build_type = release
94-
build_flags =
92+
build_flags =
9593
-D INKPLATE_6PLUS
9694
-D EPUB_LOG_LEVEL=ESP_LOG_INFO
9795
${inkplate_common.build_flags}
9896

9997
[env:inkplate_6plus_debug]
10098
extends = inkplate_common
10199
build_type = release
102-
build_flags =
100+
build_flags =
103101
-D INKPLATE_6PLUS
104102
-D EPUB_LOG_LEVEL=ESP_LOG_VERBOSE
105103
${inkplate_common.build_flags}
106104

107105
[env:inkplate_10_release]
108106
extends = inkplate_common
109107
build_type = release
110-
build_flags =
108+
build_flags =
111109
-D INKPLATE_10
112110
-D EPUB_LOG_LEVEL=ESP_LOG_INFO
113111
${inkplate_common.build_flags}
114112

115113
[env:inkplate_10_debug]
116114
extends = inkplate_common
117115
build_type = release
118-
build_flags =
116+
build_flags =
119117
-D INKPLATE_10
120118
-D DEBUGGING=1
121119
-D EPUB_LOG_LEVEL=ESP_LOG_VERBOSE
@@ -125,7 +123,7 @@ build_flags =
125123
extends = inkplate_common
126124
lib_compat_mode = off
127125
build_type = release
128-
build_flags =
126+
build_flags =
129127
-D INKPLATE_10
130128
-D DEBUGGING=1
131129
-D TESTING=1
@@ -136,7 +134,7 @@ lib_deps = google/googletest@^1.10.0
136134
[env:inkplate_6_extended_case_release]
137135
extends = inkplate_common
138136
build_type = release
139-
build_flags =
137+
build_flags =
140138
-D INKPLATE_6
141139
-D EXTENDED_CASE
142140
-D EPUB_LOG_LEVEL=ESP_LOG_INFO
@@ -145,7 +143,7 @@ build_flags =
145143
[env:inkplate_6_extended_case_debug]
146144
extends = inkplate_common
147145
build_type = release
148-
build_flags =
146+
build_flags =
149147
-D INKPLATE_6
150148
-D EXTENDED_CASE
151149
-D EPUB_LOG_LEVEL=ESP_LOG_VERBOSE
@@ -154,7 +152,7 @@ build_flags =
154152
[env:inkplate_10_extended_case_release]
155153
extends = inkplate_common
156154
build_type = release
157-
build_flags =
155+
build_flags =
158156
-D INKPLATE_10
159157
-D EXTENDED_CASE
160158
-D EPUB_LOG_LEVEL=ESP_LOG_INFO
@@ -163,7 +161,7 @@ build_flags =
163161
[env:inkplate_10_extended_case_debug]
164162
extends = inkplate_common
165163
build_type = release
166-
build_flags =
164+
build_flags =
167165
-D INKPLATE_10
168166
-D EXTENDED_CASE
169167
-D EPUB_LOG_LEVEL=ESP_LOG_VERBOSE
@@ -172,7 +170,7 @@ build_flags =
172170
[env:linux_release]
173171
extends = linux_common
174172
build_type = release
175-
build_flags =
173+
build_flags =
176174
-O3
177175
-D DEBUGGING=0
178176
-D TOUCH_TRIAL=1
@@ -183,7 +181,7 @@ build_flags =
183181
[env:linux_debug]
184182
extends = linux_common
185183
build_type = debug
186-
build_flags =
184+
build_flags =
187185
-g -O0
188186
-fno-inline
189187
-D DEBUGGING=0
@@ -197,7 +195,7 @@ build_flags =
197195
[env:linux_tests]
198196
extends = linux_common
199197
build_type = debug
200-
build_flags =
198+
build_flags =
201199
-g -O0
202200
-fno-inline
203201
-D DEBUGGING=0
@@ -212,7 +210,7 @@ extends = inkplate_common
212210
board = esp32-s3-devkitm-1
213211
board_upload.flash_size = 16MB
214212
board_upload.maximum_size = 16777216
215-
build_flags =
213+
build_flags =
216214
-DBOARD_TYPE_PAPER_S3
217215
-DMINIZ_NO_ZLIB_COMPATIBLE_NAMES=1
218216
-DCONFIG_EPD_DISPLAY_TYPE_ED047TC2
@@ -230,6 +228,5 @@ lib_extra_dirs =
230228
lib_esp32
231229
JPEGDEC
232230
PNGdec
233-
lib_ignore =
231+
lib_ignore =
234232
ESP-IDF-Inkplate
235-

0 commit comments

Comments
 (0)