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
|
project(indicator-network C CXX)
cmake_minimum_required(VERSION 2.8.9)
string(TOLOWER "${CMAKE_BUILD_TYPE}" build_type_lower)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
find_package(PkgConfig REQUIRED)
include(EnableCoverageReport)
include(GNUInstallDirs)
include(UseGSettings)
set(GETTEXT_PACKAGE indicator-network)
set(LOCALE_DIR "${CMAKE_INSTALL_FULL_DATADIR}/locale")
# Workaround for libexecdir on debian
if (EXISTS "/etc/debian_version")
set(CMAKE_INSTALL_LIBEXECDIR ${CMAKE_INSTALL_LIBDIR})
set(CMAKE_INSTALL_FULL_LIBEXECDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}")
endif()
set(DATA_DIR "${CMAKE_SOURCE_DIR}/data")
set(GLIB_REQUIRED_VERSION 2.26)
pkg_check_modules(
GLIB REQUIRED
glib-2.0>=${GLIB_REQUIRED_VERSION}
gio-2.0>=${GLIB_REQUIRED_VERSION}
url-dispatcher-1
)
include_directories(${GLIB_INCLUDE_DIRS})
set(NM_REQUIRED_VERSION 0.9)
pkg_check_modules(
NM REQUIRED
libnm-glib>=${NM_REQUIRED_VERSION}
libnm-util>=${NM_REQUIRED_VERSION}
)
include_directories(${NM_INCLUDE_DIRS})
set(OFONO_REQUIRED_VERSION 1.12)
pkg_check_modules(
OFONO REQUIRED
ofono>=${OFONO_REQUIRED_VERSION}
)
include_directories(${OFONO_INCLUDE_DIRS})
set(NOTIFY_REQUIRED_VERSION 0.7.5)
pkg_check_modules(
NOTIFY REQUIRED
libnotify>=${NOTIFY_REQUIRED_VERSION}
)
include_directories(${NOTIFY_INCLUDE_DIRS})
find_package(Qt5Core REQUIRED)
include_directories(${Qt5Core_INCLUDE_DIRS})
find_package(Qt5DBus COMPONENTS Qt5DBusMacros REQUIRED)
include_directories(${Qt5DBus_INCLUDE_DIRS})
find_package(Qt5Test REQUIRED)
include_directories(${Qt5Test_INCLUDE_DIRS})
pkg_check_modules(NM REQUIRED NetworkManager REQUIRED)
include_directories(${NM_INCLUDE_DIRS})
pkg_check_modules(QTDBUSTEST REQUIRED libqtdbustest-1 REQUIRED)
include_directories(${QTDBUSTEST_INCLUDE_DIRS})
pkg_check_modules(QTDBUSMOCK REQUIRED libqtdbusmock-1 REQUIRED)
include_directories(${QTDBUSMOCK_INCLUDE_DIRS})
pkg_check_modules(QMENUMODEL REQUIRED qmenumodel REQUIRED)
include_directories(${QMENUMODEL_INCLUDE_DIRS})
pkg_check_modules(GIO REQUIRED gio-2.0>=${GLIB_REQUIRED_VERSION})
include_directories(${GIO_INCLUDE_DIRS})
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(GObjectIntrospection 0.9.12)
include_directories(${CMAKE_BINARY_DIR})
set(COMMON_FLAGS "-Wall -Wextra -Wpedantic -fno-permissive -fPIC -fvisibility=hidden -pthread")
if(NOT build_type_lower MATCHES debug)
set(COMMON_FLAGS "${COMMON_FLAGS} -Werror")
endif()
# "nice bug" in cmake... http://www.cmake.org/Bug/view.php?id=15058
# let's not set C_FLAGS as it will break pthreads detection \o/
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 ${COMMON_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ${COMMON_FLAGS} -fno-strict-aliasing -fvisibility-inlines-hidden")
configure_file(
"config.h.in"
"config.h"
)
#####################################################################
# Enable code coverage calculation with gcov/gcovr/lcov
# Usage:
# * Switch build type to coverage (use ccmake or cmake-gui)
# * Invoke make, make test, make coverage
# * Find html report in subdir coveragereport
# * Find xml report feasible for jenkins in coverage.xml
#####################################################################
IF(build_type_lower MATCHES coverage)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs" )
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage -fprofile-arcs" )
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -ftest-coverage -fprofile-arcs" )
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -ftest-coverage -fprofile-arcs" )
ENDIF()
add_subdirectory(data)
add_subdirectory(src)
add_subdirectory(po)
enable_testing()
add_subdirectory(tests)
ADD_CUSTOM_TARGET(
check
${CMAKE_CTEST_COMMAND} --force-new-ctest-process --output-on-failure
)
enable_coverage_report(TARGETS menumodel_cpp connectivity-cpp indicator-secret-agent
FILTER ${CMAKE_SOURCE_DIR}/tests/* ${CMAKE_BINARY_DIR}/*)
|