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:${CMAKE_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 ${CMAKE_INSTALL_INCLUDEDIR}/TelepathyLoggerQt
0167     COMPONENT Devel)
0168 
0169 install(TARGETS telepathy-logger-qt
0170         EXPORT  TelepathyLoggerQtTargets
0171         ${INSTALL_TARGETS_DEFAULT_ARGS})