diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5416d63 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.13) + +if(ESP_PLATFORM) + # Build LoRaSerialization as an ESP-IDF component + # required because ESP-IDF runs cmake in script mode + # and needs idf_component_register() + file(GLOB_RECURSE LORA_SERIALIZATION_ESP_SOURCES + "src/*.*" + ) + + idf_component_register( + SRCS ${LORA_SERIALIZATION_ESP_SOURCES} + INCLUDE_DIRS . src + ) + + return() +endif() + +if(CMAKE_SCRIPT_MODE_FILE) + message(FATAL_ERROR "Attempted to build LoRaSerialization in script mode") +endif() + +project(radiolib) + +file(GLOB_RECURSE LORA_SERIALIZATION_SOURCES + "src/*.cpp" +) + +add_library(LoRaSerialization ${LORA_SERIALIZATION_SOURCES}) + +target_include_directories(LoRaSerialization + PUBLIC $ + $) + +# use c++20 standard +set_property(TARGET LoRaSerialization PROPERTY CXX_STANDARD 20) + +# enable most warnings +target_compile_options(LoRaSerialization PRIVATE -Wall -Wextra) + +include(GNUInstallDirs) + +install(TARGETS LoRaSerialization + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/LoRaSerialization + FILES_MATCHING PATTERN "*.h" +) diff --git a/idf_component.yml b/idf_component.yml new file mode 100644 index 0000000..77dd0bc --- /dev/null +++ b/idf_component.yml @@ -0,0 +1,11 @@ +dependencies: + idf: '>=4.1' +description: LoRaWAN serialization/deserialization library for The Things Network +license: MIT +repository: https://github.com/thesolarnomad/lora-serialization.git +tags: +- LoRaWAN +- encoding +- serialization +- deserialization +version: 3.2.1 diff --git a/src/LoraMessage.cpp b/src/LoraMessage.cpp index a70e614..9e3d056 100644 --- a/src/LoraMessage.cpp +++ b/src/LoraMessage.cpp @@ -1,6 +1,9 @@ #if ARDUINO >= 100 #include "Arduino.h" #endif +#ifdef ESP_PLATFORM + #include +#endif #include #include "LoraMessage.h" #include "LoraEncoder.h"