1# SPDX-License-Identifier: Apache-2.0
2
3zephyr_library()
4
5zephyr_library_compile_definitions(_POSIX_C_SOURCE=200809L)
6
7zephyr_include_directories(.)
8
9zephyr_library_sources(
10    lwm2m_engine.c
11    lwm2m_registry.c
12    lwm2m_observation.c
13    lwm2m_message_handling.c
14    lwm2m_obj_security.c
15    lwm2m_obj_server.c
16    lwm2m_obj_device.c
17    lwm2m_rw_link_format.c
18    lwm2m_rw_plain_text.c
19    lwm2m_rw_opaque.c
20    lwm2m_util.c
21    lwm2m_rd_client.c
22    )
23
24# LWM2M Object Support
25zephyr_library_sources_ifdef(CONFIG_LWM2M_CONN_MON_OBJ_SUPPORT
26    lwm2m_obj_connmon.c
27    )
28zephyr_library_sources_ifdef(CONFIG_LWM2M_FIRMWARE_UPDATE_OBJ_SUPPORT
29    lwm2m_obj_firmware.c
30    )
31zephyr_library_sources_ifdef(CONFIG_LWM2M_SWMGMT_OBJ_SUPPORT
32    lwm2m_obj_swmgmt.c
33    )
34zephyr_library_sources_ifdef(CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT
35    lwm2m_obj_firmware_pull.c
36    lwm2m_pull_context.c
37    )
38zephyr_library_sources_ifdef(CONFIG_LWM2M_LOCATION_OBJ_SUPPORT
39    lwm2m_obj_location.c
40    )
41zephyr_library_sources_ifdef(CONFIG_LWM2M_GATEWAY_OBJ_SUPPORT
42    lwm2m_obj_gateway.c
43    )
44zephyr_library_sources_ifdef(CONFIG_LWM2M_PORTFOLIO_OBJ_SUPPORT
45    lwm2m_obj_portfolio.c
46    )
47zephyr_library_sources_ifdef(CONFIG_LWM2M_EVENT_LOG_OBJ_SUPPORT
48    lwm2m_obj_event_log.c
49    )
50zephyr_library_sources_ifdef(CONFIG_LWM2M_BINARYAPPDATA_OBJ_SUPPORT
51    lwm2m_obj_binaryappdata.c
52    )
53zephyr_library_sources_ifdef(CONFIG_LWM2M_ACCESS_CONTROL_ENABLE
54    lwm2m_obj_access_control.c
55    )
56zephyr_library_sources_ifdef(CONFIG_LWM2M_UCIFI_LPWAN
57    ucifi_lpwan.c
58    )
59
60# TLV Support
61zephyr_library_sources_ifdef(CONFIG_LWM2M_RW_OMA_TLV_SUPPORT
62    lwm2m_rw_oma_tlv.c
63    )
64# JSON Support
65zephyr_library_sources_ifdef(CONFIG_LWM2M_RW_JSON_SUPPORT
66    lwm2m_rw_json.c
67    )
68# SENML JSON support
69zephyr_library_sources_ifdef(CONFIG_LWM2M_RW_SENML_JSON_SUPPORT
70    lwm2m_rw_senml_json.c
71    )
72# CBOR support
73zephyr_library_sources_ifdef(CONFIG_LWM2M_RW_CBOR_SUPPORT
74    lwm2m_rw_cbor.c
75    )
76# SENML CBOR support
77zephyr_library_sources_ifdef(CONFIG_LWM2M_RW_SENML_CBOR_SUPPORT
78    lwm2m_rw_senml_cbor.c
79    lwm2m_senml_cbor_decode.c
80    lwm2m_senml_cbor_encode.c
81    )
82
83# IPSO Objects
84zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_TEMP_SENSOR
85    ipso_temp_sensor.c
86    )
87zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_GENERIC_SENSOR
88    ipso_generic_sensor.c
89    )
90zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_HUMIDITY_SENSOR
91    ipso_humidity_sensor.c
92    )
93zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_PRESSURE_SENSOR
94    ipso_pressure_sensor.c
95    )
96zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_LIGHT_CONTROL
97    ipso_light_control.c
98    )
99zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_ACCELEROMETER
100    ipso_accelerometer.c
101    )
102zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_BUZZER
103    ipso_buzzer.c
104    )
105zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_TIMER
106    ipso_timer.c
107    )
108zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_ONOFF_SWITCH
109    ipso_onoff_switch.c
110    )
111zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_PUSH_BUTTON
112    ipso_push_button.c
113    )
114zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_CURRENT_SENSOR
115    ipso_current_sensor.c
116    )
117zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_VOLTAGE_SENSOR
118    ipso_voltage_sensor.c
119    )
120zephyr_library_sources_ifdef(CONFIG_LWM2M_IPSO_FILLING_SENSOR
121    ipso_filling_sensor.c
122    )
123zephyr_library_sources_ifdef(CONFIG_LWM2M_UCIFI_BATTERY
124    ucifi_battery.c
125    )
126
127# Shell commands
128zephyr_library_sources_ifdef(CONFIG_LWM2M_SHELL
129    lwm2m_shell.c
130)
131
132zephyr_linker_sources(SECTIONS iterables.ld)
133
134zephyr_library_link_libraries_ifdef(CONFIG_MBEDTLS mbedTLS)
135