Flutter bbclass refactor
[AGL/meta-agl-devel.git] / meta-agl-flutter / tools / configs / desktop-auto.json
1 {
2   "id": "desktop-auto",
3   "load": true,
4   "supported_archs": [
5     "x86_64"
6   ],
7   "supported_host_types": [
8     "ubuntu",
9     "fedora"
10   ],
11   "flutter_runtime": "debug",
12   "type": "host",
13   "env": {
14     "FLUTTER_AUTO_SRC_DIR": "${FLUTTER_WORKSPACE}/app/ivi-homescreen",
15     "FLUTTER_AUTO_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/ivi-homescreen/build",
16     "FLUTTER_AUTO_CMAKE_ARGS": "-DCMAKE_BUILD_TYPE=Debug -DBUILD_PLUGIN_SECURE_STORAGE=ON",
17     "COMP_SURF_PBR_SRC_DIR": "${FLUTTER_WORKSPACE}/app/comp_surf_pbr",
18     "COMP_SURF_PBR_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/comp_surf_pbr/build",
19     "COMP_SURF_PBR_CMAKE_ARGS": "-DCMAKE_BUILD_TYPE=Debug",
20     "FLUTTER_AUTO_EXE": "LD_LIBRARY_PATH=${COMP_SURF_PBR_BUILD_DIR} ${FLUTTER_AUTO_BUILD_DIR}/shell/flutter-auto --j=${PLATFORM_ID_DIR_RELATIVE}/default_config.json --b=${PLATFORM_ID_DIR_RELATIVE}",
21     "PING_CMD": "loginctl show-session $(awk '/tty/ {print $1}' <(loginctl)) -p Type",
22     "CREATE_BUNDLE_FOLDER": "mkdir -p ${PLATFORM_ID_DIR_RELATIVE}/data",
23     "COPY_PLATFORM_ID_TO_BUNDLE_FOLDER": "cp -r ${PLATFORM_ID_DIR}/default_config.json ${PLATFORM_ID_DIR_RELATIVE}/",
24     "COPY_BUNDLE_FOLDER_TO_PLATOFRM_ID": "cp -r ${BUNDLE_FOLDER}/* ${PLATFORM_ID_DIR_RELATIVE}/",
25     "CREATE_ASSET_SYMLINK": "ln -rsf build/flutter_assets ${PLATFORM_ID_DIR_RELATIVE}/data/flutter_assets",
26     "STAGE_BUNDLE_FOLDER": "${CREATE_BUNDLE_FOLDER} && ${COPY_PLATFORM_ID_TO_BUNDLE_FOLDER} && ${COPY_BUNDLE_FOLDER_TO_PLATOFRM_ID} && ${CREATE_ASSET_SYMLINK}"
27   },
28   "runtime": {
29     "config": {
30       "view": [
31         {
32                                         "width": 1920,
33                                         "height": 1080,
34                                         "cursor_theme": "DMZ-White",
35           "fullscreen": false
36         }
37       ]
38     },
39     "pre-requisites": {
40       "x86_64": {
41         "ubuntu": {
42           "cmds": [
43             "sudo snap install cmake --classic",
44             "sudo add-apt-repository -y ppa:kisak/kisak-mesa",
45             "sudo apt update -y",
46             "sudo apt install lsb-release wget software-properties-common gnupg apt-file",
47             "sudo apt-file update",
48             "wget https://apt.llvm.org/llvm.sh",
49             "chmod +x ./llvm.sh",
50             "sed -i 's|add-apt-repository \"${REPO_NAME}\"|add-apt-repository -y \"${REPO_NAME}\"|g' ./llvm.sh",
51             "sudo ./llvm.sh 14",
52             "rm ./llvm.sh",
53             "sudo apt install -y clang-14 lldb-14 lld-14 clangd-14 clang-tidy-14 clang-format-14 clang-tools-14 llvm-14-dev lld-14 lldb-14 llvm-14-tools libomp-14-dev libc++-14-dev libc++abi-14-dev libclang-common-14-dev libclang-14-dev libclang-cpp14-dev libunwind-14-dev",
54             "sudo apt install -y libwayland-dev wayland-protocols mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils libxkbcommon-dev ninja-build",
55             "sudo apt install -y build-essential libvulkan-dev vulkan-tools vulkan-validationlayers vulkan-utils libtool",
56             "sudo apt autoremove -y",
57             "sudo apt clean -y",
58             "cmake --version",
59             "clang++ --version",
60             "apt-file search cmake",
61             "apt-file search clang++"
62           ]
63         },
64         "fedora": {
65           "cmds": [
66             "sudo dnf -y update",
67             "sudo dnf -y upgrade",
68             "sudo dnf -y install wayland-devel wayland-protocols-devel libxkbcommon-devel cmake ninja-build mesa-dri-drivers mesa-filesystem mesa-libEGL-devel mesa-libGL-devel mesa-libGLU-devel mesa-libgbm-devel mesa-libglapi mesa-libxatracker mesa-vulkan-drivers vulkan-tools libunwind-devel clang clang-analyzer clang-devel clang-libs clang-resource-filesystem llvm-devel clang-tools-extra lld lld-libs lldb libcxx libcxx-devel libcxx-static libcxxabi libcxxabi-devel libcxxabi-static gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-plugins-bad-free-devel gstreamer1-plugins-bad-free-extras gstreamer1-plugins-base-tools gstreamer1-plugins-good gstreamer1-plugins-good-extras gstreamer1-plugins-ugly-free libtool",
69             "sudo dnf -y autoremove",
70             "cmake --version",
71             "clang++ --version",
72             "dnf provides cmake",
73             "dnf provides clang++"
74           ]
75         }
76       }
77     },
78     "post_cmds": [
79       {
80         "ubuntu": {
81           "env": {
82             "CC": "/usr/bin/clang",
83             "CXX": "/usr/bin/clang++"
84           }
85         },
86         "fedora": {
87           "env": {
88             "CC": "/usr/lib64/ccache/clang",
89             "CXX": "/usr/lib64/ccache/clang++"
90           }
91         },
92         "cwd": "${FLUTTER_AUTO_BUILD_DIR}",
93         "cmds": [
94           "cmake ${FLUTTER_AUTO_SRC_DIR}  ${FLUTTER_AUTO_CMAKE_ARGS}",
95           "make flutter-auto -j"
96         ]
97       },
98       {
99         "ubuntu": {
100           "env": {
101             "CC": "/usr/bin/clang",
102             "CXX": "/usr/bin/clang++"
103           }
104         },
105         "fedora": {
106           "env": {
107             "CC": "/usr/lib64/ccache/clang",
108             "CXX": "/usr/lib64/ccache/clang++"
109           }
110         },
111         "cwd": "${COMP_SURF_PBR_BUILD_DIR}",
112         "cmds": [
113           "cmake ${COMP_SURF_PBR_SRC_DIR}  ${COMP_SURF_PBR_CMAKE_ARGS}",
114           "make comp_surf_pbr -j"
115         ]
116       }
117     ]
118   },
119   "overwrite-existing": true,
120   "custom-device": {
121     "id": "desktop-auto",
122     "label": "Toyota flutter-auto",
123     "sdkNameAndVersion": "flutter-auto x86_64",
124     "platform": "linux-x64",
125     "enabled": true,
126     "ping": "bash -c \"${PING_CMD}\"",
127     "pingSuccessRegex": "Type=wayland",
128     "postBuild": "bash -c \"rm -rf ${PLATFORM_ID_DIR_RELATIVE}\"",
129     "install": "bash -c \"${STAGE_BUNDLE_FOLDER}\"",
130     "uninstall": "bash -c \"rm -rf ${PLATFORM_ID_DIR_RELATIVE}\"",
131     "runDebug": "bash -c \"${FLUTTER_AUTO_EXE}\"",
132     "forwardPort": null,
133     "forwardPortSuccessRegex": null,
134     "screenshot": null
135   }
136 }