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
|
set(EXPORT_FILE_NAME UserMetricsInputExport.h)
FILE(
GLOB USERMETRICSINPUT_PUBLIC_HEADERS
RELATIVE "${INCLUDE_DIR}/libusermetricsinput"
"${INCLUDE_DIR}/libusermetricsinput/*.h"
)
list(
APPEND USERMETRICSINPUT_PUBLIC_HEADERS
"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_FILE_NAME}"
)
set(USERMETRICSINPUT_SOURCES
Metric.cpp
MetricImpl.cpp
MetricManager.cpp
MetricManagerImpl.cpp
MetricUpdate.cpp
MetricUpdateImpl.cpp
usermetricsinput.cpp
)
set(USERMETRICS_INPUT_DEPENDENCIES
Core
DBus
)
# Static library version of libusermetricsinput
add_library(
usermetricsinput-static
STATIC
${USERMETRICSINPUT_SOURCES}
)
qt5_use_modules(
usermetricsinput-static
${USERMETRICS_INPUT_DEPENDENCIES}
)
target_link_libraries(
usermetricsinput-static
usermetricscommon
)
set_target_properties(
usermetricsinput-static
PROPERTIES
INPUT_NAME usermetricsinput
)
# Shared library version of libusermetricsinput
add_library(
usermetricsinput
SHARED
${USERMETRICSINPUT_SOURCES}
)
generate_export_header(
usermetricsinput
EXPORT_FILE_NAME ${EXPORT_FILE_NAME}
)
configure_file(
"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_FILE_NAME}"
"${INCLUDE_BINARY_DIR}/libusermetricsinput/${EXPORT_FILE_NAME}"
)
qt5_use_modules(
usermetricsinput
${USERMETRICS_INPUT_DEPENDENCIES}
)
target_link_libraries(
usermetricsinput
usermetricscommon
)
set_target_properties(
usermetricsinput
PROPERTIES
VERSION ${API_VERSION}.0.0
SOVERSION ${ABI_VERSION}
PUBLIC_HEADER "${USERMETRICSINPUT_PUBLIC_HEADERS}"
)
install(
TARGETS usermetricsinput
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libusermetrics-${API_VERSION}/libusermetricsinput"
)
# Package config
set(LIBUSERMETRICSINPUT_PC "libusermetricsinput-${API_VERSION}.pc")
configure_file("libusermetricsinput.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/${LIBUSERMETRICSINPUT_PC}" @ONLY)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/${LIBUSERMETRICSINPUT_PC}"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
)
##########################
# Command line interface
##########################
add_executable(
usermetricsinput-bin
main.cpp
)
set_target_properties(
usermetricsinput-bin
PROPERTIES
OUTPUT_NAME "usermetricsinput"
)
install(
TARGETS usermetricsinput-bin
RUNTIME DESTINATION bin
)
target_link_libraries(
usermetricsinput-bin
usermetricsinput
)
|