blob: 3f0be285773359ba556fce80833301306420936b (
plain)
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/_gen")
# Set the required flags found in TelepathyDefaults
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${VISIBILITY_HIDDEN_FLAGS} ${COMPILER_COVERAGE_FLAGS} ${DEPRECATED_DECLARATIONS_FLAGS}")
set(LD_FLAGS "${LD_FLAGS} ${VISIBILITY_HIDDEN_FLAGS} ${COMPILER_COVERAGE_FLAGS} ${DEPRECATED_DECLARATIONS_FLAGS}")
# We are building telepathy-qt4-yell
add_definitions(-DBUILDING_TELEPATHY_QT4_YELL)
# Sources for Tp-Qt4
set(telepathy_qt4_yell_SRCS
call-channel.cpp
call-channel-internal.h
channel.cpp
channel-class-spec.cpp
channel-factory.cpp
contact-capabilities.cpp
requestable-channel-class-spec.cpp
types.cpp)
# Exported headers for Tp-Qt4
set(telepathy_qt4_yell_HEADERS
CallChannel
CallContent
CallStream
Channel
ChannelClassSpec
ChannelFactory
ChannelInterfaceCredentialsStorageInterface
Constants
ContactCapabilities
Global
PendingCallContent
RequestableChannelClassSpec
Types
call-channel.h
channel.h
channel-class-spec.h
channel-factory.h
constants.h
contact-capabilities.h
global.h
requestable-channel-class-spec.h
types.h)
# Headers file moc will be run on
set(telepathy_qt4_yell_MOC_SRCS
call-channel.h
call-channel-internal.h
channel.h)
# Generated headers which will be installed and exported
set(telepathy_qt4_yell_gen_HEADERS
${CMAKE_CURRENT_BINARY_DIR}/_gen/cli-channel.h
${CMAKE_CURRENT_BINARY_DIR}/_gen/constants.h
${CMAKE_CURRENT_BINARY_DIR}/_gen/types.h)
# The escape character in MSVC is ^
if(MSVC)
set(TYPES_INCLUDE ^<TelepathyQt4Yell/Types^> )
set(GLOBAL_INCLUDE ^<TelepathyQt4Yell/Global^> )
set(CHANNEL_EXTRA_INCLUDES '^<TelepathyQt4Yell/Types^>,^<TelepathyQt4/Channel^>' )
else(MSVC)
set(TYPES_INCLUDE '<TelepathyQt4Yell/Types>' )
set(GLOBAL_INCLUDE '<TelepathyQt4Yell/Global>' )
set(CHANNEL_EXTRA_INCLUDES '<TelepathyQt4Yell/Types>,<TelepathyQt4/Channel>' )
endif(MSVC)
# Generate the spec files
set(gen_stable_spec_xml ${CMAKE_CURRENT_BINARY_DIR}/_gen/stable-spec.xml)
tpqt4_xincludator(stable-ifaces-includator ${CMAKE_CURRENT_SOURCE_DIR}/stable-interfaces.xml ${gen_stable_spec_xml})
tpqt4_constants_gen(stable-constants ${gen_stable_spec_xml} ${CMAKE_CURRENT_BINARY_DIR}/_gen/constants.h
--namespace=Tpy
--define-prefix=TP_QT4_YELL_
--must-define=IN_TELEPATHY_QT4_YELL_HEADER
DEPENDS stable-ifaces-includator)
tpqt4_types_gen(stable-typesgen ${gen_stable_spec_xml}
${CMAKE_CURRENT_BINARY_DIR}/_gen/types.h ${CMAKE_CURRENT_BINARY_DIR}/_gen/types-body.hpp
Tpy TelepathyQt4Yell/types.h TelepathyQt4Yell/Types
--must-define=IN_TELEPATHY_QT4_YELL_HEADER
--visibility=TELEPATHY_QT4_YELL_EXPORT
--extraincludes=${GLOBAL_INCLUDE}
DEPENDS stable-constants)
# Add the generated types to the library's sources
list(APPEND telepathy_qt4_yell_SRCS ${CMAKE_CURRENT_BINARY_DIR}/_gen/types.h)
list(APPEND telepathy_qt4_yell_SRCS ${CMAKE_CURRENT_BINARY_DIR}/_gen/types-body.hpp)
# For each spec, generate a cli file and add it to the sources (including mocs).
set(SPECS
channel)
foreach(spec ${SPECS})
tpqt4_xincludator(${spec}-spec-xincludator ${CMAKE_CURRENT_SOURCE_DIR}/${spec}.xml ${CMAKE_CURRENT_BINARY_DIR}/_gen/spec-${spec}.xml
DEPENDS stable-typesgen)
set(NEW_FILES
${CMAKE_CURRENT_BINARY_DIR}/_gen/cli-${spec}-body.hpp
${CMAKE_CURRENT_BINARY_DIR}/_gen/cli-${spec}.moc.hpp)
list(APPEND telepathy_qt4_yell_SRCS ${NEW_FILES})
list(APPEND telepathy_qt4_yell_generated_specs_mocs "moc-cli-${spec}.moc.hpp")
set_source_files_properties(${NEW_FILES} PROPERTIES GENERATED true)
endforeach(spec ${SPECS})
# Use the client generator for generating headers out of specs
tpqt4_client_generator(${gen_stable_spec_xml} channel clientchannel TelepathyQt4Yell/channel.h TelepathyQt4Yell/Channel Tpy::Client Tpy IN_TELEPATHY_QT4_YELL_HEADER TELEPATHY_QT4_YELL_EXPORT --mainiface=Tp::Client::ChannelInterface --extraincludes=${CHANNEL_EXTRA_INCLUDES} DEPENDS channel-spec-xincludator)
# Create the library
add_library(telepathy-qt4-yell STATIC ${telepathy_qt4_yell_SRCS})
# generate client moc files
foreach(moc_src ${telepathy_qt4_yell_MOC_SRCS})
set(generated_file _gen/${moc_src})
string(REPLACE ".h" ".moc.hpp" generated_file ${generated_file})
tpqt4_generate_moc_i_target_deps(${CMAKE_CURRENT_SOURCE_DIR}/${moc_src} ${CMAKE_CURRENT_BINARY_DIR}/${generated_file}
${telepathy_qt4_yell_generated_specs_mocs})
list(APPEND telepathy_qt4_yell_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${generated_file})
string(REPLACE ".h" ".moc.hpp" moc_src ${moc_src})
add_dependencies(telepathy-qt4-yell "moc-${moc_src}")
endforeach(moc_src ${telepathy_qt4_yell_MOC_SRCS})
# Link
target_link_libraries(telepathy-qt4-yell
${QT_QTCORE_LIBRARY}
${QT_QTDBUS_LIBRARY}
${TELEPATHY_QT4_LIBRARIES})
if (ENABLE_COMPILER_COVERAGE)
target_link_libraries(telepathy-qt4-yell gcov)
endif (ENABLE_COMPILER_COVERAGE)
# Set the correct version number
set_target_properties(telepathy-qt4-yell PROPERTIES
SOVERSION ${TP_QT4_YELL_ABI_VERSION}
VERSION ${TP_QT4_YELL_LIBRARY_VERSION})
# Install header files
install(FILES ${telepathy_qt4_yell_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/telepathy-1.0/TelepathyQt4Yell COMPONENT headers)
install(FILES ${telepathy_qt4_yell_gen_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/telepathy-1.0/TelepathyQt4Yell/_gen COMPONENT headers)
# Install the library - watch out for the correct components
if (WIN32)
install(TARGETS telepathy-qt4-yell RUNTIME DESTINATION ${LIB_INSTALL_DIR} COMPONENT mainlibrary
ARCHIVE DESTINATION ${LIB_INSTALL_DIR} COMPONENT headers)
else (WIN32)
install(TARGETS telepathy-qt4-yell LIBRARY DESTINATION ${LIB_INSTALL_DIR} COMPONENT mainlibrary
ARCHIVE DESTINATION ${LIB_INSTALL_DIR} COMPONENT headers)
endif (WIN32)
# pkg-config file
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/TelepathyQt4Yell.pc.in ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt4Yell.pc)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/TelepathyQt4Yell-uninstalled.pc.in ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt4Yell-uninstalled.pc)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt4Yell.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig COMPONENT headers)
add_subdirectory(Models)
# If Farstream was found, install its pkg-config files as well, and go into the subdirectory
if(FARSTREAM_COMPONENTS_FOUND)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/TelepathyQt4YellFarstream.pc.in ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt4YellFarstream.pc)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/TelepathyQt4YellFarstream-uninstalled.pc.in ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt4YellFarstream-uninstalled.pc)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TelepathyQt4YellFarstream.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig COMPONENT farstream_headers)
endif(FARSTREAM_COMPONENTS_FOUND)
add_subdirectory(Farstream)
|