test
[apps/homescreen.git] / CMakeLists.txt
1 #
2 # Copyright (c) 2019 TOYOTA MOTOR CORPORATION
3 #
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
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
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.
15 #
16 cmake_minimum_required( VERSION 2.8.5 )
17
18 project (gstwayland)
19
20 set(CMAKE_CXX_FLAGS "-Wall -fpermissive")
21
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)
31
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)
37
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)
42
43 add_custom_command(
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
49 )
50
51 add_custom_command(
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
57 )
58
59 include_directories(
60     ${WAYLAND_CLIENT_INCLUDE_DIR}
61     ${WAYLAND_CURSOR_INCLUDE_DIR}
62     ${WALTHAM_INCLUDE_DIRS}
63     ${DRM_INCLUDE_DIRS}
64     ${GSTREAMER_LIBRARY_DIRS}
65     ${GSTREAMER_INCLUDE_DIRS}
66     ${GSTREAMERAPP_INCLUDE_DIRS}
67     ${EGL_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}"
75 )
76
77 link_directories(
78     ${WAYLAND_CLIENT_LIBRARY_DIRS}
79     ${WAYLAND_CURSOR_LIBRARY_DIRS}
80     ${WALTHAM_LIBRARY_DIRS}
81     ${EGL_LIBRARY_DIRS}
82     ${WAYLAND_EGL_LIBRAY_DIRS}
83     ${GLESv2_LIBRARY_DIRS}
84     ${GSTREAMER_LIBRARY_DIRS}
85     ${GSTREAMERAPP_LIBRARY_DIRS}
86 )
87
88 SET(LIBS
89     ${CMAKE_THREAD_LIBS_INIT}
90     ${WAYLAND_CLIENT_LIBRARIES}
91     ${WAYLAND_CURSOR_LIBRARIES}
92     ${WALTHAM_LIBRARIES}
93     ${EGL_LIBRARIES}
94     ${WAYLAND_EGL_LIBRARIES}
95     ${GLESv2_LIBRARIES}
96     ${GSTREAMER_LIBRARIES}
97     ${GSTREAMERAPP_LIBRARIES}
98     ${GST_ALLOCATOR}
99     ${GST_VIDEO}
100     ${GST_WAYLAND}
101     libwindowmanager.so
102     libjson-c.so
103     libhomescreen.so
104     libafbwsc.so
105     systemd
106     ${ILMCONTROL_LIBRARIES}
107     ${ILMINPUT_LIBRARIES}
108     ${WEBSOCKET_LIBRARIES}
109 )
110
111 SET(SRC_FILES
112     src/sdl-protocol.c
113     src/gst-wayland-demo.cpp
114 )
115
116 #add executable file
117 add_executable(${PROJECT_NAME} ${SRC_FILES})
118
119 #add link library
120 add_definitions(${EGL_CFLAGS})
121
122 target_link_libraries(${PROJECT_NAME} ${LIBS})
123
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)
129
130
131 install (TARGETS ${PROJECT_NAME} DESTINATION bin)