summaryrefslogtreecommitdiffstats
path: root/framework/src/CMakeLists.txt
blob: e975e61e38375f86a7a5caa59a53898c2a468291 (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
find_package(Qt5 COMPONENTS REQUIRED Core Concurrent Quick Qml WebEngineWidgets Test WebEngine Gui)
find_package(KF5Mime 4.87.0 CONFIG REQUIRED)
find_package(KF5CalendarCore CONFIG REQUIRED)
find_package(Sink 0.6.0 CONFIG REQUIRED)
find_package(KAsync CONFIG REQUIRED)
find_package(QGpgme CONFIG REQUIRED)
find_package(Gpgmepp CONFIG REQUIRED)
find_package(KF5Codecs CONFIG REQUIRED)
find_package(KF5Contacts CONFIG REQUIRED)

include(GenerateExportHeader)

set(CMAKE_CXX_VISIBILITY_PRESET default)
set(CMAKE_CXX_STANDARD_REQUIRED 14)

include_directories(. domain/mime/mimetreeparser domain/ domain/mime)

add_library(kubeframework SHARED
    settings/settings.cpp
    domain/maillistmodel.cpp
    domain/folderlistmodel.cpp
    domain/perioddayeventmodel.cpp
    domain/composercontroller.cpp
    domain/modeltest.cpp
    domain/retriever.cpp
    domain/outboxmodel.cpp
    domain/identitiesmodel.cpp
    domain/recepientautocompletionmodel.cpp
    domain/settings/accountsettings.cpp
    domain/selector.cpp
    domain/completer.cpp
    domain/mouseproxy.cpp
    domain/contactcontroller.cpp
    domain/controller.cpp
    domain/peoplemodel.cpp
    domain/textdocumenthandler.cpp
    domain/mime/htmlutils.cpp
    domain/mime/messageparser.cpp
    domain/mime/attachmentmodel.cpp
    domain/mime/partmodel.cpp
    domain/mime/mailtemplates.cpp
    accounts/accountfactory.cpp
    accounts/accountsmodel.cpp
    fabric.cpp
    sinkfabric.cpp
    kubeimage.cpp
    clipboardproxy.cpp
    krecursivefilterproxymodel.cpp
    webengineprofile.cpp
    startupcheck.cpp
    keyring.cpp
    domainobjectcontroller.cpp
    extensionmodel.cpp
    viewhighlighter.cpp
    )
generate_export_header(kubeframework BASE_NAME Kube EXPORT_FILE_NAME kube_export.h)
set_target_properties(kubeframework PROPERTIES
    ENABLE_EXPORTS 1
    WINDOWS_EXPORT_ALL_SYMBOLS 1
)
target_link_libraries(kubeframework
    sink
    kube_otp
    mailcrypto
    Qt5::Core
    Qt5::Quick
    Qt5::Qml
    Qt5::WebEngineWidgets
    Qt5::Test
    Qt5::WebEngine
    Qt5::Gui
    KF5::Codecs
    KF5::Contacts
    KAsync
    QGpgme
    Gpgmepp
)
install(TARGETS kubeframework DESTINATION ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})

add_library(frameworkplugin SHARED frameworkplugin.cpp)
target_link_libraries(frameworkplugin
    kubeframework
)
install(TARGETS frameworkplugin DESTINATION ${FRAMEWORK_INSTALL_DIR})

set(BUILD_TESTING ON)

add_subdirectory(tests)
add_subdirectory(domain/mime)
add_subdirectory(domain/mime/tests)
add_subdirectory(domain/mime/mimetreeparser)
add_subdirectory(domain/settings/tests)

feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)