Browse Source

Fix nRF52 builds: guard SerialEthernetInterface with ETHERNET_ENABLED

SerialEthernetInterface.cpp is compiled for every nRF52 target because
PlatformIO builds all .cpp files under src/. It includes
SerialEthernetInterface.h, which unconditionally pulls in
<RAK13800_W5100S.h> -- a library only present in the RAK4631 Ethernet
env's lib_deps. As a result any other nRF52 board (e.g. Heltec T114)
fails to build with 'RAK13800_W5100S.h: No such file or directory'.

Wrap the contents of both files in '#ifdef ETHERNET_ENABLED' so they
compile to empty translation units on non-Ethernet builds. RAK4631
Ethernet envs define ETHERNET_ENABLED and are unaffected.

Fixes #2985
pull/2989/head
Ryan Gregg 7 days ago
parent
commit
cc221330ba
Failed to extract signature
  1. 4
      src/helpers/nrf52/SerialEthernetInterface.cpp
  2. 4
      src/helpers/nrf52/SerialEthernetInterface.h

4
src/helpers/nrf52/SerialEthernetInterface.cpp

@ -1,3 +1,5 @@
#ifdef ETHERNET_ENABLED
#include "SerialEthernetInterface.h"
#include "EthernetMac.h"
#include <SPI.h>
@ -262,3 +264,5 @@ bool SerialEthernetInterface::isConnected() const {
void SerialEthernetInterface::loop() {
Ethernet.maintain();
}
#endif // ETHERNET_ENABLED

4
src/helpers/nrf52/SerialEthernetInterface.h

@ -1,5 +1,7 @@
#pragma once
#ifdef ETHERNET_ENABLED
#include "helpers/BaseSerialInterface.h"
#include <SPI.h>
#include <RAK13800_W5100S.h>
@ -76,3 +78,5 @@ class SerialEthernetInterface : public BaseSerialInterface {
#define ETHERNET_DEBUG_PRINTLN(...) {}
#define ETHERNET_DEBUG_PRINT_IP(...) {}
#endif
#endif // ETHERNET_ENABLED

Loading…
Cancel
Save