2 # Copyright (c) 2019 TOYOTA MOTOR CORPORATION
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
16 cmake_minimum_required( VERSION 2.8.5 )
20 set(CMAKE_CXX_FLAGS "-Wall -fpermissive")
22 find_package(PkgConfig)
23 find_package (Threads)
24 pkg_check_modules(WAYLAND_CLIENT wayland-client REQUIRED)
25 pkg_check_modules(WAYLAND_CURSOR wayland-cursor REQUIRED)
26 pkg_check_modules(WALTHAM waltham REQUIRED)
27 pkg_check_modules(GLESv2 glesv2 REQUIRED)
28 pkg_check_modules(WAYLAND_EGL wayland-egl REQUIRED)
29 pkg_check_modules(ILMCONTROL REQUIRED ilmControl)
30 pkg_check_modules(ILMINPUT REQUIRED ilmInput)
32 pkg_search_module(EGL egl required)
33 pkg_search_module(GSTREAMER gstreamer-1.0 required)
34 pkg_search_module(GSTREAMERAPP gstreamer-app-1.0 required)
35 pkg_search_module(DRM libdrm required)
36 pkg_search_module(WEBSOCKET libwebsockets required)
38 find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner)
39 find_library(GST_ALLOCATOR NAMES gstallocators-1.0 PATHs /usr/lib64)
40 find_library(GST_VIDEO NAMES gstvideo-1.0 PATHs /usr/lib64)
41 find_library(GST_WAYLAND NAMES gstwayland-1.0 PATHs /usr/lib64)
44 OUTPUT ivi-application-client-protocol.h
45 COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header
46 < ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
47 > ${CMAKE_CURRENT_BINARY_DIR}/ivi-application-client-protocol.h
48 DEPENDS ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
52 OUTPUT ivi-application-protocol.c
53 COMMAND ${WAYLAND_SCANNER_EXECUTABLE} code
54 < ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
55 > ${CMAKE_CURRENT_BINARY_DIR}/ivi-application-protocol.c
56 DEPENDS ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
60 ${WAYLAND_CLIENT_INCLUDE_DIR}
61 ${WAYLAND_CURSOR_INCLUDE_DIR}
62 ${WALTHAM_INCLUDE_DIRS}
64 ${GSTREAMER_LIBRARY_DIRS}
65 ${GSTREAMER_INCLUDE_DIRS}
66 ${GSTREAMERAPP_INCLUDE_DIRS}
68 ${WAYLAND_EGL_INCLUDE_DIR}
69 ${GLESv2_INCLUDE_DIRS}
70 ${CMAKE_CURRENT_BINARY_DIR}
71 ${CMAKE_SOURCE_DIR}/include/
72 ${CMAKE_SOURCE_DIR}/waltham-renderer
73 "${ILMCONTROL_INCLUDE_DIRS}"
74 "${ILMINPUT_INCLUDE_DIRS}"
78 ${WAYLAND_CLIENT_LIBRARY_DIRS}
79 ${WAYLAND_CURSOR_LIBRARY_DIRS}
80 ${WALTHAM_LIBRARY_DIRS}
82 ${WAYLAND_EGL_LIBRAY_DIRS}
83 ${GLESv2_LIBRARY_DIRS}
84 ${GSTREAMER_LIBRARY_DIRS}
85 ${GSTREAMERAPP_LIBRARY_DIRS}
89 ${CMAKE_THREAD_LIBS_INIT}
90 ${WAYLAND_CLIENT_LIBRARIES}
91 ${WAYLAND_CURSOR_LIBRARIES}
94 ${WAYLAND_EGL_LIBRARIES}
96 ${GSTREAMER_LIBRARIES}
97 ${GSTREAMERAPP_LIBRARIES}
106 ${ILMCONTROL_LIBRARIES}
107 ${ILMINPUT_LIBRARIES}
108 ${WEBSOCKET_LIBRARIES}
113 src/gst-wayland-demo.cpp
117 add_executable(${PROJECT_NAME} ${SRC_FILES})
120 add_definitions(${EGL_CFLAGS})
122 target_link_libraries(${PROJECT_NAME} ${LIBS})
124 add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
125 COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/package ${PROJECT_BINARY_DIR}
126 COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/bin
127 COMMAND cp -rf ${PROJECT_BINARY_DIR}/${PROJECT_NAME} ${PROJECT_BINARY_DIR}/package/root/bin
128 COMMAND wgtpkg-pack -f -o ${PROJECT_BINARY_DIR}/package/${PROJECT_NAME}.wgt ${PROJECT_BINARY_DIR}/package/root)
131 install (TARGETS ${PROJECT_NAME} DESTINATION bin)