Implement a metrics daemon to expose Prometheus metrics
[quassel.git] / src / core / CMakeLists.txt
index 265ac0d..230f370 100644 (file)
@@ -1,9 +1,8 @@
-# Builds the core module
+quassel_add_module(Core EXPORT)
 
-setup_qt_variables(Network Sql Script)
-
-set(SOURCES
+target_sources(${TARGET} PRIVATE
     abstractsqlstorage.cpp
+    authenticator.cpp
     core.cpp
     corealiasmanager.cpp
     coreapplication.cpp
@@ -13,7 +12,8 @@ set(SOURCES
     corebuffersyncer.cpp
     corebufferviewconfig.cpp
     corebufferviewmanager.cpp
-    corecoreinfo.cpp
+    coredccconfig.cpp
+    corehighlightrulemanager.cpp
     coreidentity.cpp
     coreignorelistmanager.cpp
     coreircchannel.cpp
@@ -24,81 +24,55 @@ set(SOURCES
     coresession.cpp
     coresessioneventprocessor.cpp
     coresettings.cpp
+    coretransfer.cpp
     coretransfermanager.cpp
     coreuserinputhandler.cpp
     coreusersettings.cpp
     ctcpparser.cpp
     eventstringifier.cpp
+    identserver.cpp
     ircparser.cpp
+    metricsserver.cpp
     netsplit.cpp
     oidentdconfiggenerator.cpp
     postgresqlstorage.cpp
     sessionthread.cpp
+    sqlauthenticator.cpp
     sqlitestorage.cpp
-    storage.cpp)
+    storage.cpp
 
-set(MOC_HDRS
-    abstractsqlstorage.h
-    core.h
-    corealiasmanager.h
-    coreapplication.h
-    coreauthhandler.h
-    corebacklogmanager.h
-    corebasichandler.h
-    corebuffersyncer.h
-    corebufferviewconfig.h
-    corebufferviewmanager.h
-    corecoreinfo.h
+    # needed for automoc
     coreeventmanager.h
-    coreidentity.h
-    coreignorelistmanager.h
-    coreircchannel.h
-    coreirclisthelper.h
-    coreircuser.h
-    corenetwork.h
-    corenetworkconfig.h
-    coresession.h
-    coresessioneventprocessor.h
-    coretransfermanager.h
-    coreuserinputhandler.h
-    ctcpparser.h
-    eventstringifier.h
-    ircparser.h
-    netsplit.h
-    oidentdconfiggenerator.h
-    postgresqlstorage.h
-    sqlitestorage.h
-    storage.h
-    sessionthread.h)
-
-set(HEADERS
-    coresettings.h
-    coreusersettings.h)
-
-if(HAVE_SSL)
-  set(SOURCES ${SOURCES} sslserver.cpp)
-  set(MOC_HDRS ${MOC_HDRS} sslserver.h)
-  include_directories(${OPENSSL_INCLUDE_DIR})
-endif(HAVE_SSL)
+)
 
-if(HAVE_QCA2)
-  set(SOURCES ${SOURCES} cipher.cpp)
-  set(HEADERS ${HEADERS} cipher.h)
-  include_directories(${QCA2_INCLUDE_DIR})
-endif(HAVE_QCA2)
+target_link_libraries(${TARGET}
+    PUBLIC
+        Qt5::Core
+        Qt5::Network
+        Qt5::Script
+        Qt5::Sql
+        Quassel::Common
+)
 
-include_directories(${CMAKE_SOURCE_DIR}/src/common ${QUASSEL_QT_INCLUDES})
+if (HAVE_UMASK)
+    set_property(SOURCE oidentdconfiggenerator.cpp APPEND PROPERTY COMPILE_DEFINITIONS HAVE_UMASK)
+endif()
 
-if(NOT WITH_QT5)
-  qt4_wrap_cpp(MOC ${MOC_HDRS})
-endif(NOT WITH_QT5)
+if (HAVE_SSL)
+    target_sources(${TARGET} PRIVATE sslserver.cpp)
+endif()
 
-set(CORE_RCS ${CORE_RCS} core/sql.qrc PARENT_SCOPE)
+if (Ldap_FOUND)
+    target_sources(${TARGET} PRIVATE ldapauthenticator.cpp)
+    target_link_libraries(${TARGET} PRIVATE Ldap::Ldap)
+    set_property(SOURCE core.cpp APPEND PROPERTY COMPILE_DEFINITIONS HAVE_LDAP)
+endif()
 
-add_library(mod_core STATIC ${SOURCES} ${MOC} ${HEADERS})
-add_dependencies(mod_core mod_common)
-set_target_properties(mod_core PROPERTIES COMPILE_FLAGS "${QUASSEL_QT_COMPILEFLAGS}")
+if (Qca-qt5_FOUND)
+    target_sources(${TARGET} PRIVATE cipher.cpp keyevent.cpp)
+    target_link_libraries(${TARGET} PUBLIC qca-qt5)
+    target_compile_definitions(${TARGET} PUBLIC -DHAVE_QCA2)
+endif()
 
-if(HAVE_QCA2)
-  target_link_libraries(mod_core ${QCA2_LIBRARIES})
-endif(HAVE_QCA2)
+quassel_add_resource(Sql PATTERNS SQL/*.sql)
+target_link_libraries(${TARGET} PUBLIC Quassel::Resource::Sql)