Dawn Framework 1.0
Universal data acquisition framework for embedded systems
config.cxx
1// dawn/src/porting/nuttx/config.cxx
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5
6#include "dawn/porting/config.hxx"
7
8//***************************************************************************
9// Pre-processor Definitions
10//***************************************************************************
11
12// System checks ************************************************************
13
14#ifndef CONFIG_LIBCXX
15# error CONFIG_LIBCXX must be enabled
16#endif
17
18#ifndef CONFIG_BOARDCTL
19# error CONFIG_BOARDCTL must be enabled
20#endif
21
22#ifndef CONFIG_LIBCXXABI
23# error CONFIG_LIBCXXABI must be enabled
24#endif
25
26#ifdef CONFIG_ENDIAN_BIG
27# error BIG ENDIAN not supported
28#endif
29
30// Tests checks *************************************************************
31
32#ifdef CONFIG_DAWN_TESTS
33# ifndef CONFIG_TESTING_UNITY
34# error CONFIG_TESTING_UNITY is required
35# endif
36#endif
37
38// Net checks ***************************************************************
39
40#if defined(CONFIG_NET) && !defined(CONFIG_NETUTILS_NETINIT)
41# error CONFIG_NETUTILS_NETINIT is required
42#endif
43
44// IO checks ****************************************************************
45
46#ifdef CONFIG_DAWN_IO_ADC
47# ifndef CONFIG_ADC
48# error ADC driver is required
49# endif
50#endif
51
52#if defined(CONFIG_DAWN_IO_GPI) || defined(CONFIG_DAWN_IO_GPO)
53# ifndef CONFIG_DEV_GPIO
54# error GPIO driver is required
55# endif
56#endif
57
58#ifdef CONFIG_DAWN_IO_PWM
59# ifndef CONFIG_PWM
60# error CONFIG_PWM is required
61# endif
62# ifndef CONFIG_PWM_MULTICHAN
63# error CONFIG_PWM_MULTICHAN is required
64# endif
65#endif
66
67#ifdef CONFIG_DAWN_IO_SENSOR
68# ifndef CONFIG_SENSORS
69# error sensor driver is required
70# endif
71#endif
72
73#ifdef CONFIG_DAWN_IO_SENSOR_PRODUCER
74# ifndef CONFIG_USENSOR
75# error usensor driver is required
76# endif
77#endif
78
79#if defined(CONFIG_DAWN_IO_ENCODER) || defined(CONFIG_DAWN_IO_ENCODER_INDEX)
80# ifndef CONFIG_SENSORS_QENCODER
81# error CONFIG_SENSORS_QENCODER is required for encoder io
82# endif
83#endif
84
85#ifdef CONFIG_DAWN_IO_LEDS
86# ifndef CONFIG_USERLED
87# error userled driver is required
88# endif
89#endif
90
91#ifdef CONFIG_DAWN_IO_BUTTONS
92# ifndef CONFIG_INPUT_BUTTONS
93# error buttons driver is required
94# endif
95#endif
96
97#ifdef CONFIG_DAWN_IO_TIMERFD
98# ifdef CONFIG_DAWN_IO_NOTIFY
99# if !defined(CONFIG_TIMER_FD) || !defined(CONFIG_TIMER_FD_POLL)
100# error CONFIG_TIMER_FD is required for timerfd notifications
101# endif
102# endif
103#endif
104
105#ifdef CONFIG_DAWN_IO_RANDIO
106# ifndef CONFIG_DEV_URANDOM
107# error CONFIG_DEV_URANDOM is required for randio
108# endif
109#endif
110
111#ifdef CONFIG_DAWN_IO_UUID
112# ifndef CONFIG_BOARDCTL_UNIQUEID
113# error CONFIG_BOARDCTL_UNIQUEID is required for uuidio
114# endif
115#endif
116
117// Proto checks *************************************************************
118
119#ifdef CONFIG_DAWN_PROTO_SHELL
120# ifndef CONFIG_SYSTEM_READLINE
121# error PROTO_SHELL requires CONFIG_SYSTEM_READLINE
122# endif
123#endif
124
125#ifdef CONFIG_DAWN_PROTO_MODBUS
126# ifndef CONFIG_INDUSTRY_NXMODBUS
127# error PROTO_MODBUS requires CONFIG_INDUSTRY_NXMODBUS
128# endif
129#endif
130
131#ifdef CONFIG_DAWN_PROTO_NIMBLE
132# ifdef CONFIG_WIRELESS_BLUETOOTH_HOST
133# error PROTO_NIMBLE doesnt work with CONFIG_WIRELESS_BLUETOOTH_HOST
134# endif
135# ifndef CONFIG_NIMBLE
136# error PROTO_NIMBLE requires CONFIG_NIMBLE
137# endif
138
139# ifdef CONFIG_DAWN_PROTO_NIMBLE_PERIPHERAL
140# ifndef CONFIG_NIMBLE_ROLE_PERIPHERAL
141# error CONFIG_NIMBLE_ROLE_PERIPHERAL must be selected
142# endif
143# endif
144
145#endif
146
147#ifdef CONFIG_DAWN_PROTO_NXSCOPE
148# ifndef CONFIG_LOGGING_NXSCOPE
149# error PROTO_NXSCOPE requires CONFIG_LOGGING_NXSCOPE
150# endif
151
152# ifdef CONFIG_DAWN_PROTO_NXSCOPE_DUMMY
153# ifndef CONFIG_LOGGING_NXSCOPE_INTF_DUMMY
154# error CONFIG_LOGGING_NXSCOPE_INTF_DUMMY must be set
155# endif
156# ifndef CONFIG_LOGGING_NXSCOPE_PROTO_SER
157# error CONFIG_LOGGING_NXSCOPE_PROTO_SER must be set
158# endif
159# endif
160
161# ifdef CONFIG_DAWN_PROTO_NXSCOPE_SERIAL
162# ifndef CONFIG_LOGGING_NXSCOPE_INTF_SERIAL
163# error CONFIG_LOGGING_NXSCOPE_INTF_SERIAL must be selected
164# endif
165# ifndef CONFIG_LOGGING_NXSCOPE_PROTO_SER
166# error CONFIG_LOGGING_NXSCOPE_PROTO_SER must be selected
167# endif
168# endif
169
170# ifdef CONFIG_DAWN_PROTO_CAN
171# ifndef CONFIG_CAN
172# error CONFIG_CAN must be selected
173# endif
174# ifdef CONFIG_DAWN_PROTO_CAN_EXTID
175# ifndef CONFIG_CAN_EXTID
176# error CONFIG_CAN_EXTID must be selected
177# endif
178# endif
179# ifdef CONFIG_DAWN_PROTO_CAN_CANFD
180# ifndef CONFIG_CAN_CANFD
181# error CONFIG_CAN_CANFD must be selected
182# endif
183# endif
184# endif
185
186#endif
187
188// Progs checks *************************************************************