Warning, /network/telepathy-logger-qt/TelepathyLoggerQt/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 include(TpQtMacros)
0002 include(TpLoggerQtMacros)
0003
0004 file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/_gen")
0005
0006 # Sources for Tp-Logger-Qt
0007 set(telepathy_logger_qt_SRCS
0008 call-event.cpp
0009 entity.cpp
0010 event.cpp
0011 log-manager.cpp
0012 log-walker.cpp
0013 pending-dates.cpp
0014 pending-entities.cpp
0015 pending-events.cpp
0016 pending-clear.cpp
0017 pending-operation.cpp
0018 pending-search.cpp
0019 pending-log-walker-operation.cpp
0020 search-hit.cpp
0021 text-event.cpp
0022 utils.cpp
0023 init.cpp
0024 object.cpp
0025 )
0026
0027
0028 ####################### Codegen #######################
0029
0030 # The escape character in MSVC is ^
0031 if(MSVC)
0032 set(TYPES_INCLUDE ^"types.h^" )
0033 set(GLOBAL_INCLUDE ^"global.h^" )
0034 set(LOGGER_EXTRA_INCLUDES ^"types.h^" )
0035 else(MSVC)
0036 set(TYPES_INCLUDE '\"types.h\"' )
0037 set(GLOBAL_INCLUDE '\"global.h\"' )
0038 set(LOGGER_EXTRA_INCLUDES '\"types.h\"' )
0039 endif(MSVC)
0040
0041
0042 add_custom_target(all-generated-sources)
0043
0044 # Generate stable spec
0045 set(gen_stable_spec_xml ${CMAKE_CURRENT_BINARY_DIR}/_gen/stable-spec.xml)
0046 tpqt_xincludator(stable-ifaces-includator ${CMAKE_CURRENT_SOURCE_DIR}/stable-interfaces.xml
0047 ${gen_stable_spec_xml})
0048 tpqt_constants_gen(stable-constants ${gen_stable_spec_xml} ${CMAKE_CURRENT_BINARY_DIR}/_gen/constants.h
0049 --namespace=Tpl
0050 --define-prefix=TP_LOGGER_QT_
0051 DEPENDS stable-ifaces-includator
0052 )
0053 tpqt_types_gen(stable-typesgen ${gen_stable_spec_xml}
0054 ${CMAKE_CURRENT_BINARY_DIR}/_gen/types.h ${CMAKE_CURRENT_BINARY_DIR}/_gen/types-body.hpp
0055 Tpl TelepathyLoggerQt/types.h TelepathyLoggerQt/Types
0056 --must-define=
0057 --visibility=TELEPATHY_LOGGER_QT_EXPORT
0058 --extraincludes=${GLOBAL_INCLUDE}
0059 DEPENDS stable-constants
0060 )
0061
0062 # Generate logger spec
0063 tpqt_xincludator(logger-ifaces-includator ${CMAKE_CURRENT_SOURCE_DIR}/logger.xml
0064 ${CMAKE_CURRENT_BINARY_DIR}/_gen/spec-logger.xml
0065 DEPENDS stable-typesgen
0066 )
0067 # define generate_cli-logger-body target
0068 tpqt_client_generator(logger clientlogger log-manager.h Tpl
0069 --typesnamespace=Tpl
0070 --realinclude=log-manager.h
0071 --prettyinclude=
0072 --must-define=
0073 --visibility=TELEPATHY_LOGGER_QT_EXPORT
0074 DEPENDS logger-ifaces-includator
0075 )
0076
0077 set(telepathy_logger_qt_GEN_HEADERS
0078 ${CMAKE_CURRENT_BINARY_DIR}/_gen/types.h
0079 ${CMAKE_CURRENT_BINARY_DIR}/_gen/cli-logger.h
0080 )
0081
0082 # Run moc on the newly generated files
0083 qt5_wrap_cpp(telepathy_logger_qt_SRCS ${telepathy_logger_qt_GEN_HEADERS})
0084
0085 ################# Add target ##########################
0086
0087 add_library(telepathy-logger-qt SHARED
0088 ${telepathy_logger_qt_SRCS}
0089 )
0090 add_dependencies(telepathy-logger-qt generate_cli-logger-body)
0091
0092 generate_export_header(telepathy-logger-qt EXPORT_FILE_NAME TelepathyLoggerQt_export.h)
0093
0094 # Link
0095 target_link_libraries(telepathy-logger-qt
0096 LINK_PUBLIC
0097 Qt5::Core
0098 Qt5::DBus
0099 ${TELEPATHY_QT5_LIBRARIES}
0100 LINK_PRIVATE
0101 ${GLIB2_LIBRARIES}
0102 ${GOBJECT_LIBRARIES}
0103 -lgio-2.0
0104 ${QT_QTDBUS_LIBRARY}
0105 ${TELEPATHY_GLIB_LIBRARIES}
0106 ${TELEPATHY_LOGGER_LIBRARIES}
0107 )
0108
0109 if (ENABLE_COMPILER_COVERAGE)
0110 target_link_libraries(telepathy-logger-qt gcov)
0111 endif (ENABLE_COMPILER_COVERAGE)
0112
0113
0114 target_include_directories(telepathy-logger-qt PRIVATE
0115 $<BUILD_INTERFACE:${TelepathyLoggerQt_SOURCE_DIR}>
0116 $<BUILD_INTERFACE:${TelepathyLoggerQt_BINARY_DIR}>
0117 ${GLIB2_INCLUDE_DIR}
0118 ${DBUS_GLIB_INCLUDE_DIR}
0119 ${TELEPATHY_GLIB_INCLUDE_DIR}
0120 ${TELEPATHY_QT5_INCLUDE_DIR}
0121 ${TELEPATHY_LOGGER_INCLUDE_DIR}
0122 )
0123 target_include_directories(telepathy-logger-qt INTERFACE
0124 $<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/TelepathyLoggerQt>
0125 ${GLIB2_INCLUDE_DIR}
0126 ${TELEPATHY_QT5_INCLUDE_DIR}
0127 )
0128
0129
0130 set(TELEPATHY_LOGGER_QT_DEFINITIONS "-fexceptions")
0131 target_compile_options(telepathy-logger-qt INTERFACE $<INSTALL_INTERFACE:${TELEPATHY_LOGGER_QT_DEFINITIONS}>)
0132
0133
0134 # Set the correct version number
0135 set_target_properties(telepathy-logger-qt PROPERTIES
0136 SOVERSION ${TelepathyLoggerQt_SOVERSION}
0137 VERSION ${TelepathyLoggerQt_VERSION_STRING}
0138 EXPORT_NAME TelepathyLoggerQt
0139 )
0140
0141 tplqt_generate_headers(TelepathyLoggerQt_CamelCase_HEADERS
0142 HEADER_NAMES
0143 CallEvent
0144 Entity
0145 Event
0146 Global
0147 Init
0148 LogManager
0149 LogWalker
0150 Object
0151 PendingDates
0152 PendingEntities
0153 PendingEvents
0154 PendingOperation
0155 PendingSearch
0156 SearchHit
0157 TextEvent
0158 Types
0159 REQUIRED_HEADERS TelepathyLoggerQt_HEADERS
0160 )
0161
0162 install(FILES
0163 ${TelepathyLoggerQt_HEADERS}
0164 ${TelepathyLoggerQt_CamelCase_HEADERS}
0165 "${CMAKE_CURRENT_BINARY_DIR}/TelepathyLoggerQt_export.h"
0166 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/TelepathyLoggerQt
0167 COMPONENT Devel)
0168
0169 install(TARGETS telepathy-logger-qt
0170 EXPORT TelepathyLoggerQtTargets
0171 ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})