Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions build_as_lib.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
from os.path import realpath

Import("env") # type: ignore
menv=env # type: ignore

src_filter = [
'+<*.cpp>',
'+<helpers/*.cpp>',
'+<helpers/sensors>'
'+<helpers/radiolib/*.cpp>',
'+<helpers/ui/MomentaryButton.cpp>',
]

# add build and include dirs according to CPPDEFINES
for item in menv.get("CPPDEFINES", []):

# STM32
if isinstance(item, str) and item == "STM32_PLATFORM":
menv.Append(CPPPATH=[realpath("src/helpers/stm32")])
menv.Append(BUILD_FLAGS=["-I src/helpers/stm32"])
src_filter.append("+<helpers/stm32/*>")

# ESP32
elif isinstance(item, str) and item == "ESP32":
menv.Append(CPPPATH=[realpath("src/helpers/esp32")])
menv.Append(BUILD_FLAGS=["-I src/helpers/esp32"])
src_filter.append("+<helpers/esp32/*>")

# NRF52
elif isinstance(item, str) and item == "NRF52_PLATFORM":
menv.Append(CPPPATH=[realpath("src/helpers/nrf52")])
menv.Append(BUILD_FLAGS=["-I src/helpers/nrf52"])
src_filter.append("+<helpers/nrf52/*>")

# RP2040
elif isinstance(item, str) and item == "RP2040_PLATFORM":
menv.Append(CPPPATH=[realpath("src/helpers/rp2040")])
menv.Append(BUILD_FLAGS=["-I src/helpers/rp2040"])
src_filter.append("+<helpers/rp2040/*>")

# VARIANTS HANDLING
elif isinstance(item, tuple) and item[0] == "MC_VARIANT":
variant_name = item[1]
menv.Append(BUILD_FLAGS=[f"-I variants/{variant_name}"])
src_filter.append(f"+<../variants/{variant_name}>")

menv.Replace(SRC_FILTER=src_filter)

#print (menv.Dump())
16 changes: 16 additions & 0 deletions library.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "MeshCore",
"version" : "1.7.4",
"dependencies": {
"SPI": "*",
"Wire": "*",
"jgromes/RadioLib": "^7.1.2",
"rweather/Crypto": "^0.4.0",
"adafruit/RTClib": "^2.1.3",
"melopero/Melopero RV3028": "^1.1.0",
"electroniccats/CayenneLPP": "1.4.0"
},
"build": {
"extraScript": "build_as_lib.py"
}
}