summaryrefslogtreecommitdiffstats
path: root/app/CMakeLists.txt
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2020-06-20 23:16:15 +0300
committerMarius Vlad <marius.vlad@collabora.com>2020-07-10 00:35:28 +0300
commit3ac1a25bcfa27594ffd44f5255017322d517cb40 (patch)
tree030c89af09347bf65cef230fb54318771b201f33 /app/CMakeLists.txt
parent6f05f0d2fb3619e85bee71a18c353908edf8bfe3 (diff)
Conversion to using agl-compositor
- Use Qt/QtWayland to set-up an app_id for the main surface. We use that surface and pass it to waylandsink. Waylandsink create a sub-surface with the parent the Qt/QtWayland one. - Install a handler for handling bus messages With it, it allows to pass the wl_display with the help of a context and the surface backing up the Widget. - Installs a timer to wait for Qt to create/get the xdg_surface and attach a buffer to it. Without we won't be able receive the commit for the parent event in order to handle it. Bug-AGL: SPEC-3382 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: I4237b7dad110ce36e3a01226e67cb508b6d9a6d9
Diffstat (limited to 'app/CMakeLists.txt')
-rw-r--r--app/CMakeLists.txt62
1 files changed, 55 insertions, 7 deletions
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 229e961..ff8eb93 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -18,24 +18,66 @@
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(OE_QMAKE_PATH_EXTERNAL_HOST_BINS $ENV{OE_QMAKE_PATH_HOST_BINS})
+find_package(Qt5 COMPONENTS Core Gui QuickControls2 QuickWidgets REQUIRED)
+find_package(Qt5Gui ${QT_MIN_VERSION} CONFIG REQUIRED Private)
find_package(PkgConfig REQUIRED)
+find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner)
PROJECT_TARGET_ADD(cluster-receiver)
+add_custom_command(
+ OUTPUT agl-shell-desktop-client-protocol.h
+ COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header
+ < ${CMAKE_SOURCE_DIR}/app/protocol/agl-shell-desktop.xml
+ > ${CMAKE_SOURCE_DIR}/app/agl-shell-desktop-client-protocol.h
+ DEPENDS ${CMAKE_SOURCE_DIR}/app/protocol/agl-shell-desktop.xml
+)
+
+
+add_custom_command(
+ OUTPUT ${CMAKE_BINARY_DIR}/app/agl-shell-desktop-client-protocol.h
+ COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header
+ < ${CMAKE_SOURCE_DIR}/app/protocol/agl-shell-desktop.xml
+ > ${CMAKE_SOURCE_DIR}/app/agl-shell-desktop-client-protocol.h
+ DEPENDS ${CMAKE_SOURCE_DIR}/app/protocol/agl-shell-desktop.xml
+)
+
+add_custom_command(
+ OUTPUT agl-shell-desktop-protocol.c
+ COMMAND ${WAYLAND_SCANNER_EXECUTABLE} code
+ < ${CMAKE_SOURCE_DIR}/app/protocol/agl-shell-desktop.xml
+ > ${CMAKE_BINARY_DIR}/app/agl-shell-desktop-protocol.c
+ DEPENDS ${CMAKE_SOURCE_DIR}/app/protocol/agl-shell-desktop.xml
+)
+
+pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0)
+pkg_check_modules(GSTREAMER_PLUGINS_BASE REQUIRED gstreamer-plugins-base-1.0)
+pkg_check_modules(GSTREAMER_VIDEO REQUIRED gstreamer-video-1.0)
+pkg_check_modules(GSTREAMER_PLUGINS_BAD REQUIRED gstreamer-plugins-bad-1.0)
+
+pkg_check_modules(WAYLAND_CLIENT REQUIRED wayland-client)
+
add_executable(${TARGET_NAME}
main.cpp
surface.cpp
+ agl-shell-desktop-protocol.c
+ agl-shell-desktop-client-protocol.h
+ shell-desktop.cpp
${RESOURCES}
)
-pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0)
-pkg_check_modules(ILMCOMMON REQUIRED ilmCommon)
-
include_directories(
- "${ILMCOMMON_INCLUDE_DIRS}"
- "${GSTREAMER_INCLUDE_DIRS}"
+ include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS})
+ ${QTAPPFW_INCLUDE_DIRS}
+ "${GSTREAMER_INCLUDE_DIRS}"
+ "${GSTREAMER_PLUGINS_BASE_INCLUDE_DIRS}"
+ "${GSTREAMER_PLUGINS_BAD_INCLUDE_DIRS}"
+ "${GSTREAMER_VIDEO_INCLUDE_DIRS}"
)
set_target_properties(${TARGET_NAME} PROPERTIES
@@ -48,7 +90,13 @@ set_target_properties(${TARGET_NAME} PROPERTIES
)
target_link_libraries(${TARGET_NAME}
- windowmanager
+ Qt5::QuickControls2
+ Qt5::QuickWidgets
${GSTREAMER_LIBRARIES}
- ${ILMCOMMON_LIBRARIES}
+ "${GSTREAMER_PLUGINS_BASE_LIBRARIES}"
+ "${GSTREAMER_PLUGINS_BAD_LIBRARIES}"
+ "${GSTREAMER_VIDEO_LIBRARIES}"
+ ${QTAPPFW_LIBRARIES}
+ ${WAYLAND_CLIENT_LIBRARIES}
+ -lgstwayland-1.0
)