esp32: replace port with PlatformIO implementation and add CI build (#1292)
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
# @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}>",
|
||||
)
|
||||
Reference in New Issue
Block a user