add gstwayland
[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(ILMCONTROL REQUIRED ilmControl)
26 pkg_check_modules(ILMINPUT REQUIRED ilmInput)
27 pkg_search_module(GSTREAMER gstreamer-1.0 required)
28 pkg_search_module(WEBSOCKET libwebsockets required)
29
30 find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner)
31 find_library(GST_VIDEO NAMES gstvideo-1.0 PATHs /usr/lib64)
32 find_library(GST_WAYLAND NAMES gstwayland-1.0 PATHs /usr/lib64)
33
34 add_custom_command(
35     OUTPUT  ivi-application-client-protocol.h
36     COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header
37             < ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
38             > ${CMAKE_CURRENT_BINARY_DIR}/ivi-application-client-protocol.h
39     DEPENDS ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
40 )
41
42 add_custom_command(
43     OUTPUT  ivi-application-protocol.c
44     COMMAND ${WAYLAND_SCANNER_EXECUTABLE} code
45             < ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
46             > ${CMAKE_CURRENT_BINARY_DIR}/ivi-application-protocol.c
47     DEPENDS ${CMAKE_SOURCE_DIR}/protocol/ivi-application.xml
48 )
49
50 include_directories(
51     "${CMAKE_SYSROOT}/usr/include"
52     ${GSTREAMER_LIBRARY_DIRS}
53     ${GSTREAMER_INCLUDE_DIRS}
54     ${CMAKE_CURRENT_BINARY_DIR}
55     ${CMAKE_SOURCE_DIR}/include/
56     "${ILMCONTROL_INCLUDE_DIRS}"
57     "${ILMINPUT_INCLUDE_DIRS}"
58 )
59
60 link_directories(
61     ${WAYLAND_CLIENT_LIBRARY_DIRS}
62     ${GSTREAMER_LIBRARY_DIRS}
63 )
64
65 SET(LIBS
66     ${CMAKE_THREAD_LIBS_INIT}
67     ${WAYLAND_CLIENT_LIBRARIES}
68     ${GSTREAMER_LIBRARIES}
69     ${GST_VIDEO}
70     ${GST_WAYLAND}
71     libwindowmanager.so
72     libjson-c.so
73     libhomescreen.so
74     libafbwsc.so
75     systemd
76     ${ILMCONTROL_LIBRARIES}
77     ${ILMINPUT_LIBRARIES}
78     ${WEBSOCKET_LIBRARIES}
79 )
80
81 SET(SRC_FILES
82     src/sdl-protocol.c
83     src/gst-wayland-demo.cpp
84 )
85
86 #add executable file
87 add_executable(${PROJECT_NAME} ${SRC_FILES})
88
89 target_link_libraries(${PROJECT_NAME} ${LIBS})
90
91 add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
92     COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/package ${PROJECT_BINARY_DIR}
93     COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/bin
94     COMMAND cp -rf ${PROJECT_BINARY_DIR}/${PROJECT_NAME} ${PROJECT_BINARY_DIR}/package/root/bin
95     COMMAND wgtpkg-pack -f -o ${PROJECT_BINARY_DIR}/package/${PROJECT_NAME}.wgt ${PROJECT_BINARY_DIR}/package/root)
96
97
98 install (TARGETS ${PROJECT_NAME} DESTINATION bin)