Files
bacnet_stack/ports/pico/CMakeLists.txt
T

132 lines
3.6 KiB
CMake

cmake_minimum_required(VERSION 3.13)
if (NOT DEFINED PICO_SDK_PATH AND DEFINED ENV{PICO_SDK_PATH})
set(PICO_SDK_PATH "$ENV{PICO_SDK_PATH}")
endif()
if (DEFINED PICO_SDK_PATH)
get_filename_component(
PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH
BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
set(ENV{PICO_SDK_PATH} "${PICO_SDK_PATH}")
endif()
# Default this port to Pico 2.
if (NOT PICO_BOARD)
set(PICO_BOARD pico2 CACHE STRING "Pico SDK board for the BACnet Pico port" FORCE)
endif()
if (NOT DEFINED ENV{PICO_BOARD})
set(ENV{PICO_BOARD} "${PICO_BOARD}")
endif()
include(${PICO_SDK_PATH}/external/pico_sdk_import.cmake)
project(bacnet_pico_port C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
pico_sdk_init()
set(BACNET_ROOT ${CMAKE_CURRENT_LIST_DIR}/../..)
set(BACNET_SRC ${BACNET_ROOT}/src)
set(BACNET_CORE ${BACNET_SRC}/bacnet)
set(BACNET_BASIC ${BACNET_SRC}/bacnet/basic)
set(BACNET_COMMON_SOURCES
${BACNET_BASIC}/binding/address.c
${BACNET_BASIC}/object/client/device-client.c
${BACNET_BASIC}/npdu/h_npdu.c
${BACNET_BASIC}/service/h_apdu.c
${BACNET_BASIC}/service/h_cov.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_CORE}/abort.c
${BACNET_CORE}/bacaction.c
${BACNET_CORE}/bacaddr.c
${BACNET_CORE}/bacapp.c
${BACNET_CORE}/bacdcode.c
${BACNET_CORE}/bacdest.c
${BACNET_CORE}/bacdevobjpropref.c
${BACNET_CORE}/bacerror.c
${BACNET_CORE}/bacint.c
${BACNET_CORE}/bacreal.c
${BACNET_CORE}/bacstr.c
${BACNET_CORE}/datalink/cobs.c
${BACNET_CORE}/datalink/crc.c
${BACNET_CORE}/datalink/dlmstp.c
${BACNET_CORE}/datalink/mstp.c
${BACNET_CORE}/datalink/mstptext.c
${BACNET_CORE}/datetime.c
${BACNET_CORE}/dcc.c
${BACNET_CORE}/hostnport.c
${BACNET_CORE}/iam.c
${BACNET_CORE}/ihave.c
${BACNET_CORE}/indtext.c
${BACNET_CORE}/memcopy.c
${BACNET_CORE}/npdu.c
${BACNET_CORE}/proplist.c
${BACNET_CORE}/rd.c
${BACNET_CORE}/reject.c
${BACNET_CORE}/rp.c
${BACNET_CORE}/rpm.c
${BACNET_CORE}/timestamp.c
${BACNET_CORE}/whohas.c
${BACNET_CORE}/whois.c
${BACNET_CORE}/wp.c
)
set(BACNET_MSTP_SOURCES
${BACNET_COMMON_SOURCES}
${CMAKE_CURRENT_LIST_DIR}/dlenv.c
${CMAKE_CURRENT_LIST_DIR}/rs485.c
${CMAKE_CURRENT_LIST_DIR}/mstimer_init.c
${CMAKE_CURRENT_LIST_DIR}/main.c
)
add_executable(bacnet-pico-mstp ${BACNET_MSTP_SOURCES})
target_include_directories(bacnet-pico-mstp PRIVATE
${CMAKE_CURRENT_LIST_DIR}
${BACNET_SRC}
)
target_compile_definitions(bacnet-pico-mstp PRIVATE
BACDL_MSTP
MAX_APDU=480
BACNET_BIG_ENDIAN=0
PRINT_ENABLED=0
MAX_TSM_TRANSACTIONS=1
CRC_USE_TABLE
BACAPP_MINIMAL
BACAPP_TIMESTAMP
BACNET_STACK_DEPRECATED_DISABLE
BACNET_PROTOCOL_REVISION=16
)
target_link_libraries(bacnet-pico-mstp
pico_stdlib
hardware_uart
hardware_gpio
hardware_timer
)
pico_enable_stdio_usb(bacnet-pico-mstp 1)
pico_enable_stdio_uart(bacnet-pico-mstp 0)
pico_add_extra_outputs(bacnet-pico-mstp)