diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2020-10-20 14:30:32 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2020-12-01 13:07:57 +0200 |
commit | 694ec412b5ae13b84229e5c65f2e3dce2babee34 (patch) | |
tree | e25a0f1a94e025ad729b37d5f35ec4494aff8b0d /src/CMakeLists.txt | |
parent | e6ad86a86fe3ed73cac6478e07eb1220399ace1f (diff) |
build: Added AGL specific build directory for widget building
Adds also a cmake as we don't have meson alternative as of yet.
Bug-AGL: SPEC-3605
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I43cc98294d7bb5d887370c8ce2db854cbd9055d7
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..fb61c40 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,137 @@ +########################################################################### +# Copyright 2018 Konsulko Group +# Copyright 2020 Collabora, Ltd. +# +# Author: Scott Murray <scott.murray@konsulko.com> +# Author: Marius Vlad <marius.vlad@collabora.com> +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +#set(CMAKE_CXX_STANDARD 14) +#set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(PkgConfig REQUIRED) +find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner) + +PROJECT_TARGET_ADD(waltham-receiver) + +# added just in case need additional windowing functionality +#add_custom_command( +# OUTPUT agl-shell-desktop-client-protocol.h +# COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header +# < ${CMAKE_SOURCE_DIR}/src/protocol/agl-shell-desktop.xml +# > ${CMAKE_SOURCE_DIR}/src/agl-shell-desktop-client-protocol.h +# DEPENDS ${CMAKE_SOURCE_DIR}/src/agl-shell-desktop.xml +#) +# +#add_custom_command( +# OUTPUT ${CMAKE_BINARY_DIR}/src/agl-shell-desktop-client-protocol.h +# COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header +# < ${CMAKE_SOURCE_DIR}/src/protocol/agl-shell-desktop.xml +# > ${CMAKE_SOURCE_DIR}/src/agl-shell-desktop-client-protocol.h +# DEPENDS ${CMAKE_SOURCE_DIR}/src/protocol/agl-shell-desktop.xml +#) +# +#add_custom_command( +# OUTPUT agl-shell-desktop-protocol.c +# COMMAND ${WAYLAND_SCANNER_EXECUTABLE} code +# < ${CMAKE_SOURCE_DIR}/src/protocol/agl-shell-desktop.xml +# > ${CMAKE_BINARY_DIR}/src/agl-shell-desktop-protocol.c +# DEPENDS ${CMAKE_SOURCE_DIR}/src/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(WALTHAM REQUIRED waltham) + +pkg_check_modules(GLES2 REQUIRED glesv2) +pkg_check_modules(EGL REQUIRED egl) +pkg_check_modules(WAYLAND_EGL REQUIRED wayland-egl) + +pkg_check_modules(WAYLAND_CLIENT REQUIRED wayland-client) +pkg_check_modules(WAYLAND_PROTOCOLS REQUIRED wayland-protocols>=1.18) +pkg_get_variable(WAYLAND_PROTOCOLS_BASE wayland-protocols pkgdatadir) + +add_custom_command( + OUTPUT xdg-shell-client-protocol.h + COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header + < ${WAYLAND_PROTOCOLS_BASE}/stable/xdg-shell/xdg-shell.xml + > ${CMAKE_SOURCE_DIR}/src/xdg-shell-client-protocol.h + DEPENDS ${WAYLAND_PROTOCOLS_BASE}/stable/xdg-shell/xdg-shell.xml +) + +add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/src/xdg-shell-client-protocol.h + COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header + < ${WAYLAND_PROTOCOLS_BASE}/stable/xdg-shell/xdg-shell.xml + > ${CMAKE_SOURCE_DIR}/src/xdg-shell-client-protocol.h + DEPENDS ${WAYLAND_PROTOCOLS_BASE}/stable/xdg-shell/xdg-shell.xml +) + +add_custom_command( + OUTPUT xdg-shell-protocol.c + COMMAND ${WAYLAND_SCANNER_EXECUTABLE} code + < ${WAYLAND_PROTOCOLS_BASE}/stable/xdg-shell/xdg-shell.xml + > ${CMAKE_BINARY_DIR}/src/xdg-shell-protocol.c + DEPENDS ${WAYLAND_PROTOCOLS_BASE}/stable/xdg-shell/xdg-shell.xml +) + +add_executable(${TARGET_NAME} + bitmap.c + os-compatibility.c + wth-receiver-comm.c + wth-receiver-buffer.c + wth-receiver-surface.c + wth-receiver-seat.c + wth-receiver-gst-shm.c + wth-receiver-main.c + xdg-shell-protocol.c + xdg-shell-client-protocol.h + ${RESOURCES} +) + +include_directories( + "../include" + "${GSTREAMER_INCLUDE_DIRS}" + "${WALTHAM_INCLUDE_DIRS}" + "${GSTREAMER_PLUGINS_BASE_INCLUDE_DIRS}" + "${GSTREAMER_PLUGINS_BAD_INCLUDE_DIRS}" + "${GSTREAMER_VIDEO_INCLUDE_DIRS}" +) + +set_target_properties(${TARGET_NAME} PROPERTIES + LABELS "EXECUTABLE" + PREFIX "" + COMPILE_FLAGS "${EXTRAS_CFLAGS} -DFOR_AFB_BINDING" + LINK_FLAGS "${BINDINGS_LINK_FLAG}" + LINK_LIBRARIES "${EXTRAS_LIBRARIES}" + OUTPUT_NAME "${TARGET_NAME}" +) + +target_link_libraries(${TARGET_NAME} + ${GSTREAMER_LIBRARIES} + ${WALTHAM_LIBRARIES} + "${GSTREAMER_PLUGINS_BASE_LIBRARIES}" + "${GSTREAMER_PLUGINS_BAD_LIBRARIES}" + "${GSTREAMER_VIDEO_LIBRARIES}" + ${WAYLAND_CLIENT_LIBRARIES} + ${WAYLAND_EGL_LIBRARIES} + ${EGL_LIBRARIES} + ${GLES2_LIBRARIES} + -lgstwayland-1.0 +) |