summaryrefslogtreecommitdiffstats
path: root/sample/simple-egl/CMakeLists.txt
blob: 57bdfbda0a6050be515b92824460629b2c9c87d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#
# Copyright (c) 2017 TOYOTA MOTOR CORPORATION
#
# 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.
#

project(simple-egl C CXX)

cmake_minimum_required(VERSION 3.0)

set(PROJECT_NAME "simple-egl")
set(PROJECT_VERSION "1.0")
set(PROJECT_PRETTY_NAME "SE")
set(PROJECT_DESCRIPTION "Sample application for homescreen and windowmanager")
set(PROJECT_URL "")
set(CMAKE_CXX_FLAGS "-Wall -fpermissive")

#source directory
aux_source_directory(src DIR_SRCS)

#head file path
include_directories(include)

#set extern libraries
SET(LIBRARIES
    libwindowmanager.so
    libEGL.so
    libGLESv2.so
    libm.so
    libwayland-egl.so
    libwayland-client.so
    libjson-c.so
    libhomescreen.so
    librt.so
    libpthread.so
)

#add executable file
add_executable(simple-egl ${DIR_SRCS})

#add link library
TARGET_LINK_LIBRARIES(simple-egl ${LIBRARIES})

add_custom_command(TARGET simple-egl POST_BUILD
    COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/package ${PROJECT_BINARY_DIR}
    COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/root/bin
    COMMAND cp -rf ${PROJECT_BINARY_DIR}/simple-egl ${PROJECT_BINARY_DIR}/package/root/bin)

add_custom_target(widget DEPENDS ${PROJECT_BINARY_DIR}/package/root
    COMMAND wgtpkg-pack -f -o ${PROJECT_BINARY_DIR}/package/${PROJECT_NAME}.wgt ${PROJECT_BINARY_DIR}/package/root)

add_custom_target(hvac DEPENDS ${PROJECT_BINARY_DIR}/package/root
    COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/hvac/bin
    COMMAND cp -rf ${PROJECT_BINARY_DIR}/simple-egl ${PROJECT_BINARY_DIR}/package/hvac/bin/hvac
    COMMAND wgtpkg-pack -f -o ${PROJECT_BINARY_DIR}/package/hvac.wgt ${PROJECT_BINARY_DIR}/package/hvac)

add_custom_target(navi DEPENDS ${PROJECT_BINARY_DIR}/package/root
    COMMAND mkdir -p ${PROJECT_BINARY_DIR}/package/navi/bin
    COMMAND cp -rf ${PROJECT_BINARY_DIR}/simple-egl ${PROJECT_BINARY_DIR}/package/navi/bin/navi
    COMMAND wgtpkg-pack -f -o ${PROJECT_BINARY_DIR}/package/navi.wgt ${PROJECT_BINARY_DIR}/package/navi)
display:flex"} - Click on **OK** button to save settings By changing configuration from **Default** to **Gen3 board**, you can now simply compile your helloworld application natively (**Default** configuration) or cross-compile your application through XDS for the Renesas Gen3 board (**Gen3 board** configuration). ## Visual Studio Code Open your project in VS Code ```bash cd $MY_PROJECT_DIR code . & ``` Add new tasks : press `Ctrl+Shift+P` and select the `Tasks: Configure Task` command and you will see a list of task runner templates. And define your own tasks, here is an example to build [helloworld-native-application](https://github.com/iotbzh/helloworld-native-application) AGL helloworld application based on cmake template. ```json { "version": "2.0.0", "type": "shell", "presentation": { "reveal": "always" }, "tasks": [ { "taskName": "clean", "command": "/bin/rm -rf ${workspaceFolder}/build/* && mkdir -p build && echo Cleanup done.", "problemMatcher": [] }, { "taskName": "pre-build", "group": "build", "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- cmake -DRSYNC_TARGET=root@renesas-gen3 -DRSYNC_PREFIX=/opt ../", "problemMatcher": [ "$gcc" ] }, { "taskName": "build", "group": "build", "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- make widget", "problemMatcher": [ "$gcc" ] }, { "taskName": "populate", "command": "/opt/AGL/bin/xds-cli exec --rpath build --config xds-project.conf -- make widget-target-install", "problemMatcher": [] } ] } ``` > **Note:** > > You can also add your own keybindings to trig above tasks, for example: > > ```json > // Build > { > "key": "alt+f9", > "command": "workbench.action.tasks.runTask", > "args": "clean" > }, > { > "key": "alt+f10", > "command": "workbench.action.tasks.runTask", > "args": "pre-build" > }, > { > "key": "alt+f11", > "command": "workbench.action.tasks.runTask", > "args": "build" > }, > { > "key": "alt+f12", > "command": "workbench.action.tasks.runTask", > "args": "populate" > }, > ``` > > More details about VSC keybindings [here](https://code.visualstudio.com/docs/editor/tasks#_binding-keyboard-shortcuts-to-tasks) > > More details about VSC tasks [here](https://code.visualstudio.com/docs/editor/tasks) ## Qt Creator Please refer to [agl-hello-qml](https://github.com/radiosound-com/agl-hello-qml#clone--build-project) project. Thanks to Dennis for providing this useful example. ## Others IDE *Coming soon...*