Files
bacnet_stack/ports/esp32/extra_script.py
T

121 lines
3.1 KiB
Python

# @file
# @brief Build-time BACnet source wiring for PlatformIO environments
# @author Kato Gangstad
Import("env")
from pathlib import Path
PIOENV = env.get("PIOENV", "")
if PIOENV not in (
"m5stamplc-mstp",
"m5stamplc-bip",
"esp32-poe-wifi-bip",
"esp32-poe-eth-bip",
"xiao-esp32c3-wifi-bip",
"m5stamplc-gateway-bip-mstp",
):
Return()
project_dir = Path(env.subst("$PROJECT_DIR")).resolve()
bacnet_src_root = (project_dir / ".." / ".." / "src").resolve()
bacnet_common_sources = [
"bacnet/basic/binding/address.c",
"bacnet/basic/server/bacnet_device.c",
"bacnet/basic/object/ai.c",
"bacnet/basic/object/bi.c",
"bacnet/basic/object/bo.c",
"bacnet/basic/npdu/h_npdu.c",
"bacnet/basic/service/h_apdu.c",
"bacnet/basic/service/h_dcc.c",
"bacnet/basic/service/h_noserv.c",
"bacnet/basic/service/h_rd.c",
"bacnet/basic/service/h_rp.c",
"bacnet/basic/service/h_rpm.c",
"bacnet/basic/service/h_whohas.c",
"bacnet/basic/service/h_whois.c",
"bacnet/basic/service/h_wp.c",
"bacnet/basic/service/s_iam.c",
"bacnet/basic/service/s_ihave.c",
"bacnet/basic/sys/datetime_mstimer.c",
"bacnet/basic/sys/days.c",
"bacnet/basic/sys/dst.c",
"bacnet/basic/sys/debug.c",
"bacnet/basic/sys/ringbuf.c",
"bacnet/basic/sys/fifo.c",
"bacnet/basic/sys/mstimer.c",
"bacnet/basic/tsm/tsm.c",
"bacnet/abort.c",
"bacnet/bacaction.c",
"bacnet/bacaddr.c",
"bacnet/bacapp.c",
"bacnet/bacdcode.c",
"bacnet/bacdest.c",
"bacnet/bacdevobjpropref.c",
"bacnet/bacerror.c",
"bacnet/bacint.c",
"bacnet/bacreal.c",
"bacnet/bacstr.c",
"bacnet/datetime.c",
"bacnet/dcc.c",
"bacnet/hostnport.c",
"bacnet/iam.c",
"bacnet/ihave.c",
"bacnet/indtext.c",
"bacnet/memcopy.c",
"bacnet/npdu.c",
"bacnet/proplist.c",
"bacnet/rd.c",
"bacnet/reject.c",
"bacnet/rp.c",
"bacnet/rpm.c",
"bacnet/timestamp.c",
"bacnet/whohas.c",
"bacnet/whois.c",
"bacnet/wp.c",
"bacnet/cov.c",
"bacnet/basic/sys/keylist.c",
]
bacnet_transport_sources = {
"m5stamplc-mstp": [
"bacnet/datalink/cobs.c",
"bacnet/datalink/crc.c",
"bacnet/datalink/dlmstp.c",
"bacnet/datalink/mstp.c",
"bacnet/datalink/mstptext.c",
],
"m5stamplc-bip": [
"bacnet/datalink/bvlc.c",
],
"esp32-poe-wifi-bip": [
"bacnet/datalink/bvlc.c",
],
"esp32-poe-eth-bip": [
"bacnet/datalink/bvlc.c",
],
"xiao-esp32c3-wifi-bip": [
"bacnet/datalink/bvlc.c",
],
"m5stamplc-gateway-bip-mstp": [
"bacnet/datalink/bvlc.c",
"bacnet/datalink/cobs.c",
"bacnet/datalink/crc.c",
"bacnet/datalink/dlmstp.c",
"bacnet/datalink/mstp.c",
"bacnet/datalink/mstptext.c",
],
}
bacnet_sources = bacnet_common_sources + bacnet_transport_sources.get(PIOENV, [])
env.Append(CPPPATH=[str(project_dir / "src"), str(bacnet_src_root)])
for rel in bacnet_sources:
env.BuildSources(
str(Path("$BUILD_DIR") / "bacnet"),
str(bacnet_src_root),
src_filter=f"+<{rel}>",
)