-
Notifications
You must be signed in to change notification settings - Fork 1
/
CMakeLists.txt
117 lines (95 loc) · 2.53 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
cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
project(AmurClient VERSION 0.88 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
get_directory_property(IS_SUBPROJECT PARENT_DIRECTORY)
option(AMURCLIENT_TESTING "Enable unit testing" ON)
#option(AMURCLIENT_COVERAGE "Enable counting tests coverage" OFF)
# Load tests
if(AMURCLIENT_TESTING)
enable_testing()
add_subdirectory(tests)
endif()
if(NOT IS_SUBPROJECT)
find_package(Doxygen)
message(STATUS "Doxygen ${DOXYGEN_FOUND} - version ${DOXYGEN_VERSION} ")
message(STATUS "Doxygen dot ${DOXYGEN_DOT_FOUND}")
# add_subdirectory(doc)
if (Doxygen_FOUND)
if (NOT MYLIB_DOXYGEN_LANGUAGE)
set(MYLIB_DOXYGEN_LANGUAGE Russian)
endif()
message(STATUS "Doxygen documentation will be generated in ${MYLIB_DOXYGEN_LANGUAGE}")
add_custom_target(doc COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
endif ()
endif()
add_compile_options(
# -Werror
-Wall
-Wextra
-Wpedantic
-Wcast-align
-Wcast-qual
# -Wconversion
-Wsign-conversion
# -Wsign-promo
-Wdisabled-optimization
-Wctor-dtor-privacy
-Wformat=2
-Winit-self
-Wlogical-op
-Wmissing-declarations
-Wmissing-include-dirs
-Wnoexcept
# -Wshadow
-Wenum-compare
-Wfloat-equal
-Wnon-virtual-dtor
-Wold-style-cast
-Woverloaded-virtual
-Wredundant-decls
-Wstrict-null-sentinel
-Wstrict-overflow=5
-Wswitch-default
-Wundef
-Wno-unused
)
if(NOT CMAKE_CXX_EXTENSIONS)
set(CMAKE_CXX_EXTENSIONS OFF)
endif()
# Copy config from source to build
configure_file(
amur.cfg.in
amur.cfg
)
add_subdirectory(system)
add_subdirectory(network)
add_subdirectory(modules)
add_subdirectory(timer)
add_subdirectory(config)
#add_subdirectory(logic)
include_directories(
# ${GTEST_INCLUDE_DIRS}
)
set(LOGIC_CONTROLLER
logiccontroller.cpp
logiccontroller.h
)
set(CONFIG_PROCESSOR
config/configprocessor.h
config/configprocessor.cpp
)
add_executable(AmurClient AmurClient.cpp
${LOGIC_CONTROLLER}
${CONFIG_PROCESSOR}
)
target_link_libraries(AmurClient
NetworkController
TimerCallback
PeripheralController
# ${GTEST_LIBRARIES}
)
if(libСonfig_LIB)
target_link_libraries(AmurClient config++)
endif()
#add_test(TestAmurClient "./TestAmurClient")