Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
185 commits
Select commit Hold shift + click to select a range
478529a
fix: SonarCloud bugs and vulnerabilities on main
dstroy0 Sep 29, 2026
e21eabc
sonar: drop the suppressions and coverage exclusion added in 478529a
dstroy0 Sep 29, 2026
cd42cf2
ci: check out include/MMgr in the jobs that compile or package the li…
dstroy0 Sep 30, 2026
01ba6aa
build: embedded_types as a submodule beside MMgr, at the commit MMgr …
dstroy0 Sep 30, 2026
4b09bad
build: compile MMgr's sources as pc_mmgr under ProtoCore's flags
dstroy0 Sep 30, 2026
43ca0c6
harness: add MMgr and embedded_types include roots to the base includ…
dstroy0 Sep 30, 2026
ea18dde
build: compile MMgr's own source list as pc_mmgr and link it into eve…
dstroy0 Sep 30, 2026
b42b794
crypto/hash/sha256: move onto MMgr (memoria_operor, magna_extremitas,…
dstroy0 Sep 30, 2026
6e66071
crypto/cipher/aes_block: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
e181729
crypto/ct_eq: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
d56c3a0
crypto/cipher/chacha20: name the cellblock alignment the region asser…
dstroy0 Sep 30, 2026
34dab50
crypto/hash/sha3: name the cellblock alignment the region asserts rel…
dstroy0 Sep 30, 2026
8873c46
network_drivers/transport/diffserv: take its state from the worker ce…
dstroy0 Sep 30, 2026
68a9c4e
server/core/failsafe: take its state from the worker cellblock
dstroy0 Sep 30, 2026
d21be4e
server/net/relay/relay: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
c8a6591
services/energy/iccp: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
acec028
services/fieldbus/directnet: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
b71d1d0
services/fieldbus/hostlink: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
0d3b761
services/fieldbus/lonworks: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
7f07b19
services/fieldbus/powerlink: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
2eb5af9
services/fieldbus/profinet: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
1e80046
services/fieldbus/s7comm: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
0d51cb9
services/fieldbus/sercos: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
9421f9c
services/fieldbus/snp: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
eb066d0
services/timing_position/ubx: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
ef2630d
services/transportation/ocit: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
32ea64b
shared/der: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
35bbe88
crypto/asymmetric/bignum: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
35c9202
crypto/mac/poly1305: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
061ccaa
network_drivers/application/http_range: move onto MMgr (cellularum_la…
dstroy0 Sep 30, 2026
e16ec98
network_drivers/application/nts: move onto MMgr (memoria_operor)
dstroy0 Sep 30, 2026
465427d
network_drivers/network/dns/dns_wire: move onto MMgr (proximus_operor)
dstroy0 Sep 30, 2026
4ff545f
network_drivers/presentation/codec/hpack_prim: move onto MMgr (memori…
dstroy0 Sep 30, 2026
2f84815
server/peripherals/dmx: move onto MMgr
dstroy0 Sep 30, 2026
c0cab75
services/fieldbus/cclink: move onto MMgr
dstroy0 Sep 30, 2026
3143f1a
services/fieldbus/cip: move onto MMgr
dstroy0 Sep 30, 2026
c685216
services/fieldbus/fins: move onto MMgr
dstroy0 Sep 30, 2026
a2f8f1e
services/fieldbus/hart: move onto MMgr
dstroy0 Sep 30, 2026
f607e93
services/fieldbus/mbus: move onto MMgr
dstroy0 Sep 30, 2026
1768a34
services/fieldbus/profibus: move onto MMgr
dstroy0 Sep 30, 2026
8fbf2e2
services/iot/dds: move onto MMgr
dstroy0 Sep 30, 2026
99bc4bc
services/system/control: move onto MMgr
dstroy0 Sep 30, 2026
23762a7
services/system/control: keep the reinterpret comment on its own line
dstroy0 Sep 30, 2026
00801f9
services/energy/iccp: keep the tlv comment on its own line
dstroy0 Sep 30, 2026
6325bc3
services/timing_position/gnss/rtcm3: move onto MMgr
dstroy0 Sep 30, 2026
0781b40
services/transportation/wave: move onto MMgr
dstroy0 Sep 30, 2026
49b2237
network_drivers/application/binary_asset_blobs: move onto MMgr
dstroy0 Sep 30, 2026
5d61eca
binary_asset_blobs: generate the MMgr theme lookup from gen_theme_blo…
dstroy0 Sep 30, 2026
fbcb58e
network_drivers/presentation/http/http2/h2_frame: move onto MMgr
dstroy0 Sep 30, 2026
5dc0e51
network_drivers/presentation/http/httpcache: move onto MMgr
dstroy0 Sep 30, 2026
c2d6464
network_drivers/presentation/http/route/http_route: move onto MMgr
dstroy0 Sep 30, 2026
f2cc08e
services/energy/sunspec: move onto MMgr
dstroy0 Sep 30, 2026
31e5d3b
services/iot/redis_resp: move onto MMgr
dstroy0 Sep 30, 2026
ca636b9
server/core/worker: worker slots borrow through MMgr cellblock guards
dstroy0 Sep 30, 2026
d39305a
services/southbound/southbound: move onto MMgr
dstroy0 Sep 30, 2026
987d624
network_drivers/application/smb/spnego: move onto MMgr
dstroy0 Sep 30, 2026
e6beaff
services/energy/iec60870: move onto MMgr
dstroy0 Sep 30, 2026
0560d4a
services/fieldbus/cotp: move onto MMgr
dstroy0 Sep 30, 2026
b335a09
services/fieldbus/simatic: move onto MMgr
dstroy0 Sep 30, 2026
d5c03c5
crypto/hash/sha1: move onto MMgr
dstroy0 Sep 30, 2026
e38d99c
services/energy/mms: move onto MMgr
dstroy0 Sep 30, 2026
3d5e186
services/energy/mms: keep the NOSONAR on the call it annotates
dstroy0 Sep 30, 2026
ab4e038
services/file_transfer/ftp/ftp: move onto MMgr
dstroy0 Sep 30, 2026
e88bc55
services/iot/grpcweb: move onto MMgr
dstroy0 Sep 30, 2026
e59f5b0
services/iot/stomp: move onto MMgr
dstroy0 Sep 30, 2026
766a15b
services/machine_tool/lsv2: move onto MMgr
dstroy0 Sep 30, 2026
48f19e1
network_drivers/datalink/roaming: move onto MMgr
dstroy0 Sep 30, 2026
adf3675
network_drivers/presentation/codec/deflate/rfc1951: move onto MMgr
dstroy0 Sep 30, 2026
e8bdeef
server/core/preempt_queue: move onto MMgr
dstroy0 Sep 30, 2026
43c04ca
services/iot/lwm2m/lwm2m_tlv: move onto MMgr
dstroy0 Sep 30, 2026
8af1d4b
services/iot/nats: move onto MMgr
dstroy0 Sep 30, 2026
d8c5d2a
services/machine_tool/focas: move onto MMgr
dstroy0 Sep 30, 2026
d652043
network_drivers/presentation/http/http3/quic_packet: move onto MMgr
dstroy0 Sep 30, 2026
71facf8
network_drivers/presentation/ssh/app/server: move onto MMgr
dstroy0 Sep 30, 2026
7aaf003
server/web/spa_router: move onto MMgr
dstroy0 Sep 30, 2026
2bc3cb7
services/fieldbus/bacnet: move onto MMgr
dstroy0 Sep 30, 2026
ae3eda6
services/iot/xmpp: move onto MMgr
dstroy0 Sep 30, 2026
0a3c6b8
services/energy/goose: move onto MMgr
dstroy0 Sep 30, 2026
670330f
server/storage/config_store: move onto MMgr
dstroy0 Sep 30, 2026
905f262
services/instrumentation/hislip: move onto MMgr
dstroy0 Sep 30, 2026
2176cda
services/radio/espnow: move onto MMgr
dstroy0 Sep 30, 2026
69b9d96
services/instrumentation/vxi11: move onto MMgr
dstroy0 Sep 30, 2026
4f91a76
crypto/hash/md: move onto MMgr
dstroy0 Sep 30, 2026
beb236d
network_drivers/application/ptp: move onto MMgr
dstroy0 Sep 30, 2026
59faeeb
services/iot/mqtt/mqtt_sn: move onto MMgr
dstroy0 Sep 30, 2026
028232f
services/iot/protobuf: move onto MMgr
dstroy0 Sep 30, 2026
c203067
services/storage/wal/wal: move onto MMgr
dstroy0 Sep 30, 2026
815dc5a
shared/pcap: move onto MMgr
dstroy0 Sep 30, 2026
996e60d
crypto/mac/ghash: move onto MMgr
dstroy0 Sep 30, 2026
b74dee1
services/fieldbus/enip: move onto MMgr
dstroy0 Sep 30, 2026
06af33e
services/storage/sqlite/sqlite_format: move onto MMgr
dstroy0 Sep 30, 2026
fbc1955
server/signaling/hw_health: move onto MMgr
dstroy0 Sep 30, 2026
0cf489f
services/machine_tool/haas_mdc: move onto MMgr
dstroy0 Sep 30, 2026
589c036
services/machine_tool/haas_mdc: keep each comment above the call it a…
dstroy0 Sep 30, 2026
066ac81
network_drivers/session/scp/scp: move onto MMgr
dstroy0 Sep 30, 2026
3051a1c
services/file_transfer/http_delivery: move onto MMgr
dstroy0 Sep 30, 2026
98a9786
server/core/logbuf: move onto MMgr
dstroy0 Sep 30, 2026
5eeb920
services/instrumentation/scpi: move onto MMgr
dstroy0 Sep 30, 2026
75d9034
server/core/guardrails: move onto MMgr
dstroy0 Sep 30, 2026
e7474ad
server/core/power_mgmt: move onto MMgr
dstroy0 Sep 30, 2026
efd718a
services/fieldbus/melsec: move onto MMgr
dstroy0 Sep 30, 2026
76c477b
services/iot/amqp: move onto MMgr
dstroy0 Sep 30, 2026
829ca47
services/transportation/utmc: move onto MMgr
dstroy0 Sep 30, 2026
3335c35
services/transportation/utmc: refuse a missing or empty buffer before…
dstroy0 Sep 30, 2026
46a43f7
network_drivers/application/smb/ntlmssp: move onto MMgr
dstroy0 Sep 30, 2026
d8647e7
network_drivers/presentation/codec/base64: move onto MMgr
dstroy0 Sep 30, 2026
8086d31
services/machine_tool/atc: move onto MMgr
dstroy0 Sep 30, 2026
3cbde5f
services/iot/graphql: move onto MMgr
dstroy0 Sep 30, 2026
dde169b
services/net/flow_export: move onto MMgr
dstroy0 Sep 30, 2026
0edc0ad
network_drivers/transport/proxy_protocol: move onto MMgr
dstroy0 Sep 30, 2026
a0e4387
services/timing_position/nmea0183: move onto MMgr
dstroy0 Sep 30, 2026
5f6b4f8
crypto/hash/sha384: move onto MMgr
dstroy0 Sep 30, 2026
8b9ea60
server/storage/partition_monitor: move onto MMgr
dstroy0 Sep 30, 2026
1f0ea49
services/energy/openadr: move onto MMgr
dstroy0 Sep 30, 2026
b97bf9c
crypto/hash/sha512: move onto MMgr
dstroy0 Sep 30, 2026
06710d2
services/instrumentation/gpib: move onto MMgr
dstroy0 Sep 30, 2026
41f102b
services/energy/sep2: move onto MMgr
dstroy0 Sep 30, 2026
dded075
services/machine_tool/fanuc_j519: move onto MMgr
dstroy0 Sep 30, 2026
fa2c65b
services/timing_position/gnss/ntrip_caster: move onto MMgr
dstroy0 Sep 30, 2026
b070cbc
services/fieldbus/ads: move onto MMgr
dstroy0 Sep 30, 2026
aec5665
server/web/dashboard: move onto MMgr
dstroy0 Sep 30, 2026
1c45c8e
crypto/aead/chachapoly: move onto MMgr
dstroy0 Sep 30, 2026
cb948a0
network_drivers/presentation/ssh/transport/ssh_kexhash: move onto MMgr
dstroy0 Sep 30, 2026
6bac223
crypto/x509/x509: move onto MMgr
dstroy0 Sep 30, 2026
d42ae03
network_drivers/presentation/codec/inflate: move onto MMgr
dstroy0 Sep 30, 2026
194e53b
services/fieldbus/mbplus: move onto MMgr
dstroy0 Sep 30, 2026
9ff2444
services/machine_tool/dnc/dnc_stream: move onto MMgr
dstroy0 Sep 30, 2026
ecef2cc
services/radio/enocean: move onto MMgr
dstroy0 Sep 30, 2026
481f594
services/transportation/nema_ts2: move onto MMgr
dstroy0 Sep 30, 2026
56684b5
network_drivers/presentation/http/http3/h3_frame: move onto MMgr
dstroy0 Sep 30, 2026
b57ecde
server/peripherals/pca9685: move onto MMgr
dstroy0 Sep 30, 2026
7397a80
server/peripherals/rcwl0516: move onto MMgr
dstroy0 Sep 30, 2026
80a706c
server/peripherals/rtc: move onto MMgr
dstroy0 Sep 30, 2026
35d7432
server/peripherals/sen0192: move onto MMgr
dstroy0 Sep 30, 2026
6812052
server/peripherals/smbus: move onto MMgr
dstroy0 Sep 30, 2026
3aa8fdc
server/peripherals/vl53l0x: move onto MMgr
dstroy0 Sep 30, 2026
c8c1ecd
server/signaling/bus_capture: move onto MMgr
dstroy0 Sep 30, 2026
d2605f0
crypto/mac/hmac_sha256: move onto MMgr
dstroy0 Sep 30, 2026
5f06cd2
crypto/mac/hmac_sha384: move onto MMgr
dstroy0 Sep 30, 2026
3fcce07
network_drivers/presentation/http/http3/quic_tp: move onto MMgr
dstroy0 Sep 30, 2026
55a35ea
server/signaling/trace_capture: move onto MMgr
dstroy0 Sep 30, 2026
f7f802e
services/timing_position/gnss/gnss_survey: move onto MMgr
dstroy0 Sep 30, 2026
6fbe41c
crypto/mac/hmac_sha512: move onto MMgr
dstroy0 Sep 30, 2026
d1fc9e6
network_drivers/presentation/http/http3/quic_frame: move onto MMgr
dstroy0 Sep 30, 2026
2c8c950
server/io/middleware: move onto MMgr
dstroy0 Sep 30, 2026
f101942
server/peripherals/mpr121: move onto MMgr
dstroy0 Sep 30, 2026
5e606e3
server/peripherals/sht3x: move onto MMgr
dstroy0 Sep 30, 2026
33304b0
server/net/gateway: move onto MMgr
dstroy0 Sep 30, 2026
27e877d
server/peripherals/ads1115: move onto MMgr
dstroy0 Sep 30, 2026
f00a7a7
server/peripherals/ina219: move onto MMgr
dstroy0 Sep 30, 2026
c81a3f0
crypto/rng: move onto MMgr
dstroy0 Sep 30, 2026
ff04387
server/peripherals/fdc2214: move onto MMgr
dstroy0 Sep 30, 2026
fffe84a
server/peripherals/ld2410: move onto MMgr
dstroy0 Sep 30, 2026
35bab12
server/peripherals/ldc1614: move onto MMgr
dstroy0 Sep 30, 2026
abcc36f
services/fieldbus/devicenet: move onto MMgr
dstroy0 Sep 30, 2026
bd08680
services/fieldbus/rawl2: move onto MMgr
dstroy0 Sep 30, 2026
b0f32ff
network_drivers/presentation/codec/deflate/deflate: move onto MMgr
dstroy0 Sep 30, 2026
a2c9fa4
services/radio/radio_sniff: move onto MMgr
dstroy0 Sep 30, 2026
99bb382
server/peripherals/hmmd: move onto MMgr
dstroy0 Sep 30, 2026
b822f69
server/signaling/device_id: move onto MMgr
dstroy0 Sep 30, 2026
7613b93
services/fieldbus/j1939: move onto MMgr
dstroy0 Sep 30, 2026
2de9558
services/machine_tool/mtconnect: move onto MMgr
dstroy0 Sep 30, 2026
ccb7f16
services/fieldbus/canopen: move onto MMgr
dstroy0 Sep 30, 2026
3e4a1c7
shared/ip: move onto MMgr
dstroy0 Sep 30, 2026
fdc368b
crypto/asymmetric/rsa: move onto MMgr
dstroy0 Sep 30, 2026
35eb896
network_drivers/presentation/http/http3/qpack: move onto MMgr
dstroy0 Sep 30, 2026
686ca1a
crypto/pqc/mlkem: move onto MMgr
dstroy0 Sep 30, 2026
c7b10c5
services/security/totp: move onto MMgr
dstroy0 Sep 30, 2026
c87bf02
network_drivers/presentation/codec/json: move onto MMgr
dstroy0 Sep 30, 2026
3e2b1c0
network_drivers/presentation/http/http2/hpack: move onto MMgr
dstroy0 Sep 30, 2026
3b19b2d
server/peripherals/sdi12: move onto MMgr
dstroy0 Sep 30, 2026
657be8e
server/storage/hotswap: move onto MMgr
dstroy0 Sep 30, 2026
4ce02dd
server/storage/mnt_ram: move onto MMgr
dstroy0 Sep 30, 2026
0817cbb
services/energy/c37118: move onto MMgr
dstroy0 Sep 30, 2026
6ec6bfa
services/net/snmp/snmp_crypto: move onto MMgr
dstroy0 Sep 30, 2026
79144f8
services/radio/ble_gatt: move onto MMgr
dstroy0 Sep 30, 2026
73da585
shared/http_date: move onto MMgr
dstroy0 Sep 30, 2026
dd31d53
server/web/web_terminal: move onto MMgr
dstroy0 Sep 30, 2026
a6e46ec
network_drivers/application/sftp/sftp: move onto MMgr
dstroy0 Sep 30, 2026
38cd7ee
server/storage/filesystem: move onto MMgr
dstroy0 Sep 30, 2026
fa6b63a
services/energy/dnp3: move onto MMgr
dstroy0 Sep 30, 2026
b4cbb99
server/signaling/gpio_map: move onto MMgr
dstroy0 Sep 30, 2026
83eeef2
services/storage/wal/wal_store: move onto MMgr
dstroy0 Sep 30, 2026
40cc0dd
server/core/exc_decoder: move onto MMgr
dstroy0 Sep 30, 2026
17f7716
Move remaining src modules onto MMgr: in-progress presentation codecs…
dstroy0 Sep 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/workflows/arduino-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ jobs:
example: ${{ fromJson(needs.discover.outputs.matrix) }}
steps:
- uses: actions/checkout@v7
with:
submodules: true # include/MMgr: src/ builds against it
- uses: arduino/setup-arduino-cli@v2
# Restore-only: the build job wraps the toolchain in place for ccache, so it must never
# save ~/.arduino15 back (a wrapped/half-wrapped tree in the cache is what broke every
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
submodules: true # include/MMgr: src/ builds against it

- name: Set up Python
uses: actions/setup-python@v7
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/esp-idf-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ jobs:
idf: [v5.5]
steps:
- uses: actions/checkout@v7
with:
submodules: true # include/MMgr: src/ builds against it

# arduino-esp32 is fetched from the ESP Component Registry on first build (minutes), and
# lands in the example's own managed_components/. Keyed on the manifest, which is what
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/esp32-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ jobs:
example: ${{ fromJson(needs.discover.outputs.matrix) }}
steps:
- uses: actions/checkout@v7
with:
submodules: true # include/MMgr: src/ builds against it
- uses: actions/setup-python@v7
with:
python-version: "3.x"
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/pentest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
submodules: true # include/MMgr: src/ builds against it

- name: Set up Python
uses: actions/setup-python@v7
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ jobs:
- name: Checkout Code
uses: actions/checkout@v7
with:
submodules: true # include/MMgr: src/ builds against it
path: "library-source"
# Full history + tags so the release summary can diff against the previous tag.
fetch-depth: 0
Expand Down Expand Up @@ -102,6 +103,8 @@ jobs:
steps:
- name: Checkout Code
uses: actions/checkout@v7
with:
submodules: true # include/MMgr: src/ builds against it

- name: Check for PlatformIO token
id: token
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ jobs:
steps:
- uses: actions/checkout@v7
with:
submodules: true # include/MMgr: src/ builds against it
fetch-depth: 0 # full history: SonarCloud attributes findings to new code by commit date

- uses: actions/setup-python@v7
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/test-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ jobs:
steps:
- uses: actions/checkout@v7
with:
submodules: true # include/MMgr: src/ builds against it
fetch-depth: 0 # full history: the diff base, the report commit, SonarCloud new-code attribution
# Authenticate with the automatic-actions deploy key so the report commit pushes over SSH
# (past the protected-main ruleset), which a GITHUB_TOKEN push cannot.
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,6 @@
path = include/MMgr
url = https://github.com/dstroy0/MMgr.git
branch = main
[submodule "include/embedded_types"]
path = include/embedded_types
url = https://github.com/dstroy0/embedded_types.git
3 changes: 2 additions & 1 deletion cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -1668,6 +1668,7 @@
"**/*.der",
"**/*.gz",
"test/dep_graph.json",
"test/compile_commands.json"
"test/compile_commands.json",
"docs/CHANGELOG.md"
]
}
60 changes: 47 additions & 13 deletions include/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,52 @@ protocore_add_module(include
HEADER_ONLY
)

# MMgr is a separate repository, vendored as a submodule, and brings its own build description. Its
# ROOT is the entry, not its src/: that is where mmgr_add_module() is defined, and every directory
# below it calls that. Entering src/ directly fails on the first module.
# MMgr is a separate repository, vendored as a submodule. Its own build description is not entered:
# it builds MMgr once per width environment for MMgr's suites, and it reaches its include root
# through CMAKE_SOURCE_DIR, which names this tree's top rather than MMgr's once it is a
# subdirectory. ProtoCore builds MMgr's sources as one more target under ProtoCore's own flags, as
# the Arduino, PlatformIO and ESP-IDF builds do.
#
# ITS BINARY DIRECTORY IS ONE CHARACTER, and that is not tidiness. A Windows path is capped at 260
# characters, and MMgr's own deepest suite spends 211 of them before the object file:
# test/unit/confinium_exclusivum_infinitas/test_confinium_exclusivum_infinitas/CMakeFiles/
# test_confinium_exclusivum_infinitas_host.dir - the module name three times over. Two of that
# suite's sources live in test/support/ rather than beside it, so CMake namespaces them under a
# 32-character hash of their directory, and gcc then cannot create the .d file beside the object.
# Five targets failed to compile that way under `<build>/pc_include/mmgr`. Under `<build>/m` they
# fit. Nested one directory deeper and they would not, so this is load bearing.
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/MMgr/CMakeLists.txt")
add_subdirectory(MMgr "${CMAKE_BINARY_DIR}/m")
# The sources are the ones MMgr's src/CMakeLists.txt enters, module for module. A directory it does
# not enter is not part of MMgr's build, and impensa_ancorae_acus compiles one profile of five, the
# one MMGR_ANCORAE_FORMA names and generic when nothing does, since each defines the same table.
#
# The include roots are the three MMgr's mmgr_add_module() gives a module: include/ for mmgr.h,
# src/ so a module header is reached as <module>/<module>.h, and embedded_types, which mmgr.h
# includes. The capability switches are MMgr's defaults, stated so every translation unit that reads
# them sees the same value.
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/MMgr/src")
if(DEFINED MMGR_ANCORAE_FORMA)
string(TOLOWER "${MMGR_ANCORAE_FORMA}" _pc_mmgr_forma)
else()
set(_pc_mmgr_forma generic)
endif()
set(_pc_mmgr_src "${CMAKE_CURRENT_SOURCE_DIR}/MMgr/src")
add_library(pc_mmgr OBJECT
"${_pc_mmgr_src}/clz/clz.c"
"${_pc_mmgr_src}/impensa_ancorae_acus/impensa_ancorae_acus_${_pc_mmgr_forma}.c"
"${_pc_mmgr_src}/ascii_persona_bitorum/ascii_persona_bitorum.c"
"${_pc_mmgr_src}/bitorum_introitus_exitus/bitorum_introitus_exitus.c"
"${_pc_mmgr_src}/endian/endian.c"
"${_pc_mmgr_src}/proximus_operor/proximus_operor.c"
"${_pc_mmgr_src}/verbum_scrutor/verbum_scrutor.c"
"${_pc_mmgr_src}/memoria_operor/memoria_operor.c"
"${_pc_mmgr_src}/cellularum_laboro/cellularum_laboro.c"
"${_pc_mmgr_src}/spatium/spatium.c"
"${_pc_mmgr_src}/octetus_introitus_exitus/octetus_introitus_exitus.c"
"${_pc_mmgr_src}/locus_carcerum/locus_carcerum.c"
"${_pc_mmgr_src}/memoria_anularis/memoria_anularis.c"
"${_pc_mmgr_src}/memoria_externa/memoria_externa.c"
"${_pc_mmgr_src}/transformo/transformo.c"
"${_pc_mmgr_src}/memoriam_praetereo/memoriam_praetereo.c"
"${_pc_mmgr_src}/memoriam_praetereo/praet_ordo.c"
"${_pc_mmgr_src}/memoriam_praetereo/praet_descriptor.c"
"${_pc_mmgr_src}/fractio/fractio.c"
"${_pc_mmgr_src}/verba_scribo/verba_scribo.c"
"${_pc_mmgr_src}/numeros_scribo/numeros_scribo.c")
target_include_directories(pc_mmgr PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/MMgr/include"
"${CMAKE_CURRENT_SOURCE_DIR}/MMgr/src"
"${CMAKE_CURRENT_SOURCE_DIR}/embedded_types/include")
target_compile_definitions(pc_mmgr PUBLIC MMGR_ENABLE_DMA=0 MMGR_ENABLE_EXTRAM=0)
endif()
1 change: 1 addition & 0 deletions include/embedded_types
Submodule embedded_types added at b0aacd
7 changes: 1 addition & 6 deletions include/protocore.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,12 +127,7 @@ typedef struct WebServerConfig
// protocore.h is the one header an application includes, so every service the library offers is
// reachable from it. A feature the build did not enable costs nothing: each service header carries
// its own PROTOCORE_ENABLE_ guard, so a disabled one contributes no declarations and no code.
#include "mmgr/arena/arena.h"
#include "mmgr/dma/dma.h"
#include "mmgr/plaintext/plaintext.h"
#include "mmgr/psram_pool/psram_pool.h"
#include "mmgr/secure/secure.h"
#include "mmgr/span/span.h"
#include "locus_carcerum/locus_carcerum.h"
#include "network_drivers/application/file_serving/file_serving.h"
#include "network_drivers/application/http_range/http_range.h"
#include "network_drivers/application/mdns_adaptive/mdns_adaptive.h"
Expand Down
Loading
Loading