build: the submodule is how libavr arrives; the era already carries it
The pin the whole history now encodes becomes the primary route: the submodule default replaces FetchContent and the unpinned forge fallback, LIBAVR_ROOT stays as the tandem-development override, the presets already take the toolchain file from the submodule, and the Studio projects anchor their include path there — correct by construction. The version tags and the one-command historical build are documented beside the version map. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,14 +40,13 @@ flash, so the optimisation level stays where correctness needs it.
|
||||
|
||||
## What Studio needs from the machine
|
||||
|
||||
libavr checked out **beside this repo**, found at
|
||||
`$(MSBuildProjectDirectory)\..\..\..\libavr\include` — anchored to the project,
|
||||
because a plain relative path resolves against the generated makefile's
|
||||
directory (the configuration's output directory), not the project's. There is no
|
||||
`LIBAVR_ROOT` escape hatch: a variable exported in a shell is invisible to Studio
|
||||
launched from the Start menu, and the failure reads as a missing
|
||||
`libavr/libavr.hpp`. Pinning libavr as a submodule is the better answer and is on
|
||||
libavr's task list.
|
||||
libavr from the **submodule**, found at
|
||||
`$(MSBuildProjectDirectory)\..\..\libavr\include` — correct by construction, and
|
||||
anchored to the project because a plain relative path resolves against the
|
||||
generated makefile's directory (the configuration's output directory), not the
|
||||
project's. There is no `LIBAVR_ROOT` escape hatch: a variable exported in a
|
||||
shell is invisible to Studio launched from the Start menu, and the failure reads
|
||||
as a missing `libavr/libavr.hpp` — which is what the submodule answers.
|
||||
|
||||
A GCC 16.1 toolchain registered as flavour `avr-g++-16.1.0`, nothing older
|
||||
reaching `-std=c++26`.
|
||||
@@ -60,9 +59,9 @@ per project checks the flags have not drifted (both from libavr's
|
||||
|
||||
```sh
|
||||
for name in pureboot tsb_asm; do
|
||||
python ../libavr/tools/atmelstudio/componentinfo.py \
|
||||
python libavr/tools/atmelstudio/componentinfo.py \
|
||||
"ide/$name/$name.componentinfo.xml" --device ATmega328P
|
||||
python ../libavr/tools/atmelstudio/check-flags.py \
|
||||
python libavr/tools/atmelstudio/check-flags.py \
|
||||
--solution ide/bootloader.atsln --project "$name" --target "$name" \
|
||||
--compile-commands build/atmega328p-generated/compile_commands.json \
|
||||
--log "build/as-$name.log"
|
||||
|
||||
Reference in New Issue
Block a user