Zhao Yuhang
2025-03-11 c00e986f38dbc4843d92cc76a385f826658c1e03
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
project(QWKCore
    VERSION ${QWINDOWKIT_VERSION}
    LANGUAGES CXX
)
 
set(_src
    qwkglobal.h
    qwkglobal_p.h
    qwkglobal.cpp
    windowagentbase.h
    windowagentbase_p.h
    windowagentbase.cpp
    windowitemdelegate_p.h
    windowitemdelegate.cpp
    kernel/nativeeventfilter_p.h
    kernel/nativeeventfilter.cpp
    kernel/sharedeventfilter_p.h
    kernel/sharedeventfilter.cpp
    kernel/winidchangeeventfilter_p.h
    kernel/winidchangeeventfilter.cpp
    shared/systemwindow_p.h
    contexts/abstractwindowcontext_p.h
    contexts/abstractwindowcontext.cpp
)
 
set(_links_private)
 
if(WIN32)
    list(APPEND _src
        qwindowkit_windows.h
        qwindowkit_windows.cpp
        shared/qwkwindowsextra_p.h
        shared/windows10borderhandler_p.h
    )
elseif(APPLE)
else()
    list(APPEND _src
        qwindowkit_linux.h
    )
endif()
 
if(QWINDOWKIT_ENABLE_QT_WINDOW_CONTEXT)
    list(APPEND _src
        contexts/qtwindowcontext_p.h
        contexts/qtwindowcontext.cpp
    )
else()
    if(WIN32)
        list(APPEND _src
            contexts/win32windowcontext_p.h
            contexts/win32windowcontext.cpp
        )
        list(APPEND _links_private uxtheme)
    elseif(APPLE)
        list(APPEND _src
            contexts/cocoawindowcontext_p.h
            contexts/cocoawindowcontext.mm
        )
        list(APPEND _links_private
            "-framework Foundation"
            "-framework Cocoa"
            "-framework AppKit"
        )
    else()
        list(APPEND _src
            contexts/qtwindowcontext_p.h
            contexts/qtwindowcontext.cpp
        )
    endif()
endif()
 
set(_sync_include_options)
 
if(QWINDOWKIT_ENABLE_STYLE_AGENT)
    list(APPEND _src
        style/styleagent.h
        style/styleagent_p.h
        style/styleagent.cpp
    )
 
    if(WIN32)
        list(APPEND _src style/styleagent_win.cpp)
    elseif(APPLE)
        list(APPEND _src style/styleagent_mac.mm)
    else()
        list(APPEND _src style/styleagent_linux.cpp)
    endif()
else()
    list(APPEND _sync_include_options EXCLUDE "src/core/style/\\.+")
endif()
 
qwk_add_library(${PROJECT_NAME} AUTOGEN
    SOURCES ${_src}
    FEATURES cxx_std_17
    LINKS_PRIVATE ${_links_private}
    QT_LINKS Core Gui
    QT_INCLUDE_PRIVATE Core Gui
    INCLUDE_PRIVATE *
    PREFIX QWK_CORE
    SYNC_INCLUDE_OPTIONS ${_sync_include_options}
)
 
set(QWINDOWKIT_ENABLED_TARGETS ${QWINDOWKIT_ENABLED_TARGETS} ${PROJECT_NAME} PARENT_SCOPE)
set(QWINDOWKIT_ENABLED_SUBDIRECTORIES ${QWINDOWKIT_ENABLED_SUBDIRECTORIES} core PARENT_SCOPE)