-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathCMakeLists.txt
78 lines (61 loc) · 2.15 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
cmake_minimum_required(VERSION 3.7.0)
project(CPP-CAN-Parser)
include(CTest)
include(GenerateExportHeader)
set(CPPPARSER_INCLUDE_DIRECTORY
${CMAKE_CURRENT_LIST_DIR}/include
)
set(CPPPARSER_INCLUDE_DIRECTORY_PRIVATE
${CMAKE_CURRENT_LIST_DIR}/src/parsing
)
set(CPPPARSER_SRC_FILES
src/models/CANDatabase.cpp
src/models/CANFrame.cpp
src/models/CANSignal.cpp
src/parsing/DBCParser.cpp
src/parsing/ParsingUtils.cpp
src/parsing/Tokenizer.cpp
src/analysis/CANFrameAnalysis.cpp)
set(CPP_CAN_PARSER_COMPILATION_TYPE SHARED)
if(CPP_CAN_PARSER_USE_STATIC)
set(CPP_CAN_PARSER_COMPILATION_TYPE STATIC)
endif()
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS True)
add_library(cpp-can-parser
${CPP_CAN_PARSER_COMPILATION_TYPE}
${CPPPARSER_SRC_FILES})
target_include_directories(cpp-can-parser
PUBLIC ${CPPPARSER_INCLUDE_DIRECTORY}
${CMAKE_CURRENT_BINARY_DIR}/exports/
PRIVATE ${CPPPARSER_INCLUDE_DIRECTORY_PRIVATE})
generate_export_header(cpp-can-parser
BASE_NAME cpp_can_parser
EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/exports/cpp_can_parser_export.h)
install(FILES cpp-can-parser
${CMAKE_CURRENT_BINARY_DIR}/cpp_can_parser_export.h
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include)
add_executable(can-parse
utils/can-parse/can-parse.cpp
utils/can-parse/print-frame.cpp
utils/can-parse/print-single-frame.cpp
utils/can-parse/check-frame.cpp)
target_link_libraries(can-parse cpp-can-parser)
if(BUILD_TESTING)
file(COPY tests/dbc-files/
DESTINATION dbc-files/)
add_executable(cpc-test-parsing
tests/test-parsing.cpp)
target_link_libraries(cpc-test-parsing PUBLIC cpp-can-parser)
add_test(NAME cpc-test-parsing
COMMAND cpc-test-parsing)
add_test(NAME cpc-checkframe-1
COMMAND can-parse checkframe dbc-files/single-frame-1.dbc)
add_test(NAME cpc-checkframe-2
COMMAND can-parse checkframe dbc-files/single-frame-2.dbc)
add_test(NAME cpc-checkframe-big-endian-1
COMMAND can-parse checkframe 294 dbc-files/big-endian-1.dbc)
add_test(NAME cpc-checkframe-big-endian-2
COMMAND can-parse checkframe 1807 dbc-files/big-endian-1.dbc)
add_test(NAME cpc-checkframe-big-endian-3
COMMAND can-parse checkframe 1800 dbc-files/big-endian-1.dbc)
endif()