Skip to content

Commit a4295d3

Browse files
apcountrymanmoninom1tony-josi-aws
authored
Avoid compilation issues in consumer projects (FreeRTOS#1139)
* Avoid compilation issues in consumer projects * Improve option name per review feedback --------- Co-authored-by: Monika Singh <[email protected]> Co-authored-by: Tony Josi <[email protected]>
1 parent 0b9a497 commit a4295d3

File tree

6 files changed

+43
-44
lines changed

6 files changed

+43
-44
lines changed

.github/workflows/ci.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ jobs:
170170
# ${{ env.stepName }}
171171
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
172172
173-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL
173+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL
174174
cmake --build build --target freertos_plus_tcp_build_test
175175
176176
echo "::endgroup::"
@@ -183,7 +183,7 @@ jobs:
183183
# ${{ env.stepName }}
184184
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
185185
186-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4
186+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4
187187
cmake --build build --target clean
188188
cmake --build build --target freertos_plus_tcp_build_test
189189
@@ -197,7 +197,7 @@ jobs:
197197
# ${{ env.stepName }}
198198
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
199199
200-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV6
200+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV6
201201
cmake --build build --target freertos_plus_tcp_build_test
202202
203203
echo "::endgroup::"
@@ -210,7 +210,7 @@ jobs:
210210
# ${{ env.stepName }}
211211
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
212212
213-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4_IPV6
213+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4_IPV6
214214
cmake --build build --target clean
215215
cmake --build build --target freertos_plus_tcp_build_test
216216
@@ -224,7 +224,7 @@ jobs:
224224
# ${{ env.stepName }}
225225
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
226226
227-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4_TCP
227+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV4_TCP
228228
cmake --build build --target clean
229229
cmake --build build --target freertos_plus_tcp_build_test
230230
@@ -238,7 +238,7 @@ jobs:
238238
# ${{ env.stepName }}
239239
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
240240
241-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV6_TCP
241+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL_IPV6_TCP
242242
cmake --build build --target freertos_plus_tcp_build_test
243243
244244
echo "::endgroup::"
@@ -251,7 +251,7 @@ jobs:
251251
# ${{ env.stepName }}
252252
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
253253
254-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DISABLE_ALL
254+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DISABLE_ALL
255255
cmake --build build --target clean
256256
cmake --build build --target freertos_plus_tcp_build_test
257257
@@ -265,7 +265,7 @@ jobs:
265265
# ${{ env.stepName }}
266266
echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
267267
268-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DEFAULT_CONF
268+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DEFAULT_CONF
269269
cmake --build build --target clean
270270
cmake --build build --target freertos_plus_tcp_build_test
271271
@@ -276,7 +276,7 @@ jobs:
276276
stepName: Build checks (Header Self Contain)
277277
shell: bash
278278
run: |
279-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=HEADER_SELF_CONTAIN
279+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=HEADER_SELF_CONTAIN
280280
cmake --build build --target clean
281281
cmake --build build --target freertos_plus_tcp_build_test_FreeRTOS_DHCP
282282
cmake --build build --target freertos_plus_tcp_build_test_FreeRTOS_DNS

CMakeLists.txt

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ endif()
2020

2121
# Options
2222
option(FREERTOS_PLUS_TCP_BUILD_TEST "Build the test for FreeRTOS Plus TCP" OFF)
23+
option(FREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS "Enable the build checks for FreeRTOS-Plus-TCP" OFF)
2324

2425
# Configuration
2526
# Override these at project level with:
@@ -149,32 +150,6 @@ endif()
149150
# There is also the need to add a target - typically an interface library that describes the
150151
# Configuration for FreeRTOS-Kernel and FreeRTOS-Plus-TCP.
151152
# This is called freertos_config
152-
# If not defined will be default compile with one of the test build combinations AllEnable.
153-
154-
# Select the appropriate Build Test configuration
155-
# This is only used when freertos_config is not defined, otherwise the build test will be performed
156-
# on the config defined in the freertos_config
157-
set(FREERTOS_PLUS_TCP_TEST_CONFIGURATION "CUSTOM" CACHE STRING "FreeRTOS Plus TCP Build Test configuration")
158-
set(FREERTOS_PLUS_TCP_TEST_CONFIGURATION_LIST
159-
CUSTOM # Custom (external) configuration -eg from a top-level project
160-
ENABLE_ALL # Enable all configuration settings
161-
ENABLE_ALL_IPV4 # Enable all configuration settings IPv4 UDP
162-
ENABLE_ALL_IPV6 # Enable all configuration settings IPv6 UDP
163-
ENABLE_ALL_IPV4_TCP # Enable all configuration settings IPv4 TCP
164-
ENABLE_ALL_IPV6_TCP # Enable all configuration settings IPv6 TCP
165-
ENABLE_ALL_IPV4_IPV6 # Enable all configuration settings IPv4 IPv6 UDP
166-
DISABLE_ALL # Disable all configuration settings
167-
HEADER_SELF_CONTAIN # Enable header self contain test
168-
DEFAULT_CONF # Default (typical) configuration
169-
)
170-
if(NOT FREERTOS_PLUS_TCP_TEST_CONFIGURATION IN_LIST FREERTOS_PLUS_TCP_TEST_CONFIGURATION_LIST)
171-
message(FATAL_ERROR "Invalid FREERTOS_PLUS_TCP_TEST_CONFIGURATION value '${FREERTOS_PLUS_TCP_TEST_CONFIGURATION}' should be one of: ${FREERTOS_PLUS_TCP_TEST_CONFIGURATION_LIST}")
172-
else()
173-
message(STATUS "Using FreeRTOS-Plus-TCP Test Configuration : ${FREERTOS_PLUS_TCP_TEST_CONFIGURATION}")
174-
if (NOT FREERTOS_PLUS_TCP_TEST_CONFIGURATION STREQUAL "CUSTOM")
175-
message(WARNING "FreeRTOS-Kernel configuration settings are configured by FreeRTOS-Plus-TCP")
176-
endif()
177-
endif()
178153

179154
########################################################################
180155
# External Dependencies

source/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
add_library( freertos_plus_tcp STATIC )
22

3-
set_property(TARGET freertos_plus_tcp PROPERTY C_STANDARD 90)
4-
53
target_sources( freertos_plus_tcp
64
PRIVATE
75
include/FreeRTOS_ARP.h

test/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
add_subdirectory(build-combination)
1+
if(FREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS)
2+
add_subdirectory(build-combination)
3+
endif()
24

35
if(FREERTOS_PLUS_TCP_BUILD_TEST)
46
add_subdirectory(Coverity)

test/build-combination/CMakeLists.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
# Select the appropriate Build Test configuration
2+
set(FREERTOS_PLUS_TCP_TEST_CONFIGURATION "CUSTOM" CACHE STRING "FreeRTOS Plus TCP Build Test configuration")
3+
set(FREERTOS_PLUS_TCP_TEST_CONFIGURATION_LIST
4+
CUSTOM # Custom (external) configuration -eg from a top-level project
5+
ENABLE_ALL # Enable all configuration settings
6+
ENABLE_ALL_IPV4 # Enable all configuration settings IPv4 UDP
7+
ENABLE_ALL_IPV6 # Enable all configuration settings IPv6 UDP
8+
ENABLE_ALL_IPV4_TCP # Enable all configuration settings IPv4 TCP
9+
ENABLE_ALL_IPV6_TCP # Enable all configuration settings IPv6 TCP
10+
ENABLE_ALL_IPV4_IPV6 # Enable all configuration settings IPv4 IPv6 UDP
11+
DISABLE_ALL # Disable all configuration settings
12+
HEADER_SELF_CONTAIN # Enable header self contain test
13+
DEFAULT_CONF # Default (typical) configuration
14+
)
15+
if(NOT FREERTOS_PLUS_TCP_TEST_CONFIGURATION IN_LIST FREERTOS_PLUS_TCP_TEST_CONFIGURATION_LIST)
16+
message(FATAL_ERROR "Invalid FREERTOS_PLUS_TCP_TEST_CONFIGURATION value '${FREERTOS_PLUS_TCP_TEST_CONFIGURATION}' should be one of: ${FREERTOS_PLUS_TCP_TEST_CONFIGURATION_LIST}")
17+
else()
18+
message(STATUS "Using FreeRTOS-Plus-TCP Test Configuration : ${FREERTOS_PLUS_TCP_TEST_CONFIGURATION}")
19+
if (NOT FREERTOS_PLUS_TCP_TEST_CONFIGURATION STREQUAL "CUSTOM")
20+
message(WARNING "FreeRTOS-Kernel configuration settings are configured by FreeRTOS-Plus-TCP")
21+
endif()
22+
endif()
23+
124
add_library( freertos_plus_tcp_config_common INTERFACE )
225
target_include_directories(freertos_plus_tcp_config_common INTERFACE Common )
326

@@ -75,6 +98,7 @@ else()
7598
endif()
7699

77100
# FreeRTOS-Plus-TCP compilation options configuration
101+
set_property(TARGET freertos_plus_tcp PROPERTY C_STANDARD 90)
78102
target_compile_options(freertos_plus_tcp
79103
PRIVATE
80104

test/build-combination/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ All the CMake commands are to be run from the root of the repository.
99

1010
* Build checks (Enable all functionalities)
1111
```
12-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL
12+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL
1313
cmake --build build --target freertos_plus_tcp_build_test
1414
```
1515

1616
* Build checks (Disable all functionalities)
1717
```
18-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DISABLE_ALL
18+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DISABLE_ALL
1919
cmake --build build --target freertos_plus_tcp_build_test
2020
```
2121

2222
* Build checks (Default configuration)
2323
```
24-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DEFAULT_CONF
24+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=DEFAULT_CONF
2525
cmake --build build --target freertos_plus_tcp_build_test
2626
```
2727

@@ -31,21 +31,21 @@ All the CMake commands are to be run from the root of the repository.
3131

3232
* Build checks (Enable all functionalities)
3333
```
34-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL -DCMAKE_GENERATOR_PLATFORM=Win32
34+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL -DCMAKE_GENERATOR_PLATFORM=Win32
3535
```
3636
Open the generated Visual Studio Solution file `test\build-combination\build\FreeRTOS-Plus-TCP Build Combination.sln`
3737
in Visual Studio and click `Build --> Build Solution`.
3838

3939
* Build checks (Disable all functionalities)
4040
```
41-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL -DCMAKE_GENERATOR_PLATFORM=Win32
41+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL -DCMAKE_GENERATOR_PLATFORM=Win32
4242
```
4343
Open the generated Visual Studio Solution file `test\build-combination\build\FreeRTOS-Plus-TCP Build Combination.sln`
4444
in Visual Studio and click `Build --> Build Solution`.
4545

4646
* Build checks (Default configuration)
4747
```
48-
cmake -S . -B build -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL -DCMAKE_GENERATOR_PLATFORM=Win32
48+
cmake -S . -B build -DFREERTOS_PLUS_TCP_ENABLE_BUILD_CHECKS=ON -DFREERTOS_PLUS_TCP_TEST_CONFIGURATION=ENABLE_ALL -DCMAKE_GENERATOR_PLATFORM=Win32
4949
```
5050
Open the generated Visual Studio Solution file `test\build-combination\build\FreeRTOS-Plus-TCP Build Combination.sln`
5151
in Visual Studio and click `Build --> Build Solution`.

0 commit comments

Comments
 (0)