Skip to content

Commit 5c3d4ec

Browse files
author
Witold Gębarowski
committed
Anjay Lite 2.0.0
BREAKING CHANGES - Removed support for TCP and TLS bindings in NET layer - `ANJ_NET_WITH_TCP`, `ANJ_COAP_WITH_UDP`, `ANJ_COAP_WITH_TCP` options were removed. - Removed `anj_net_shutdown` from NET layer. - Monotonic time is now the primary clock used for scheduling operations, replacing real-time clock usage across the codebase. Features - NTP module for time synchronization. - (commercial version only) Added default OSCORE Object implementation. - Added support for canceling observations with CoAP RST message. - Re-introduced `anj_core_ongoing_operation` API. - Added `ANJ_OBSERVE_OBSERVATION_CANCEL_ON_TIMEOUT` option to control behavior in case of notification timeouts. - Introduced `ANJ_LOG_MICRO` option for optimizing footprint of logging with `tools/micro_logs_decode.py` tool to decode log messages. Improvements - Switch RNG implementation from getrandom() to getentropy() for improved portability. - Tests structure refactored in order to increase coverage. - Shorter Send operation payloads due to the use of a common path when encoding messages. - MbedTLS integration layer sets the correct MTU value. - MbedTLS is now fetched and compiled only once when calling `make all` via root `CMakeLists.txt`. Bugfixes - Fixed a bug in TLV decoder that incorrectly rejected request with a resource instance specified in the uri-path. - Fixed handling of Discover requests targeting the root path. - Fixed incorrect descriptions of return values in callbacks from FOTA. - Writes to Object Instances now ignore unknown optional Resources, per LwM2M specification.
1 parent 34a35f5 commit 5c3d4ec

373 files changed

Lines changed: 9175 additions & 6550 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build_docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2023-2025 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2023-2026 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay Lite LwM2M SDK
33
# All rights reserved.
44
#

.gitignore

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@ build/
1717
site/
1818
coverage/
1919
doxygen/
20+
venv/
2021

2122
# make
2223
CMakeFiles/
2324
CMakeDoxyfile.in
2425
*.cmake
2526
!cmake/*.cmake
27+
!tests/anj/standard_tests/standard_tests_base_config.cmake
2628
!tests/init_header_check/run_check.cmake
2729
CMakeCache.txt
2830
Makefile
@@ -31,23 +33,10 @@ __pycache__/
3133
libanj.a
3234

3335
/doc/sphinx/conf.py
34-
/anjay_lite_bc_initialization
35-
/anjay_lite_bc_mandatory_objects
36-
/anjay_lite_bc_send
37-
/anjay_lite_bc_security
38-
/anjay_lite_at_bootstrap
39-
/anjay_lite_at_persistence
40-
/anjay_lite_firmware_update
41-
/dm_tests
42-
/io_tests
43-
/io_tests_without_extended
44-
/coap_tests
45-
/observe_tests
46-
/observe_without_composite_tests
47-
/dm_without_composite_tests
48-
/exchange_tests
49-
/core_tests
50-
/downloader_tests
51-
/net_tests
5236
/anj_config
5337
/cxx_header_check
38+
39+
# Python venv
40+
/venv/
41+
dist/
42+
tools/deploy_utils.egg-info/

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,38 @@
11
# Changelog
22

3+
## Anjay Lite 2.0.0 (January 29th, 2026)
4+
5+
### BREAKING CHANGES
6+
- Removed support for TCP and TLS bindings in NET layer -
7+
`ANJ_NET_WITH_TCP`, `ANJ_COAP_WITH_UDP`, `ANJ_COAP_WITH_TCP` options were removed.
8+
- Removed `anj_net_shutdown` from NET layer.
9+
- Monotonic time is now the primary clock used for scheduling operations,
10+
replacing real-time clock usage across the codebase.
11+
12+
### Features
13+
- NTP module for time synchronization.
14+
- (commercial version only) Added default OSCORE Object implementation.
15+
- Added support for canceling observations with CoAP RST message.
16+
- Re-introduced `anj_core_ongoing_operation` API.
17+
- Added `ANJ_OBSERVE_OBSERVATION_CANCEL_ON_TIMEOUT` option to control behavior
18+
in case of notification timeouts.
19+
- Introduced `ANJ_LOG_MICRO` option for optimizing footprint of
20+
logging with `tools/micro_logs_decode.py` tool to decode log messages.
21+
22+
### Improvements
23+
- Switch RNG implementation from getrandom() to getentropy() for improved portability.
24+
- Tests structure refactored in order to increase coverage.
25+
- Shorter Send operation payloads due to the use of a common path when encoding messages.
26+
- MbedTLS integration layer sets the correct MTU value.
27+
- MbedTLS is now fetched and compiled only once when calling `make all` via root `CMakeLists.txt`.
28+
29+
### Bugfixes
30+
- Fixed a bug in TLV decoder that incorrectly rejected request with a resource
31+
instance specified in the uri-path.
32+
- Fixed handling of Discover requests targeting the root path.
33+
- Fixed incorrect descriptions of return values in callbacks from FOTA.
34+
- Writes to Object Instances now ignore unknown optional Resources, per LwM2M specification.
35+
336
## Anjay Lite 1.0.0 (October 20th, 2025)
437

538
### BREAKING CHANGES

CMakeLists.txt

Lines changed: 127 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2023-2025 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2023-2026 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay Lite LwM2M SDK
33
# All rights reserved.
44
#
@@ -15,10 +15,54 @@ project(anjay_lite C)
1515

1616
set(CMAKE_C_STANDARD 99)
1717
set(CMAKE_C_EXTENSIONS OFF)
18+
include(ExternalProject)
1819

19-
# Below find_package() call is meant for IDE indexing purposes.
20-
set(anjay_lite_DIR "cmake")
21-
find_package(anjay_lite REQUIRED)
20+
# Although we have cmake/anjay_lite-config.cmake which calls
21+
# anjay_lite_mbedtls.cmake internally, we couldn't use this
22+
# cmake script here because FetchContent builds mbedtls in a way
23+
# that can't be utilized by find_package(MbedTLS).
24+
#
25+
# When calling root project CMakeLists.txt, MbedTLS will be
26+
# either downloaded by ExternalProject call below, or user
27+
# will provide MBEDTLS_ROOT_DIR variable pointing to an existing
28+
# MbedTLS installation. MbedTLS fetched by ExternalProject will
29+
# be passed to subprojects via -DMBEDTLS_ROOT_DIR=... argument.
30+
# This allows to utilize single MbedTLS build for all subprojects.
31+
#
32+
# When calling subproject CMakeLists.txt directly, user is expected
33+
# to provide MBEDTLS_ROOT_DIR variable pointing to an existing MbedTLS
34+
# installation, otherwise, subproject will include anjay_lite_mbedtls.cmake
35+
# and download MbedTLS via FetchContent mechanism, once for each subproject.
36+
if(NOT MBEDTLS_ROOT_DIR)
37+
if(NOT MBEDTLS_VERSION)
38+
set(MBEDTLS_VERSION "3.6.4")
39+
endif()
40+
41+
message(STATUS "No MBEDTLS_ROOT_DIR provided. Fetching MbedTLS ${MBEDTLS_VERSION} ...")
42+
set(MBEDTLS_BUILD_DIR "${CMAKE_BINARY_DIR}/_deps/mbedtls-build")
43+
ExternalProject_Add(mbedtls
44+
GIT_REPOSITORY https://github.com/Mbed-TLS/mbedtls.git
45+
GIT_TAG v${MBEDTLS_VERSION}
46+
GIT_SHALLOW TRUE
47+
48+
SOURCE_DIR "${CMAKE_BINARY_DIR}/_deps/mbedtls-src"
49+
BINARY_DIR "${MBEDTLS_BUILD_DIR}"
50+
51+
CMAKE_ARGS
52+
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
53+
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
54+
-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
55+
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
56+
-DENABLE_PROGRAMS=OFF
57+
-DENABLE_TESTING=OFF
58+
59+
INSTALL_COMMAND "" # skip "make install"
60+
)
61+
set(TARGETS_MBEDTLS_DIR "${MBEDTLS_BUILD_DIR}")
62+
else()
63+
message("Using MbedTLS from: ${MBEDTLS_ROOT_DIR}")
64+
set(TARGETS_MBEDTLS_DIR "${MBEDTLS_ROOT_DIR}")
65+
endif()
2266

2367
find_program(VALGRIND_EXECUTABLE valgrind)
2468

@@ -35,87 +79,100 @@ endforeach()
3579

3680
message(STATUS "Command line flags: ${COMMAND_LINE_FLAGS}")
3781

38-
function(add_standalone_target NAME PATH WITH_VALGRIND)
82+
function(add_standalone_target NAME PATH WITH_VALGRIND WITH_MBEDTLS)
3983
set(workdir "${CMAKE_BINARY_DIR}/${NAME}")
4084

41-
string(REPLACE " " ";" unescaped_c_flags "${CMAKE_C_FLAGS}")
42-
string(REPLACE " " ";" unescaped_exe_linker_flags "${CMAKE_EXE_LINKER_FLAGS}")
43-
44-
add_custom_target(${NAME} ALL)
45-
add_custom_command(TARGET ${NAME} COMMAND ${CMAKE_COMMAND} -E make_directory
46-
"${workdir}" PRE_BUILD)
47-
add_custom_command(
48-
TARGET ${NAME}
49-
COMMAND
50-
${CMAKE_COMMAND} -S "${CMAKE_CURRENT_SOURCE_DIR}/${PATH}" -B .
51-
-DCMAKE_C_COMPILER="${CMAKE_C_COMPILER}"
52-
-DCMAKE_C_FLAGS="${unescaped_c_flags}"
53-
-DCMAKE_EXE_LINKER_FLAGS="${unescaped_exe_linker_flags}"
54-
${COMMAND_LINE_FLAGS}
55-
COMMAND ${CMAKE_COMMAND} --build . --target ${NAME} -- -j${NPROC}
56-
WORKING_DIRECTORY "${workdir}"
57-
POST_BUILD)
58-
59-
if(WITH_VALGRIND AND VALGRIND_EXECUTABLE)
60-
add_custom_target(
61-
${NAME}_with_valgrind
62-
DEPENDS ${NAME}
63-
COMMAND "${VALGRIND_EXECUTABLE}" --leak-check=full --track-origins=yes -q
64-
--error-exitcode=63 "${workdir}/${NAME}")
85+
set(DEPENDS_ON_LIST "")
86+
if(TARGET mbedtls AND WITH_MBEDTLS)
87+
list(APPEND DEPENDS_ON_LIST mbedtls)
6588
endif()
6689

67-
if(${NAME} MATCHES "_tests")
68-
add_dependencies(run_tests ${NAME})
69-
add_custom_command(TARGET run_tests COMMAND "${workdir}/${NAME}" POST_BUILD)
90+
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${PATH})
91+
ExternalProject_Add(
92+
${NAME}
93+
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${PATH}"
94+
BINARY_DIR "${workdir}"
95+
CMAKE_CACHE_ARGS
96+
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
97+
-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
98+
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
99+
-DMBEDTLS_ROOT_DIR:STRING=${TARGETS_MBEDTLS_DIR}
100+
${COMMAND_LINE_FLAGS}
101+
DEPENDS ${DEPENDS_ON_LIST}
102+
INSTALL_COMMAND "" # skip "make install"
103+
BUILD_ALWAYS 1
104+
)
105+
106+
if(WITH_VALGRIND AND VALGRIND_EXECUTABLE)
107+
add_custom_target(
108+
${NAME}_with_valgrind
109+
DEPENDS ${NAME}
110+
COMMAND "${VALGRIND_EXECUTABLE}" --leak-check=full --track-origins=yes -q
111+
--error-exitcode=63 "${workdir}/${NAME}")
112+
endif()
113+
114+
if(${NAME} MATCHES "_tests")
115+
add_dependencies(run_tests ${NAME})
116+
add_custom_command(TARGET run_tests COMMAND "${workdir}/${NAME}" POST_BUILD)
117+
endif()
70118
endif()
71119
endfunction()
72120

73121
# tests
74-
add_standalone_target(dm_tests tests/anj/dm ON)
75-
add_standalone_target(dm_without_composite_tests tests/anj/dm_without_composite ON)
76-
add_standalone_target(observe_tests tests/anj/observe ON)
77-
add_standalone_target(observe_without_composite_tests tests/anj/observe_without_composite ON)
78-
add_standalone_target(exchange_tests tests/anj/exchange ON)
79-
add_standalone_target(io_tests tests/anj/io ON)
80-
add_standalone_target(io_tests_without_extended tests/anj/io_without_extended ON)
81-
add_standalone_target(coap_tests tests/anj/coap ON)
82-
add_standalone_target(net_tests tests/anj/net ON)
83-
add_standalone_target(core_tests tests/anj/core ON)
84-
add_standalone_target(downloader_tests tests/anj/downloader ON)
85-
add_standalone_target(time_api_tests tests/anj/time ON)
86-
add_standalone_target(log_tests tests/anj/log ON)
122+
add_standalone_target(standard_tests tests/anj/standard_tests ON ON)
123+
add_standalone_target(standard_tests_without_composite tests/anj/standard_tests_without_composite ON ON)
124+
add_standalone_target(standard_tests_without_external_data tests/anj/standard_tests_without_external_data ON ON)
125+
add_standalone_target(standard_tests_without_lwm2m_1_2 tests/anj/standard_tests_without_lwm2m_1_2 ON ON)
126+
add_standalone_target(log_tests tests/anj/log ON OFF)
127+
add_standalone_target(net_tests tests/anj/net ON OFF)
87128

88129
# examples
89-
add_standalone_target(anjay_lite_firmware_update examples/tutorial/firmware-update OFF)
90-
add_standalone_target(anjay_lite_firmware_update_pull examples/tutorial/firmware-update-coap-downloader OFF)
91-
add_standalone_target(anjay_lite_secure_firmware_update_pull examples/tutorial/firmware-update-coaps-downloader OFF)
92-
93-
add_standalone_target(anjay_lite_bc_initialization examples/tutorial/BC-Initialization OFF)
94-
add_standalone_target(anjay_lite_bc_mandatory_objects examples/tutorial/BC-MandatoryObjects OFF)
95-
add_standalone_target(anjay_lite_bc_security examples/tutorial/BC-Security OFF)
96-
add_standalone_target(anjay_lite_bc_object_impl examples/tutorial/BC-BasicObjectImplementation OFF)
97-
add_standalone_target(anjay_lite_bc_notifications examples/tutorial/BC-Notifications OFF)
98-
add_standalone_target(anjay_lite_bc_send examples/tutorial/BC-Send OFF)
99-
100-
add_standalone_target(anjay_lite_at_bootstrap examples/tutorial/AT-Bootstrap OFF)
101-
add_standalone_target(anjay_lite_at_persistence examples/tutorial/AT-Persistence OFF)
102-
add_standalone_target(anjay_lite_at_queue_mode examples/tutorial/AT-QueueMode OFF)
103-
add_standalone_target(anjay_lite_at_multi_instance_object examples/tutorial/AT-MultiInstanceObject OFF)
104-
add_standalone_target(anjay_lite_at_multi_instance_object_dynamic examples/tutorial/AT-MultiInstanceObjectDynamic OFF)
105-
add_standalone_target(anjay_lite_at_multi_instance_resource examples/tutorial/AT-MultiInstanceResource OFF)
106-
add_standalone_target(anjay_lite_at_multi_instance_resource_dynamic examples/tutorial/AT-MultiInstanceResourceDynamic OFF)
107-
108-
add_standalone_target(anjay_lite_minimal_network_api examples/custom-network/minimal OFF)
130+
add_standalone_target(anjay_lite_firmware_update examples/tutorial/firmware-update OFF OFF)
131+
add_standalone_target(anjay_lite_firmware_update_pull examples/tutorial/firmware-update-coap-downloader OFF OFF)
132+
add_standalone_target(anjay_lite_secure_firmware_update_pull examples/tutorial/firmware-update-coaps-downloader OFF ON)
133+
134+
add_standalone_target(anjay_lite_bc_initialization examples/tutorial/BC-Initialization OFF OFF)
135+
add_standalone_target(anjay_lite_bc_mandatory_objects examples/tutorial/BC-MandatoryObjects OFF OFF)
136+
add_standalone_target(anjay_lite_bc_security examples/tutorial/BC-Security OFF ON)
137+
add_standalone_target(anjay_lite_bc_object_impl examples/tutorial/BC-BasicObjectImplementation OFF OFF)
138+
add_standalone_target(anjay_lite_bc_notifications examples/tutorial/BC-Notifications OFF OFF)
139+
add_standalone_target(anjay_lite_bc_send examples/tutorial/BC-Send OFF OFF)
140+
141+
add_standalone_target(anjay_lite_at_bootstrap examples/tutorial/AT-Bootstrap OFF OFF)
142+
add_standalone_target(anjay_lite_at_persistence examples/tutorial/AT-Persistence OFF OFF)
143+
add_standalone_target(anjay_lite_at_queue_mode examples/tutorial/AT-QueueMode OFF OFF)
144+
add_standalone_target(anjay_lite_at_multi_instance_object examples/tutorial/AT-MultiInstanceObject OFF OFF)
145+
add_standalone_target(anjay_lite_at_multi_instance_object_dynamic examples/tutorial/AT-MultiInstanceObjectDynamic OFF OFF)
146+
add_standalone_target(anjay_lite_at_multi_instance_resource examples/tutorial/AT-MultiInstanceResource OFF OFF)
147+
add_standalone_target(anjay_lite_at_multi_instance_resource_dynamic examples/tutorial/AT-MultiInstanceResourceDynamic OFF OFF)
148+
add_standalone_target(anjay_lite_at_time_synchronization examples/tutorial/AT-TimeSynchronization OFF OFF)
149+
add_standalone_target(anjay_lite_at_time_synchronization_persistence examples/tutorial/AT-TimeSynchronizationPersistence OFF OFF)
150+
add_standalone_target(anjay_lite_at_micro_logs examples/tutorial/AT-MicroLogs OFF OFF)
151+
152+
add_standalone_target(anjay_lite_minimal_network_api examples/custom-network/minimal OFF OFF)
109153

110154
# Sphinx and doxygen documentation
111-
add_subdirectory(doc)
155+
# Note: documentation is configured and built only when the target is
156+
# explicitly invoked (e.g. via `make doc_sphinx`).
157+
function(add_doc_proxy_target TARGET_NAME)
158+
add_custom_target(${TARGET_NAME}
159+
COMMAND ${CMAKE_COMMAND} -S "${CMAKE_SOURCE_DIR}/doc" -B "${CMAKE_BINARY_DIR}/doc"
160+
COMMAND ${CMAKE_COMMAND} --build "${CMAKE_BINARY_DIR}/doc" --target ${TARGET_NAME}
161+
USES_TERMINAL
162+
)
163+
endfunction()
164+
165+
add_doc_proxy_target(doc)
166+
add_doc_proxy_target(doc_sphinx)
167+
add_doc_proxy_target(doc_doxygen)
168+
add_doc_proxy_target(test_doc_snippet)
112169

113170
# C++ header compatibility check
114-
add_standalone_target(cxx_header_check tests/cxx_header_check OFF)
171+
add_standalone_target(cxx_header_check tests/cxx_header_check OFF OFF)
115172

116-
add_standalone_target(codegen_compilation_check tests/codegen/compilation OFF)
117-
add_standalone_target(codegen_object_registry_check tests/codegen/object_registry OFF)
118-
add_standalone_target(codegen_add_object_tests tests/codegen/add_object OFF)
173+
add_standalone_target(codegen_compilation_check tests/codegen/compilation OFF OFF)
174+
add_standalone_target(codegen_object_registry_check tests/codegen/object_registry OFF OFF)
175+
add_standalone_target(codegen_add_object_tests tests/codegen/add_object OFF OFF)
119176

120177
# Check for correct inclusion of anj/init.h
121178
add_custom_target(init_header_check

CONTRIBUTING.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
..
2-
Copyright 2023-2025 AVSystem <avsystem@avsystem.com>
2+
Copyright 2023-2026 AVSystem <avsystem@avsystem.com>
33
AVSystem Anjay Lite LwM2M SDK
44
All rights reserved.
55

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ AVSystem Anjay Lite LwM2M Client SDK - Non-Commercial License
33

44
Version 1.0
55
Effective Date: June 2025
6-
Copyright 2023-2025 AVSystem Sp. z o.o.
6+
Copyright 2023-2026 AVSystem Sp. z o.o.
77

88
Subject to the terms and conditions set forth herein, AVSystem Sp. z o.o.
99
("Licensor") hereby grants any person or legal entity obtaining a copy of this

README.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,24 @@ make -j
113113

114114
Replace <endpoint_name> with your desired endpoint name.
115115

116+
### Building the documentation
117+
118+
To build the documentation, first install all dependencies by following the `Prepare the environment`
119+
section in [Compilation instructions][anjay-lite-compilation]. Then run:
120+
121+
``` sh
122+
mkdir build
123+
cd build
124+
cmake ..
125+
make doc
126+
```
127+
128+
The generated documentation will be available in the `doc/build` directory.
129+
116130
### Configuring the MbedTLS
117131

118132
Anjay Lite examples uses MbedTLS to implement DTLS for secure transport.
119-
The library automatically fetches and builds MbedTLS version 3.6.0 during the
133+
The library automatically fetches and builds MbedTLS version 3.6.4 during the
120134
build process. You can override this default version or use a custom, pre-installed MbedTLS library if needed.
121135

122136
To override the default version fetched via FetchContent, set the MBEDTLS_VERSION variable:
@@ -170,6 +184,13 @@ Visit the official Anjay Lite documentation:
170184

171185
---
172186

187+
## Embedded Platform Integrations
188+
189+
Anjay Lite is designed with portability in mind and can be integrated into
190+
various embedded environments. For details, see the
191+
[integrations chapter in the documentation][anjay-lite-integrations].
192+
193+
<p align="right">(<a href="#readme-top">Back to top</a>)</p>
173194

174195
<!-- LICENSE && COMMERCIAL SUPPORT-->
175196
## License
@@ -230,6 +251,7 @@ Contributions are welcome! See our [contributing guide](CONTRIBUTING.rst).
230251
[dual-license-badge]: https://img.shields.io/badge/license-Dual-blue
231252

232253
[anjay-lite-full-documentation]: https://AVSystem.github.io/Anjay-lite
254+
[anjay-lite-integrations]: https://avsystem.github.io/Anjay-lite/Integrations.html
233255
[anjay-lite-introduction]: https://AVSystem.github.io/Anjay-lite/Introduction.html
234256
[anjay-lite-compilation]: https://avsystem.github.io/Anjay-lite/Compile_client_applications.html
235257
[anjay-lite-tutorials]: https://AVSystem.github.io/Anjay-lite/BasicClient.html

cmake/anjay_lite-config-version.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2023-2025 AVSystem <avsystem@avsystem.com>
1+
# Copyright 2023-2026 AVSystem <avsystem@avsystem.com>
22
# AVSystem Anjay Lite LwM2M SDK
33
# All rights reserved.
44
#

0 commit comments

Comments
 (0)