From 35cbfde058847c24eabac087d756709b4c19f616 Mon Sep 17 00:00:00 2001 From: Gergely Nyiri Date: Tue, 14 Aug 2018 19:09:26 +0200 Subject: [PATCH 1/3] Add CMakeLists.txt files --- CMakeLists.txt | 19 +++++++++++++++++++ GuruxDLMSClientExample/CMakeLists.txt | 23 +++++++++++++++++++++++ GuruxDLMSPushExample/CMakeLists.txt | 24 ++++++++++++++++++++++++ GuruxDLMSServerExample/CMakeLists.txt | 24 ++++++++++++++++++++++++ development/CMakeLists.txt | 19 +++++++++++++++++++ 5 files changed, 109 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 GuruxDLMSClientExample/CMakeLists.txt create mode 100644 GuruxDLMSPushExample/CMakeLists.txt create mode 100644 GuruxDLMSServerExample/CMakeLists.txt create mode 100644 development/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..2ed7f4d6 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,19 @@ +project(GURUX.DLMS.cpp) + +cmake_minimum_required(VERSION 3.9) + +find_package (Threads REQUIRED) + +option(BUILD_EXAMPLE "Build Examples" OFF) +option(BUILD_SHARED_LIBS "Build Shared Libs" OFF) + +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin) +set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/lib) + +add_subdirectory(development) + +if(BUILD_EXAMPLE) + add_subdirectory(GuruxDLMSClientExample) + add_subdirectory(GuruxDLMSPushExample) + add_subdirectory(GuruxDLMSServerExample) +endif() diff --git a/GuruxDLMSClientExample/CMakeLists.txt b/GuruxDLMSClientExample/CMakeLists.txt new file mode 100644 index 00000000..5cbaf83a --- /dev/null +++ b/GuruxDLMSClientExample/CMakeLists.txt @@ -0,0 +1,23 @@ +project(gurux_dlms_cpp_client_example) + +cmake_minimum_required(VERSION 3.9) + +file(GLOB sources src/*.cpp) + +add_executable(gurux.dlms.client.bin + ${sources} +) + +target_include_directories(gurux.dlms.client.bin + PUBLIC + include +) + +target_compile_options(gurux.dlms.client.bin + PUBLIC + -Wall -fPIC +) + +target_link_libraries(gurux.dlms.client.bin + gurux_dlms_cpp +) diff --git a/GuruxDLMSPushExample/CMakeLists.txt b/GuruxDLMSPushExample/CMakeLists.txt new file mode 100644 index 00000000..f21a90f3 --- /dev/null +++ b/GuruxDLMSPushExample/CMakeLists.txt @@ -0,0 +1,24 @@ +project(gurux_dlms_cpp_push_example) + +cmake_minimum_required(VERSION 3.9) + +file(GLOB sources src/*.cpp) + +add_executable(gurux.dlms.push.bin + ${sources} +) + +target_include_directories(gurux.dlms.push.bin + PUBLIC + include +) + +target_compile_options(gurux.dlms.push.bin + PUBLIC + -Wall -fPIC +) + +target_link_libraries(gurux.dlms.push.bin + gurux_dlms_cpp + Threads::Threads +) diff --git a/GuruxDLMSServerExample/CMakeLists.txt b/GuruxDLMSServerExample/CMakeLists.txt new file mode 100644 index 00000000..5f8a78bd --- /dev/null +++ b/GuruxDLMSServerExample/CMakeLists.txt @@ -0,0 +1,24 @@ +project(gurux_dlms_cpp_server_example) + +cmake_minimum_required(VERSION 3.9) + +file(GLOB sources src/*.cpp) + +add_executable(gurux.dlms.server.bin + ${sources} +) + +target_include_directories(gurux.dlms.server.bin + PUBLIC + include +) + +target_compile_options(gurux.dlms.server.bin + PUBLIC + -Wall -fPIC +) + +target_link_libraries(gurux.dlms.server.bin + gurux_dlms_cpp + Threads::Threads +) \ No newline at end of file diff --git a/development/CMakeLists.txt b/development/CMakeLists.txt new file mode 100644 index 00000000..d977d1e8 --- /dev/null +++ b/development/CMakeLists.txt @@ -0,0 +1,19 @@ +project(gurux_dlms_cpp) + +cmake_minimum_required(VERSION 3.9) + +file(GLOB sources src/*.cpp) + +add_library(gurux_dlms_cpp + ${sources} +) + +target_include_directories(gurux_dlms_cpp + PUBLIC + include +) + +target_compile_options(gurux_dlms_cpp + PUBLIC + -Wall -fPIC +) From c69dd3d441e66e3b01cccd8e46b363f28105b434 Mon Sep 17 00:00:00 2001 From: Gergely Nyiri Date: Tue, 14 Aug 2018 19:35:05 +0200 Subject: [PATCH 2/3] Add install options --- development/CMakeLists.txt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/development/CMakeLists.txt b/development/CMakeLists.txt index d977d1e8..f1cefff8 100644 --- a/development/CMakeLists.txt +++ b/development/CMakeLists.txt @@ -2,7 +2,7 @@ project(gurux_dlms_cpp) cmake_minimum_required(VERSION 3.9) -file(GLOB sources src/*.cpp) +file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cpp) add_library(gurux_dlms_cpp ${sources} @@ -10,10 +10,19 @@ add_library(gurux_dlms_cpp target_include_directories(gurux_dlms_cpp PUBLIC - include + ${PROJECT_SOURCE_DIR}/include/ ) target_compile_options(gurux_dlms_cpp PUBLIC -Wall -fPIC ) + +install(TARGETS gurux_dlms_cpp + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib +) + +install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/" + DESTINATION ${CMAKE_INSTALL_PREFIX}/include + FILES_MATCHING PATTERN "*.*h" +) \ No newline at end of file From 0dca6844f6566428c8ee7f7639a2a1da17a6690a Mon Sep 17 00:00:00 2001 From: tzoli9 Date: Thu, 25 Apr 2019 16:21:08 +0200 Subject: [PATCH 3/3] Fix possible NULL pointer crash --- development/src/GXDLMS.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/development/src/GXDLMS.cpp b/development/src/GXDLMS.cpp index d4702da8..fc71bc9b 100644 --- a/development/src/GXDLMS.cpp +++ b/development/src/GXDLMS.cpp @@ -2620,7 +2620,7 @@ int CGXDLMS::GetData(CGXDLMSSettings& settings, { return ret; } - if (ret == DLMS_ERROR_CODE_FALSE) + if (notify != NULL && ret == DLMS_ERROR_CODE_FALSE) { target = notify; isNotify = true; @@ -3776,4 +3776,4 @@ int CGXDLMS::HandleConfirmedServiceError(CGXReplyData& data) return service << 16 | type << 8 | ch; } return 0; -} \ No newline at end of file +}