1
- cmake_minimum_required (VERSION 3.16 .0 )
1
+ cmake_minimum_required (VERSION 3.22 .0 )
2
2
3
3
project (
4
4
"AWS IoT Jobs Tests"
@@ -15,6 +15,12 @@ if(NOT DEFINED CMAKE_C_STANDARD_REQUIRED)
15
15
set (CMAKE_C_STANDARD_REQUIRED ON )
16
16
endif ()
17
17
18
+ # If no configuration is defined, turn everything on.
19
+ if ( NOT DEFINED COV_ANALYSIS AND NOT DEFINED UNITTEST )
20
+ set ( COV_ANALYSIS TRUE )
21
+ set ( UNITTEST TRUE )
22
+ endif ()
23
+
18
24
# Do not allow in-source build.
19
25
if (${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR} )
20
26
message (
@@ -30,23 +36,6 @@ set(MODULE_ROOT_DIR
30
36
${__MODULE_ROOT_DIR}
31
37
CACHE INTERNAL "Jobs repository root." )
32
38
33
- # ================================ Coverity Analysis Configuration =================================
34
-
35
- # Include filepaths for source and include.
36
- include ( ${MODULE_ROOT_DIR} /jobsFilePaths.cmake )
37
- # Target for Coverity analysis that builds the library.
38
- add_library ( coverity_analysis
39
- ${JOBS_SOURCES}
40
- ${OTA_HANDLER_SOURCES} )
41
- # JOBS public include path.
42
- target_include_directories ( coverity_analysis PUBLIC ${JOBS_INCLUDE_PUBLIC_DIRS}
43
- ${OTA_HANDLER_INCLUDES} )
44
-
45
- # ==================================================================================================
46
-
47
- # Build HTTP library target without logging
48
- target_compile_options (coverity_analysis PUBLIC -DNDEBUG )
49
-
50
39
include (FetchContent )
51
40
52
41
FetchContent_Declare (
@@ -58,65 +47,89 @@ FetchContent_Declare(
58
47
CoreJSON
59
48
# hash: sha256-r0lJff61NK2rPtO7Wr6RudFNQiLt1D4M30V7/p60Zi0=
60
49
GIT_REPOSITORY https://github.com/FreeRTOS/coreJSON.git
61
- GIT_TAG a0cd6122745a879225bf459dd257e79bdd63d37a )
50
+ GIT_TAG dc1ab9130a1fb99b801a2a1fa8e9f42239f752be )
62
51
63
52
FetchContent_MakeAvailable (CMock CoreJSON )
64
53
65
- add_library (
66
- unity STATIC
67
- "${cmock_SOURCE_DIR} /vendor/unity/src/unity.c"
68
- "${cmock_SOURCE_DIR} /vendor/unity/extras/fixture/src/unity_fixture.c"
69
- "${cmock_SOURCE_DIR} /vendor/unity/extras/memory/src/unity_memory.c" )
70
- target_include_directories (
71
- unity
72
- PUBLIC "${cmock_SOURCE_DIR} /vendor/unity/src"
73
- "${cmock_SOURCE_DIR} /vendor/unity/extras/fixture/src"
74
- "${cmock_SOURCE_DIR} /vendor/unity/extras/memory/src"
75
- "${cmock_SOURCE_DIR} /src" )
76
-
77
- set_target_properties (
78
- unity PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib
79
- POSITION_INDEPENDENT_CODE ON )
80
-
81
- add_library (cmock STATIC )
82
- target_sources (cmock PRIVATE ${cmock_SOURCE_DIR} /src/cmock.c )
83
- target_include_directories (
84
- cmock
85
- PUBLIC "${cmock_SOURCE_DIR} /src"
86
- "${cmock_SOURCE_DIR} /vendor/unity/src/"
87
- "${cmock_SOURCE_DIR} /examples"
88
- "${cmock_SOURCE_DIR} /vendor/unity/extras/fixture/src"
89
- "${cmock_SOURCE_DIR} /vendor/unity/extras/memory/src" )
90
- set_target_properties (
91
- cmock
92
- PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib
93
- POSITION_INDEPENDENT_CODE ON
94
- COMPILE_FLAGS "-Og" )
95
-
96
- # coreJSON
54
+ # Add coreJSON library
97
55
include ("${corejson_SOURCE_DIR} /jsonFilePaths.cmake" )
98
56
add_library (coreJSON ${JSON_SOURCES} )
99
57
target_include_directories (coreJSON PUBLIC ${JSON_INCLUDE_PUBLIC_DIRS} )
100
- target_link_libraries (coverity_analysis PUBLIC coreJSON )
58
+
59
+ # ================================ Coverity Analysis Configuration =================================
60
+
61
+ if ( COV_ANALYSIS )
62
+ # Include filepaths for source and include.
63
+ include ( ${MODULE_ROOT_DIR} /jobsFilePaths.cmake )
64
+ # Target for Coverity analysis that builds the library.
65
+ add_library ( coverity_analysis
66
+ ${JOBS_SOURCES}
67
+ ${OTA_HANDLER_SOURCES} )
68
+ # JOBS public include path.
69
+ target_include_directories ( coverity_analysis PUBLIC ${JOBS_INCLUDE_PUBLIC_DIRS}
70
+ ${OTA_HANDLER_INCLUDES} )
71
+
72
+ target_link_libraries (coverity_analysis PUBLIC coreJSON )
73
+
74
+ # Build HTTP library target without logging
75
+ target_compile_options (coverity_analysis PUBLIC -DNDEBUG )
76
+
77
+ # Remove inclusion of assert.
78
+ add_compile_definitions ( NDEBUG=1 )
79
+ endif ()
80
+
81
+ # ==================================================================================================
82
+ if ( UNITTEST )
83
+ add_library (
84
+ unity STATIC
85
+ "${cmock_SOURCE_DIR} /vendor/unity/src/unity.c"
86
+ "${cmock_SOURCE_DIR} /vendor/unity/extras/fixture/src/unity_fixture.c"
87
+ "${cmock_SOURCE_DIR} /vendor/unity/extras/memory/src/unity_memory.c" )
88
+ target_include_directories (
89
+ unity
90
+ PUBLIC "${cmock_SOURCE_DIR} /vendor/unity/src"
91
+ "${cmock_SOURCE_DIR} /vendor/unity/extras/fixture/src"
92
+ "${cmock_SOURCE_DIR} /vendor/unity/extras/memory/src"
93
+ "${cmock_SOURCE_DIR} /src" )
94
+
95
+ set_target_properties (
96
+ unity PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib
97
+ POSITION_INDEPENDENT_CODE ON )
98
+
99
+ add_library (cmock STATIC )
100
+ target_sources (cmock PRIVATE ${cmock_SOURCE_DIR} /src/cmock.c )
101
+ target_include_directories (
102
+ cmock
103
+ PUBLIC "${cmock_SOURCE_DIR} /src"
104
+ "${cmock_SOURCE_DIR} /vendor/unity/src/"
105
+ "${cmock_SOURCE_DIR} /examples"
106
+ "${cmock_SOURCE_DIR} /vendor/unity/extras/fixture/src"
107
+ "${cmock_SOURCE_DIR} /vendor/unity/extras/memory/src" )
108
+ set_target_properties (
109
+ cmock
110
+ PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib
111
+ POSITION_INDEPENDENT_CODE ON
112
+ COMPILE_FLAGS "-Og" )
101
113
102
114
# ==================================== Test Configuration ========================================
103
115
104
- # Use CTest utility for managing test runs. This has to be added BEFORE defining
105
- # test targets with add_test()
106
- enable_testing ()
116
+ # Use CTest utility for managing test runs. This has to be added BEFORE defining
117
+ # test targets with add_test()
118
+ enable_testing ()
107
119
108
- # Add function to enable CMock based tests and coverage.
109
- include (${MODULE_ROOT_DIR} /tools/cmock/create_test.cmake )
120
+ # Add function to enable CMock based tests and coverage.
121
+ include (${MODULE_ROOT_DIR} /tools/cmock/create_test.cmake )
110
122
111
- # Include build configuration for unit tests.
112
- add_subdirectory (unit-test )
123
+ # Include build configuration for unit tests.
124
+ add_subdirectory (unit-test )
113
125
114
- # ==================================== Coverage Analysis configuration ========================================
126
+ # ==================================== Coverage Analysis configuration ========================================
115
127
116
- # Add a target for running coverage on tests.
117
- add_custom_target (
118
- coverage
119
- COMMAND ${CMAKE_COMMAND} -DCMOCK_DIR=${cmock_SOURCE_DIR} -P
120
- ${MODULE_ROOT_DIR} /tools/cmock/coverage.cmake
121
- DEPENDS cmock unity jobs_utest ota_job_handler_utest job_parser_utest
122
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR} )
128
+ # Add a target for running coverage on tests.
129
+ add_custom_target (
130
+ coverage
131
+ COMMAND ${CMAKE_COMMAND} -DCMOCK_DIR=${cmock_SOURCE_DIR} -P
132
+ ${MODULE_ROOT_DIR} /tools/cmock/coverage.cmake
133
+ DEPENDS cmock unity jobs_utest ota_job_handler_utest job_parser_utest
134
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR} )
135
+ endif ()
0 commit comments