Skip to content

Commit 3c71b3a

Browse files
teburdEmil-Juhl
authored andcommitted
zenoh-pico: Build with zephyr using the base cmake
Configuration can still be done through Kconfig and the Kconfig options get mapped to CMake options. Various headers are generated by CMake in the base CMakeLists that were not being done in the Zephyr build. Add those missing options/settings and generate similar header files. Signed-off-by: Tom Burdick <[email protected]> Signed-off-by: Emil Dahl Juhl <[email protected]>
1 parent 43bbb45 commit 3c71b3a

File tree

2 files changed

+96
-26
lines changed

2 files changed

+96
-26
lines changed

zephyr/CMakeLists.txt

Lines changed: 76 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,83 @@
1-
if(CONFIG_ZENOH_PICO)
1+
if(NOT CONFIG_ZENOH_PICO)
2+
return()
3+
endif()
24

3-
zephyr_compile_definitions(ZENOH_ZEPHYR)
45
zephyr_include_directories(../include)
56
zephyr_library()
67

7-
function(configure_zenoh_feature config)
8-
string(REPLACE CONFIG_ZENOH_PICO Z_FEATURE feature ${config})
9-
if(${config})
10-
zephyr_compile_definitions(${feature}=1)
11-
else()
12-
zephyr_compile_definitions(${feature}=0)
13-
endif()
14-
endfunction()
15-
16-
17-
configure_zenoh_feature(CONFIG_ZENOH_PICO_LINK_SERIAL)
18-
configure_zenoh_feature(CONFIG_ZENOH_PICO_MULTI_THREAD)
19-
configure_zenoh_feature(CONFIG_ZENOH_PICO_PUBLICATION)
20-
configure_zenoh_feature(CONFIG_ZENOH_PICO_SUBSCRIPTION)
21-
configure_zenoh_feature(CONFIG_ZENOH_PICO_QUERY)
22-
configure_zenoh_feature(CONFIG_ZENOH_PICO_QUERYABLE)
23-
configure_zenoh_feature(CONFIG_ZENOH_PICO_RAWETH_TRANSPORT)
24-
configure_zenoh_feature(CONFIG_ZENOH_PICO_LINK_TCP)
25-
configure_zenoh_feature(CONFIG_ZENOH_PICO_LINK_UDP_UNICAST)
26-
configure_zenoh_feature(CONFIG_ZENOH_PICO_LINK_UDP_MULTICAST)
27-
configure_zenoh_feature(CONFIG_ZENOH_PICO_SCOUTING)
28-
configure_zenoh_feature(CONFIG_ZENOH_PICO_LINK_WS)
8+
zephyr_compile_definitions(ZENOH_ZEPHYR)
9+
zephyr_compile_definitions(ZENOH_DEBUG=0)
10+
11+
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../version.txt version)
12+
set(ZENOH_PICO ${PROJECT_VERSION})
13+
set(ZENOH_PICO_MAJOR ${PROJECT_VERSION_MAJOR})
14+
set(ZENOH_PICO_MINOR ${PROJECT_VERSION_MINOR})
15+
set(ZENOH_PICO_PATCH ${PROJECT_VERSION_PATCH})
16+
set(ZENOH_PICO_TWEAK ${PROJECT_VERSION_TWEAK})
17+
18+
configure_file(
19+
${CMAKE_CURRENT_SOURCE_DIR}/../include/zenoh-pico.h.in
20+
${CMAKE_CURRENT_SOURCE_DIR}/../include/zenoh-pico.h
21+
@ONLY
22+
)
23+
24+
configure_file(
25+
${CMAKE_CURRENT_SOURCE_DIR}/../library.json.in
26+
${CMAKE_CURRENT_SOURCE_DIR}/../library.json
27+
@ONLY
28+
)
29+
30+
# Zenoh pico feature configuration options
31+
set(FRAG_MAX_SIZE 4096 CACHE STRING "Use this to override the maximum size for fragmented messages")
32+
set(BATCH_UNICAST_SIZE 2048 CACHE STRING "Use this to override the maximum unicast batch size")
33+
set(BATCH_MULTICAST_SIZE 2048 CACHE STRING "Use this to override the maximum multicast batch size")
34+
set(Z_CONFIG_SOCKET_TIMEOUT 100 CACHE STRING "Default socket timeout in milliseconds")
35+
set(Z_TRANSPORT_LEASE 10000 CACHE STRING "Use this to override transport lease time")
36+
set(ZP_PERIODIC_SCHEDULER_MAX_TASKS 64 CACHE STRING "Use this to override maximum number of periodic tasks")
2937

38+
set(Z_FEATURE_UNSTABLE_API 0 CACHE STRING "Toggle unstable Zenoh-C API")
39+
set(Z_FEATURE_PUBLICATION CONFIG_ZENOH_PICO_PUBLICATION CACHE STRING "Toggle publication feature")
40+
set(Z_FEATURE_SUBSCRIPTION CONFIG_ZENOH_PICO_SUBSCRIPTION CACHE STRING "Toggle subscription feature")
41+
set(Z_FEATURE_QUERY CONFIG_ZENOH_PICO_QUERY CACHE STRING "Toggle query feature")
42+
set(Z_FEATURE_QUERYABLE CONFIG_ZENOH_PICO_QUERYABLE CACHE STRING "Toggle queryable feature")
43+
set(Z_FEATURE_LIVELINESS CONFIG_ZENOH_PICO_LIVELINESS CACHE STRING "Toggle liveliness feature")
44+
set(Z_FEATURE_INTEREST CONFIG_ZENOH_PICO_INTEREST CACHE STRING "Toggle interests")
45+
set(Z_FEATURE_FRAGMENTATION CONFIG_ZENOH_PICO_FRAGMENTATION CACHE STRING "Toggle fragmentation")
46+
set(Z_FEATURE_ENCODING_VALUES CONFIG_ZENOH_PICO_ENCODING_VALUES CACHE STRING "Toggle encoding values")
47+
set(Z_FEATURE_MULTI_THREAD 1 CACHE STRING "Toggle multithread")
48+
49+
set(Z_FEATURE_LINK_TCP CONFIG_ZENOH_PICO_LINK_TCP CACHE STRING "Toggle TCP links")
50+
set(Z_FEATURE_LINK_BLUETOOTH 0 CACHE STRING "Toggle Bluetooth links")
51+
set(Z_FEATURE_LINK_WS 0 CACHE STRING "Toggle WebSocket links")
52+
set(Z_FEATURE_LINK_SERIAL CONFIG_ZENOH_PICO_LINK_SERIAL CACHE STRING "Toggle Serial links")
53+
set(Z_FEATURE_LINK_SERIAL_USB 0 CACHE STRING "Toggle Serial USB links")
54+
set(Z_FEATURE_SCOUTING CONFIG_ZENOH_PICO_SCOUTING CACHE STRING "Toggle UDP scouting")
55+
set(Z_FEATURE_LINK_UDP_MULTICAST CONFIG_ZENOH_PICO_LINK_UDP_MULTICAST CACHE STRING "Toggle UDP multicast links")
56+
set(Z_FEATURE_LINK_UDP_UNICAST CONFIG_ZENOH_PICO_LINK_UDP_UNICAST CACHE STRING "Toggle UDP unicast links")
57+
set(Z_FEATURE_MULTICAST_TRANSPORT CONFIG_ZENOH_PICO_MULTICAST_TRANSPORT CACHE STRING "Toggle multicast transport")
58+
set(Z_FEATURE_UNICAST_TRANSPORT CONFIG_ZENOH_PICO_UNICAST_TRANSPORT CACHE STRING "Toggle unicast transport")
59+
set(Z_FEATURE_RAWETH_TRANSPORT 0 CACHE STRING "Toggle raw ethernet transport")
60+
set(Z_FEATURE_TCP_NODELAY 1 CACHE STRING "Toggle TCP_NODELAY")
61+
set(Z_FEATURE_LOCAL_SUBSCRIBER 0 CACHE STRING "Toggle local subscriptions")
62+
set(Z_FEATURE_SESSION_CHECK 1 CACHE STRING "Toggle publisher/querier session check")
63+
set(Z_FEATURE_BATCHING 1 CACHE STRING "Toggle batching")
64+
set(Z_FEATURE_MATCHING 1 CACHE STRING "Toggle matching feature")
65+
set(Z_FEATURE_RX_CACHE 0 CACHE STRING "Toggle RX_CACHE")
66+
set(Z_FEATURE_UNICAST_PEER CONFIG_ZENOH_PICO_UNICAST_PEER_MODE CACHE STRING "Toggle Unicast peer mode")
67+
set(Z_FEATURE_AUTO_RECONNECT CONFIG_ZENOH_PICO_AUTO_RECONNECT CACHE STRING "Toggle automatic reconnection")
68+
set(Z_FEATURE_LINK_TLS 0 CACHE STRING "Toggle TLS link")
69+
set(Z_FEATURE_BATCH_TX_MUTEX 0 CACHE STRING "Toggle batch tx mutex")
70+
set(Z_FEATURE_BATCH_PEER_MUTEX 0 CACHE STRING "Toggle batch peer mutex")
71+
set(Z_FEATURE_PERIODIC_TASKS 0 CACHE STRING "Toggle periodic task support")
72+
set(Z_FEATURE_ADVANCED_PUBLICATION 0 CACHE STRING "Toggle advanced publication")
73+
set(Z_FEATURE_ADVANCED_SUBSCRIPTION 0 CACHE STRING "Toggle advanced subscription")
74+
set(Z_FEATURE_MULTICAST_DECLARATIONS 0 CACHE STRING "Toggle multicast declarations")
75+
76+
configure_file(
77+
${CMAKE_CURRENT_SOURCE_DIR}/../include/zenoh-pico/config.h.in
78+
${CMAKE_CURRENT_SOURCE_DIR}/../include/zenoh-pico/config.h
79+
@ONLY
80+
)
3081

3182
file(GLOB_RECURSE Sources
3283
"../src/api/*.c"
@@ -42,5 +93,5 @@ file(GLOB_RECURSE Sources
4293

4394
file (GLOB Sources_Zephyr "../src/system/zephyr/*.c")
4495
list(APPEND Sources ${Sources_Zephyr})
96+
4597
zephyr_library_sources(${Sources})
46-
endif()

zephyr/Kconfig.zenoh

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,16 @@ config ZENOH_PICO_RAWETH_TRANSPORT
4040
help
4141
Raw Ethernet Support
4242

43+
config ZENOH_PICO_MULTICAST_TRANSPORT
44+
bool "Multicast Transort Support"
45+
help
46+
Multicast Transport Support
47+
48+
config ZENOH_PICO_UNICAST_TRANSPORT
49+
bool "Unicast Transport Support"
50+
help
51+
Unicast Transport Support
52+
4353
config ZENOH_PICO_LINK_TCP
4454
bool "TCP Link"
4555
help
@@ -65,5 +75,14 @@ config ZENOH_PICO_LINK_WS
6575
help
6676
WS Link
6777

68-
endif
78+
config ZENOH_PICO_UNICAST_PEER_MODE
79+
bool "Unicat Peer Mode"
80+
help
81+
Unicast Peer Mode
82+
83+
config ZENOH_PICO_AUTO_RECONNECT
84+
bool "Autoreconnect"
85+
help
86+
Autoreconnect
6987

88+
endif

0 commit comments

Comments
 (0)