Commit e0b1fe64680a6023bc821d9ac2288f980de2c559
1 parent
7ecdab62
Fixed script.
Showing
5 changed files
with
98 additions
and
28 deletions
CMakeLists.txt
... | ... | @@ -13,10 +13,10 @@ endif() |
13 | 13 | |
14 | 14 | # ============================================================================== |
15 | 15 | # Check to see if there is versioning information available |
16 | -if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/osdev_versioning/cmake) | |
17 | - LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/osdev_versioning/cmake) | |
18 | -elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../osdev_versioning/cmake) | |
19 | - LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../osdev_versioning/cmake) | |
16 | +if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/versioning) | |
17 | + LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/versioning/cmake) | |
18 | +elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../versioning) | |
19 | + LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../versioning/cmake) | |
20 | 20 | else() |
21 | 21 | message( FATAL_ERROR "No ${CURRENT_SOURCE_DIR}/osdev_versioning directory found. Did you run the submodules script?" ) |
22 | 22 | endif() | ... | ... |
README.md
1 | +MQTT-CPP | |
2 | +======== | |
3 | + | |
4 | +Modern, asynchronous and fast C++ client for paho-mqtt ( paho-c ). | |
5 | + | |
6 | +**Features:** | |
7 | +* Simple and clean A-synchronous API. ( Connect, publish, subscribe ). | |
8 | +* Thread-safe. Use multiple topics in multiple threads.. | |
9 | +* Callbacks can be lambdas, class methods, bind expressions, or any [std::function] | |
10 | +* Fully autonomous reconnecting | |
11 | + | |
12 | +# Dependencies | |
13 | +The only dependency is to libpaho-mqtt3a.so. CHanges are there is a version for your platform ( Debian, Fedora, CentOS ). | |
14 | +Just check your package manager for the correct package-name. | |
15 | + | |
16 | +# Tutorial | |
17 | +* Clone this repository : | |
18 | + ``` | |
19 | + git clone http://gitlab.osdev.nl/open_source/mqtt-cpp.git | |
20 | + ``` | |
21 | + * Change to the repo and run the submodules script : | |
22 | + ``` | |
23 | + $ cd mqtt-cpp | |
24 | + $ scripts/setup_submodules -i | |
25 | + ``` | |
26 | + This will add the cmake directory and versioning. | |
27 | + * Create a build directory and start the build. | |
28 | + ``` | |
29 | + $ mkdir build | |
30 | + $ cd build | |
31 | + $ cmake ../ | |
32 | + $ gmake | |
33 | + ``` | |
34 | +And you're all set. In build/bin there are two examples, test_mqtt_pu and test_mqtt_sub. Have a broker running, | |
35 | +like mosquitto or flashmq capable of accepting anonymous connections. Start the "sub" part and couple of moments | |
36 | +later the "pub" part. If all went well, you should see two screens in sync running. | |
37 | +One is sending, the other is receiveing. | ... | ... |
scripts/setup_submodules
1 | -#!/bin/bash | |
1 | +#!/bin/bash -x | |
2 | 2 | # ================= |
3 | 3 | # = Do not chenge. |
4 | 4 | # ================= |
5 | 5 | GIT_URL_SUBS="http://gitlab.osdev.nl/open_source" |
6 | -TOP_REPO="-1" | |
6 | +FUNC_RESULT="" | |
7 | 7 | |
8 | -function print_usage_exit() { | |
8 | +function print_usage_exit() | |
9 | +{ | |
9 | 10 | echo "Usage $0 -i|--install|-u|--update" |
10 | 11 | echo " -i or --install Install the submodules mentioned in the submodules.list" |
11 | 12 | echo " -u or --update Update the submodules mentioned in the submodules.list" |
... | ... | @@ -13,45 +14,55 @@ function print_usage_exit() { |
13 | 14 | exit 1 |
14 | 15 | } |
15 | 16 | |
16 | -function check_top_or_sub() { | |
17 | +function check_top_or_sub() | |
18 | +{ | |
17 | 19 | # This function checks if we're the top-repository. |
18 | 20 | # In that case we need the submodules.. If we're already a submodule, |
19 | 21 | # we simply exit this script with a message |
20 | - if [ -d ./.git ]; then | |
21 | - return 1 | |
22 | - elif [ -d ../.git ]; then | |
23 | - if [ -f ../.submodules ]; then | |
22 | + if [ -e ./.git ]; then | |
23 | + FUNC_RESULT="1" | |
24 | + return | |
25 | + elif [ -e ../.git ]; then | |
26 | + if [ -e ../.submodules ]; then | |
24 | 27 | echo "Seems like we're already a submodule. Nothing to do here." |
25 | - return 0 | |
28 | + FUNC_RESULT="0" | |
29 | + return | |
26 | 30 | fi |
27 | 31 | fi |
28 | - return 0 | |
32 | + FUNC_RESULT="0" | |
33 | + return | |
29 | 34 | } |
30 | 35 | |
31 | -function check_working_dir() { | |
36 | +function check_working_dir() | |
37 | +{ | |
32 | 38 | # Check if we're in the top-level directory of our repository. |
33 | 39 | if [ -f ./scripts/submodules.list ]; then |
34 | 40 | # We're good to go |
35 | - return 1 | |
41 | + FUNC_RESULT="1" | |
42 | + return | |
36 | 43 | fi |
37 | - return 0 | |
44 | + FUNC_RESULT="0" | |
45 | + return | |
38 | 46 | } |
39 | 47 | |
40 | -function read_submodules() { | |
48 | +function read_submodules() | |
49 | +{ | |
41 | 50 | if [ -e ./scripts/submodules.list ]; then |
42 | 51 | source ./scripts/submodules.list |
43 | 52 | fi |
44 | 53 | } |
45 | 54 | |
46 | -function add_submodules() { | |
55 | +function add_submodules() | |
56 | +{ | |
47 | 57 | for SUB_MODULE in ${SUB_MODULES} |
48 | 58 | do |
49 | - git submodule add -f ${GIT_URL_SUBS}/${SUB_MODULE} ${SUB_MODULE} | |
50 | - git config submodule.${SUB_MODULE}.url ${GIT_URL_SUBS}/${SUB_MODULE} | |
59 | + git submodule add -f ${GIT_URL_SUBS}/${SUB_MODULE}.git ${SUB_MODULE} | |
60 | + git config submodule.${SUB_MODULE}.url ${GIT_URL_SUBS}/${SUB_MODULE}.git | |
51 | 61 | done |
52 | 62 | } |
53 | 63 | |
54 | -function get_submodules() { | |
64 | +function get_submodules() | |
65 | +{ | |
55 | 66 | git submodule update --init --recursive |
56 | 67 | } |
57 | 68 | |
... | ... | @@ -62,14 +73,14 @@ function update_submodules() { |
62 | 73 | # ============================================================================= |
63 | 74 | # == T H E M A I N E N T R Y O F T H I S S C R I P T == |
64 | 75 | # ============================================================================= |
65 | -RESULT=check_top_or_sub() | |
66 | -if [ $RESULT -eq 0 ]; then | |
76 | +check_top_or_sub | |
77 | +if [ "${FUNC_RESULT}" == "0" ]; then | |
67 | 78 | echo "Seems like we're a submodule already or not part of a repository." |
68 | 79 | exit 0 |
69 | 80 | fi |
70 | 81 | |
71 | -RESULT=check_working_dir() | |
72 | -if [ $RESULT -eq 0 ]; then | |
82 | +check_working_dir | |
83 | +if [ "${FUNC_RESULT}" == "0" ]; then | |
73 | 84 | echo "Go to the top of this repository and type : scripts/setup_submodules [-i|--install]" |
74 | 85 | exit 0 |
75 | 86 | fi | ... | ... |
scripts/submodules.list
src/CMakeLists.txt
1 | 1 | cmake_minimum_required(VERSION 3.12) |
2 | -LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake) | |
2 | +# ============================================================================== | |
3 | +# Check to see if we're a submodule or top-repo. | |
4 | +if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../cmake) | |
5 | + message( STATUS "Looks like we're a single module" ) | |
6 | + LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake) | |
7 | +elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake) | |
8 | + message( STATUS "Looks like we're a submodule" ) | |
9 | + LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake) | |
10 | +else() | |
11 | + message( FATAL_ERROR "No cmake directory found. Did you run the submodules script?" ) | |
12 | +endif() | |
13 | + | |
14 | +# ============================================================================== | |
15 | +# Check to see if there is versioning information available | |
16 | +if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../versioning) | |
17 | + LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../versioning/cmake) | |
18 | +elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../versioning) | |
19 | + LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../versioning/cmake) | |
20 | +else() | |
21 | + message( FATAL_ERROR "No ${CURRENT_SOURCE_DIR}/osdev_versioning directory found. Did you run the submodules script?" ) | |
22 | +endif() | |
23 | +# ============================================================================== | |
3 | 24 | include(projectheader) |
25 | + | |
4 | 26 | project_header(mqtt) |
5 | 27 | |
6 | 28 | find_package( Boost REQUIRED COMPONENTS regex ) | ... | ... |