Skip to content

Fix MeshTracker X1 kiss_modem build: inherit MicroNMEA in every environment - #3637

Open
marcelverdult wants to merge 1 commit into
meshcore-dev:devfrom
marcelverdult:upstream-candidate/meshtracker-x1-micronmea-dep
Open

marcelverdult wants to merge 1 commit into
meshcore-dev:devfrom
marcelverdult:upstream-candidate/meshtracker-x1-micronmea-dep

Conversation

@marcelverdult

Copy link
Copy Markdown
Contributor

MeshTracker_X1_kiss_modem does not build:

src/helpers/sensors/MicroNMEALocationProvider.h:4:10: fatal error: MicroNMEA.h: No such file or directory
*** [.pio/build/MeshTracker_X1_kiss_modem/variants/meshtracker_x1/target.cpp.o] Error 1

It is the one environment of this variant that does not list stevemarple/MicroNMEA;
the other four do. variants/meshtracker_x1/target.cpp includes the location provider
unconditionally and every environment of the variant compiles target.cpp, so all five
need the library.

This moves the dependency into the [MeshTracker_X1] base section, which is how
variants/nano_g2_ultra already keeps it, and removes the four per-environment copies.

Verification, built locally with PlatformIO 6.2.0 (the pull request build check installs
the latest PlatformIO, so the versions are not identical):

  • All five environments of the variant build. MeshTracker_X1_kiss_modem previously did
    not build at all.
  • For the four that already built, .text and .bss are byte for byte identical to a
    build from the same commit without this change: MeshTracker_X1_repeater 299524 /
    32024, _room_server 292020 / 35740, _companion_radio_usb 316356 / 141000,
    _companion_radio_ble 322036 / 145432.

Worth noting for the matrix: .github/workflows/pr-build-check.yml does not build any
environment of this variant, so a green check on a pull request does not cover this
environment. That is presumably why it could regress unnoticed.

…riant

What changes
- variants/meshtracker_x1/platformio.ini moves stevemarple/MicroNMEA from the
  four environments that listed it into the [MeshTracker_X1] base section, the
  way nano_g2_ultra already keeps it, and drops the four copies.

Why
- MeshTracker_X1_kiss_modem was the one environment of this variant that did not
  list the library, so it did not build:
    src/helpers/sensors/MicroNMEALocationProvider.h:4: fatal error: MicroNMEA.h: No such file or directory
  variants/meshtracker_x1/target.cpp includes the location provider
  unconditionally and every environment of this variant compiles target.cpp, so
  every one of them needs the library. Putting it in the base section makes that
  true by construction rather than by repeating the line and hoping none is
  forgotten, which is exactly what happened here.

Compatibility
- All five environments of the variant were built, which is the whole reach of this
  change. MeshTracker_X1_kiss_modem now builds (text 240180, bss 18236; on unchanged
  dev it does not build at all). For the four that already built, text and bss are
  byte for byte identical to a build from unchanged dev 428a95c with the same
  toolchain, so inheriting the library instead of listing it changes nothing for
  them: MeshTracker_X1_repeater text 299524 bss 32024, _room_server 292020 / 35740,
  _companion_radio_usb 316356 / 141000, _companion_radio_ble 322036 / 145432, each
  text +0 and bss +0 against dev.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant