forked from bacnet-stack/bacnet-stack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
142 lines (132 loc) · 3.86 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# SPDX-License-Identifier: MIT
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
# set the project name
project(Unit_Tests)
# add definitions
add_definitions(-fprofile-arcs -ftest-coverage)
# Set the compiler options
if (NOT MSVC)
add_compile_options(-Wall -g -O0 -W -fprofile-arcs -ftest-coverage)
# ignore some warnings that occur during unit testing
add_compile_options(-Wno-unused-variable -Wno-unused-function)
add_compile_options(-Wno-sign-compare -Wno-unused-parameter)
add_link_options(-fprofile-arcs -ftest-coverage)
endif()
# Create the lcov target. Run result tests with 'make lcov'
add_custom_target(lcov
COMMAND mkdir -p lcoverage
)
add_custom_command(TARGET lcov
COMMAND echo "=================== LCOV ===================="
COMMAND echo "-- Passing lcov tool under code coverage"
COMMAND lcov --capture --directory ../ --output-file lcoverage/main_coverage.info
COMMAND echo "-- Generating HTML output files"
COMMAND genhtml lcoverage/main_coverage.info --output-directory lcoverage
)
#
# add tests
#
list(APPEND testdirs
bacnet/abort
bacnet/alarm_ack
bacnet/arf
bacnet/awf
bacnet/bacapp
bacnet/bacdcode
bacnet/bacdevobjpropref
bacnet/bacerror
bacnet/bacint
bacnet/bacpropstates
bacnet/bacreal
bacnet/bacstr
bacnet/cov
bacnet/datetime
bacnet/dcc
bacnet/event
bacnet/getalarm
bacnet/getevent
bacnet/iam
bacnet/ihave
bacnet/indtext
bacnet/lighting
bacnet/lso
bacnet/memcopy
bacnet/npdu
bacnet/property
bacnet/ptransfer
bacnet/rd
bacnet/reject
bacnet/rp
bacnet/rpm
bacnet/timestamp
bacnet/timesync
bacnet/whohas
bacnet/whois
bacnet/wp
)
# bacnet/basic/*
list(APPEND testdirs
# basic/object/binding
bacnet/basic/binding/address
# basic/object
bacnet/basic/object/acc
bacnet/basic/object/access_credential
bacnet/basic/object/access_door
bacnet/basic/object/access_point
bacnet/basic/object/access_rights
bacnet/basic/object/access_user
bacnet/basic/object/access_zone
bacnet/basic/object/ai
bacnet/basic/object/ao
bacnet/basic/object/av
bacnet/basic/object/bi
bacnet/basic/object/bo
bacnet/basic/object/bv
bacnet/basic/object/command
bacnet/basic/object/credential_data_input
bacnet/basic/object/device
#bacnet/basic/object/lc #Tests skipped, redesign to use only API
bacnet/basic/object/lo
bacnet/basic/object/lsp
bacnet/basic/object/ms-input
bacnet/basic/object/mso
bacnet/basic/object/msv
bacnet/basic/object/netport
bacnet/basic/object/objects
bacnet/basic/object/osv
bacnet/basic/object/piv
bacnet/basic/object/schedule
# basic/sys
bacnet/basic/sys/days
bacnet/basic/sys/fifo
bacnet/basic/sys/filename
bacnet/basic/sys/keylist
bacnet/basic/sys/ringbuf
bacnet/basic/sys/sbuf
)
# bacnet/datalink/*
list(APPEND testdirs
bacnet/datalink/cobs
bacnet/datalink/crc
bacnet/datalink/bvlc
)
enable_testing()
foreach(testdir IN ITEMS ${testdirs})
get_filename_component(basename ${testdir} NAME)
add_subdirectory(${testdir})
add_test(build_${basename}
"${CMAKE_COMMAND}"
--build "${CMAKE_BINARY_DIR}"
--config "$<CONFIG>"
--target test_${basename}
)
add_test(test_${basename} ${testdir}/test_${basename})
set_tests_properties(test_${basename} PROPERTIES FIXTURES_REQUIRED test_fixture)
set_tests_properties(build_${basename} PROPERTIES FIXTURES_SETUP test_fixture)
endforeach()
message(STATUS "BACNET: using cmake:....................\"${CMAKE_VERSION}\"")
message(STATUS "BACNET: CMAKE_C_COMPILER_ID:............\"${CMAKE_C_COMPILER_ID}\"")
message(STATUS "BACNET: CMAKE_C_COMPILER_VERSION:.......\"${CMAKE_C_COMPILER_VERSION}\"")
message(STATUS "BACNET: CMAKE_CXX_COMPILER_ID:..........\"${CMAKE_CXX_COMPILER_ID}\"")
message(STATUS "BACNET: CMAKE_CXX_COMPILER_VERSION:.....\"${CMAKE_CXX_COMPILER_VERSION}\"")
message(STATUS "BACNET: CMAKE_INSTALL_PREFIX:...........\"${CMAKE_INSTALL_PREFIX}\"")