Skip to content

Commit 51a97ad

Browse files
authored
Merge pull request #359 from redboltz/add_cmake_option_to_build_separate_example
Added ASYNC_MQTT_BUILD_EXAMPLES_SEPARATE cmake option.
2 parents d0966f1 + e11b369 commit 51a97ad

File tree

6 files changed

+35
-22
lines changed

6 files changed

+35
-22
lines changed

.github/workflows/gha.yml

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ jobs:
4343
export CFLAGS=${NS_CFLAGS} && export CXXFLAGS=${NS_CXXFLAGS} && export LDFLAGS=${NS_LDFLAGS}
4444
[ ${{ matrix.pattern }} == 3 ] && \
4545
export CFLAGS=${NS_CFLAGS} && export CXXFLAGS="${PROF_CXXFLAGS} "&& export LDFLAGS=${NS_LDFLAGS}
46-
[ ${{ matrix.pattern }} == 0 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=ON -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_EXAMPLES=ON "
47-
[ ${{ matrix.pattern }} == 1 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=ON -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=OFF -DASYNC_MQTT_BUILD_EXAMPLES=ON "
48-
[ ${{ matrix.pattern }} == 2 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=ON -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_EXAMPLES=ON "
46+
[ ${{ matrix.pattern }} == 0 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=ON -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_EXAMPLES=ON -DASYNC_MQTT_BUILD_EXAMPLES_SEPARATE=ON "
47+
[ ${{ matrix.pattern }} == 1 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=ON -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=OFF -DASYNC_MQTT_BUILD_EXAMPLES=ON -DASYNC_MQTT_BUILD_EXAMPLES_SEPARATE=ON "
48+
[ ${{ matrix.pattern }} == 2 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=ON -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_EXAMPLES=ON -DASYNC_MQTT_BUILD_EXAMPLES_SEPARATE=ON "
4949
[ ${{ matrix.pattern }} == 3 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=ON -DASYNC_MQTT_USE_WS=ON -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_EXAMPLES=OFF "
5050
FLAGS="${FLAGS} -DASYNC_MQTT_BUILD_TOOLS=ON -DASYNC_MQTT_BUILD_UNIT_TESTS=ON -DASYNC_MQTT_BUILD_SYSTEM_TESTS=ON"
5151
cmake -S ${{ github.workspace }} -B ${{ runner.temp }} ${FLAGS} -DCMAKE_C_FLAGS="${CFLAGS}" -DCMAKE_CXX_FLAGS="${CXXFLAGS}" -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}"
@@ -106,9 +106,9 @@ jobs:
106106
export CFLAGS=${NS_CFLAGS} && export CXXFLAGS=${NS_CXXFLAGS} && export LDFLAGS=${NS_LDFLAGS}
107107
[ ${{ matrix.pattern }} == 3 ] && \
108108
export CFLAGS=${NS_CFLAGS} && export CXXFLAGS=${NS_CXXFLAGS_GCC} && export LDFLAGS=${NS_LDFLAGS}
109-
[ ${{ matrix.pattern }} == 0 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=ON -DASYNC_MQTT_PRINT_PAYLOAD=OFF -DASYNC_MQTT_BUILD_EXAMPLES=ON "
110-
[ ${{ matrix.pattern }} == 1 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=ON -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_EXAMPLES=ON "
111-
[ ${{ matrix.pattern }} == 2 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=ON -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_EXAMPLES=ON "
109+
[ ${{ matrix.pattern }} == 0 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=ON -DASYNC_MQTT_PRINT_PAYLOAD=OFF -DASYNC_MQTT_BUILD_EXAMPLES=ON -DASYNC_MQTT_BUILD_EXAMPLES_SEPARATE=ON "
110+
[ ${{ matrix.pattern }} == 1 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=ON -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_EXAMPLES=ON -DASYNC_MQTT_BUILD_EXAMPLES_SEPARATE=ON "
111+
[ ${{ matrix.pattern }} == 2 ] && FLAGS="-DCMAKE_CXX_COMPILER=clang++ -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=ON -DASYNC_MQTT_USE_STR_CHECK=ON -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_EXAMPLES=ON -DASYNC_MQTT_BUILD_EXAMPLES_SEPARATE=ON "
112112
[ ${{ matrix.pattern }} == 3 ] && FLAGS="-DCMAKE_CXX_COMPILER=g++ -DASYNC_MQTT_USE_TLS=ON -DASYNC_MQTT_USE_WS=ON -DASYNC_MQTT_USE_STR_CHECK=OFF -DASYNC_MQTT_USE_LOG=OFF -DASYNC_MQTT_PRINT_PAYLOAD=OFF -DASYNC_MQTT_BUILD_EXAMPLES=OFF "
113113
FLAGS="$FLAGS -DASYNC_MQTT_BUILD_TOOLS=ON -DASYNC_MQTT_BUILD_UNIT_TESTS=ON -DASYNC_MQTT_BUILD_SYSTEM_TESTS=ON"
114114
BOOST_ROOT=/home/runner/work/async_mqtt/async_mqtt/usr cmake -S ${{ github.workspace }} -B ${{ runner.temp }} ${FLAGS} -DCMAKE_C_FLAGS="${CFLAGS}" -DCMAKE_CXX_FLAGS="${CXXFLAGS}" -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}"
@@ -152,29 +152,32 @@ jobs:
152152
run: |
153153
echo ${{ matrix.pattern }}
154154
if (${{ matrix.pattern }} -eq 0) {
155-
$BUILD_TOOLS = "OFF"
156-
$BUILD_EXAMPLES = "OFF"
157-
$BUILD_UNIT_TESTS = "ON"
158-
$BUILD_SYSTEM_TESTS = "OFF"
155+
$BUILD_TOOLS = "OFF"
156+
$BUILD_EXAMPLES = "OFF"
157+
$BUILD_EXAMPLES_SEPARATE = "OFF"
158+
$BUILD_UNIT_TESTS = "ON"
159+
$BUILD_SYSTEM_TESTS = "OFF"
159160
}
160161
if (${{ matrix.pattern }} -eq 1) {
161-
$BUILD_TOOLS = "ON"
162-
$BUILD_EXAMPLES = "OFF"
163-
$BUILD_UNIT_TESTS = "OFF"
164-
$BUILD_SYSTEM_TESTS = "ON"
162+
$BUILD_TOOLS = "ON"
163+
$BUILD_EXAMPLES = "OFF"
164+
$BUILD_EXAMPLES_SEPARATE = "OFF"
165+
$BUILD_UNIT_TESTS = "OFF"
166+
$BUILD_SYSTEM_TESTS = "ON"
165167
}
166168
if (${{ matrix.pattern }} -eq 2) {
167-
$BUILD_TOOLS = "OFF"
168-
$BUILD_EXAMPLES = "ON"
169-
$BUILD_UNIT_TESTS = "OFF"
170-
$BUILD_SYSTEM_TESTS = "OFF"
169+
$BUILD_TOOLS = "OFF"
170+
$BUILD_EXAMPLES = "ON"
171+
$BUILD_EXAMPLES_SEPARATE = "ON"
172+
$BUILD_UNIT_TESTS = "OFF"
173+
$BUILD_SYSTEM_TESTS = "OFF"
171174
}
172175
$env:BOOST_ROOT="$PWD\boost"
173176
mkdir build
174177
cd build
175178
$env:CL="/D_WIN32_WINNT#0x0A00 /DBOOST_THREAD_VERSION#3 /DBOOST_ASIO_NO_DEPRECATED /bigobj /EHsc /Zc:preprocessor"
176179
$env:PATH="$env:BOOST_ROOT\lib;"+$env:PATH
177-
cmake -A x64 -G "Visual Studio 16 2019" -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_LOG=ON -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_SYSTEM_TESTS="$BUILD_SYSTEM_TESTS" -DASYNC_MQTT_BUILD_UNIT_TESTS="$BUILD_UNIT_TESTS" -DASYNC_MQTT_BUILD_EXAMPLES="$BUILD_EXAMPLES" -DASYNC_MQTT_BUILD_TOOLS="$BUILD_TOOLS" ..
180+
cmake -A x64 -G "Visual Studio 16 2019" -DASYNC_MQTT_USE_TLS=OFF -DASYNC_MQTT_USE_WS=OFF -DASYNC_MQTT_USE_LOG=ON -DASYNC_MQTT_PRINT_PAYLOAD=ON -DASYNC_MQTT_BUILD_SYSTEM_TESTS="$BUILD_SYSTEM_TESTS" -DASYNC_MQTT_BUILD_UNIT_TESTS="$BUILD_UNIT_TESTS" -DASYNC_MQTT_BUILD_EXAMPLES="$BUILD_EXAMPLES" -DASYNC_MQTT_BUILD_EXAMPLES_SEPARATE="$BUILD_EXAMPLES_SEPARATE" -DASYNC_MQTT_BUILD_TOOLS="$BUILD_TOOLS" ..
178181
if (!$?) {
179182
return Write-Error "cmake failed"
180183
}

CHANGELOG.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
= History
44

55
== 9.0.2
6+
* Added ASYNC_MQTT_BUILD_EXAMPLES_SEPARATE option to enable library separate build example. #359
67
* Fixed TLS timeout logic. #357
78
* Fixed broker auth file for docker. #356
89

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ option(ASYNC_MQTT_BUILD_UNIT_TESTS "Enable building unit tests" OFF)
1818
option(ASYNC_MQTT_BUILD_SYSTEM_TESTS "Enable building system tests" OFF)
1919
option(ASYNC_MQTT_BUILD_TOOLS "Enable building tools (broker, bench, etc.." OFF)
2020
option(ASYNC_MQTT_BUILD_EXAMPLES "Enable building example applications" OFF)
21+
option(ASYNC_MQTT_BUILD_EXAMPLES_SEPARATE "Enable building separate library build example applications(It requires much memory)" OFF)
2122
option(ASYNC_MQTT_BUILD_LIB "Enable building separate compilation library" OFF)
2223

2324
# Not implemented yet

doc/CHANGELOG.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ <h2 id="_9_0_2">9.0.2</h2>
6969
<div class="ulist">
7070
<ul>
7171
<li>
72+
<p>Added ASYNC_MQTT_BUILD_EXAMPLES_SEPARATE option to enable library separate build example. #359</p>
73+
</li>
74+
<li>
7275
<p>Fixed TLS timeout logic. #357</p>
7376
</li>
7477
<li>

doc/config.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,10 @@ <h2 id="_cmake">cmake</h2>
194194
<td class="tableblock halign-left valign-top"><p class="tableblock">Build examples</p></td>
195195
</tr>
196196
<tr>
197+
<td class="tableblock halign-left valign-top"><p class="tableblock">ASYNC_MQTT_BUILD_EXAMPLES_SEPARATE</p></td>
198+
<td class="tableblock halign-left valign-top"><p class="tableblock">Build examples for separate library build. It requires much memory.</p></td>
199+
</tr>
200+
<tr>
197201
<td class="tableblock halign-left valign-top"><p class="tableblock">ASYNC_MQTT_BUILD_LIB</p></td>
198202
<td class="tableblock halign-left valign-top"><p class="tableblock">Build separate compiled library</p></td>
199203
</tr>

example/CMakeLists.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ if("cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES)
1616
cl_cpp20coro_mqtt_sub.cpp
1717
ep_cpp20coro_mqtt_client.cpp
1818
)
19-
20-
add_subdirectory(separate_client)
21-
add_subdirectory(separate_endpoint)
19+
if(ASYNC_MQTT_BUILD_EXAMPLE_SEPARATE)
20+
add_subdirectory(separate_client)
21+
add_subdirectory(separate_endpoint)
22+
endif()
2223
endif()
2324

2425
if(ASYNC_MQTT_USE_TLS)

0 commit comments

Comments
 (0)