summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/wasm/CMakeLists.txt
blob: 185b921a4f6134901bed298a8bec6aab6a37502d (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
96
97
98
99
100
101
102
103
104
105
106
107
108
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: BSD-3-Clause

#####################################################################
## QWasmIntegrationPlugin Plugin:
#####################################################################

qt_internal_add_plugin(QWasmIntegrationPlugin
    OUTPUT_NAME qwasm
    DEFAULT_IF ${QT_QPA_DEFAULT_PLATFORM} MATCHES wasm
    PLUGIN_TYPE platforms
    STATIC
    SOURCES
        main.cpp
        qwasmaccessibility.cpp qwasmaccessibility.h
        qwasmbase64iconstore.cpp qwasmbase64iconstore.h
        qwasmclipboard.cpp qwasmclipboard.h
        qwasmcompositor.cpp qwasmcompositor.h
        qwasmcssstyle.cpp qwasmcssstyle.h
        qwasmcursor.cpp qwasmcursor.h
        qwasmdom.cpp qwasmdom.h
        qwasmevent.cpp qwasmevent.h
        qwasmeventdispatcher.cpp qwasmeventdispatcher.h
        qwasmfontdatabase.cpp qwasmfontdatabase.h
        qwasmintegration.cpp qwasmintegration.h
        qwasmkeytranslator.cpp qwasmkeytranslator.h
        qwasmoffscreensurface.cpp qwasmoffscreensurface.h
        qwasmopenglcontext.cpp qwasmopenglcontext.h
        qwasmplatform.cpp qwasmplatform.h
        qwasmscreen.cpp qwasmscreen.h
        qwasmservices.cpp qwasmservices.h
        qwasmtheme.cpp qwasmtheme.h
        qwasmwindow.cpp qwasmwindow.h
        qwasmwindowclientarea.cpp qwasmwindowclientarea.h
        qwasmwindowtreenode.cpp qwasmwindowtreenode.h
        qwasmwindownonclientarea.cpp qwasmwindownonclientarea.h
        qwasminputcontext.cpp qwasminputcontext.h
        qwasmwindowstack.cpp qwasmwindowstack.h
        qwasmdrag.cpp qwasmdrag.h
    DEFINES
        QT_EGL_NO_X11
        QT_NO_FOREACH
    LIBRARIES
        Qt::Core
        Qt::CorePrivate
        Qt::Gui
        Qt::GuiPrivate
)

# Resources:
set(wasmfonts_resource_files
    "${QtBase_SOURCE_DIR}/src/3rdparty/wasm/DejaVuSans.ttf"
    "${QtBase_SOURCE_DIR}/src/3rdparty/wasm/DejaVuSansMono.ttf"
)

qt_internal_add_resource(QWasmIntegrationPlugin "wasmfonts"
    PREFIX
        "/fonts"
    BASE
        "${QtBase_SOURCE_DIR}/src/3rdparty/wasm"
    FILES
        ${wasmfonts_resource_files}
)

qt_internal_extend_target(QWasmIntegrationPlugin CONDITION QT_FEATURE_opengl
    SOURCES
        qwasmbackingstore.cpp qwasmbackingstore.h
    LIBRARIES
        Qt::OpenGL
        Qt::OpenGLPrivate
)

# PLUGIN_EXTENDS = "-"

set(wasm_support_files
    wasm_shell.html
    qtloader.js
    resources/qtlogo.svg
)

set(wasmwindow_resource_files
    "resources/maximize.svg"
    "resources/qtlogo.svg"
    "resources/restore.svg"
    "resources/x.svg"
)

qt_internal_add_resource(QWasmIntegrationPlugin "wasmwindow"
    PREFIX
        "/wasm-window"
    BASE
        "resources"
    FILES
        ${wasmwindow_resource_files}
)

qt_path_join(destination ${QT_INSTALL_DIR} "plugins/platforms")
qt_copy_or_install(FILES
    ${wasm_support_files}
    DESTINATION "${destination}"
)
# Need to copy the support files to the build dir in a top-level prefix build
# So _qt_internal_wasm_add_target_helpers finds them.
if(QT_WILL_INSTALL)
    foreach(wasm_support_file ${wasm_support_files})
        file(COPY "${wasm_support_file}" DESTINATION "${QT_BUILD_DIR}/plugins/platforms")
    endforeach()
endif()