1# Copyright (c) 2021 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//build/ohos.gni") 15import("//third_party/wayland_standard/wayland_protocol.gni") 16 17## Generate Wayland Protocols {{{ 18wayland_protocol("ivi_wm_protocol") { 19 sources = [ "protocol/ivi-wm.xml" ] 20} 21wayland_protocol("ivi_input_protocol") { 22 sources = [ "protocol/ivi-input.xml" ] 23} 24wayland_protocol("screen_info_protocol") { 25 sources = [ "screen-info/protocol/screen-info.xml" ] 26} 27 28## Generate Wayland Protocols }}} 29 30## Build ivi-controller.so {{{ 31config("ivi-controller_config") { 32 visibility = [ ":*" ] 33 34 include_dirs = [ 35 "//third_party/wayland_standard", 36 "//third_party/weston/compositor", 37 "//third_party/weston/ivi-shell", 38 "//third_party/weston/libweston", 39 "screen-info/module", 40 ] 41 42 cflags = [ 43 "-Wall", 44 "-Werror", 45 "-Wno-incompatible-pointer-types", 46 ] 47} 48 49config("ivi-controller_public_config") { 50 include_dirs = [ "weston-ivi-shell/src" ] 51} 52 53ohos_shared_library("ivi-controller") { 54 sources = [ "weston-ivi-shell/src/ivi-controller.c" ] 55 56 configs = [ ":ivi-controller_config" ] 57 58 public_configs = [ ":ivi-controller_public_config" ] 59 60 deps = [ 61 ":ivi_input_protocol", 62 "//third_party/wayland_standard:wayland_core_protocol", 63 "//third_party/weston:ivi_application_protocol", 64 "//third_party/weston:libexec_weston", 65 ] 66 67 public_deps = [ ":ivi_wm_protocol" ] 68 69 part_name = "graphic_standard" 70 subsystem_name = "graphic" 71} 72 73## Build ivi-controller.so }}} 74 75## Build ivi-input-controller.so {{{ 76config("ivi-input-controller_config") { 77 visibility = [ ":*" ] 78 79 include_dirs = [ 80 "//third_party/weston/ivi-shell", 81 "//third_party/weston/include/libweston", 82 "ivi-layermanagement-api/ilmCommon/include", 83 "weston-ivi-shell/src", 84 "//third_party/weston/libweston", 85 ] 86 87 cflags = [ 88 "-Wall", 89 "-Werror", 90 "-Wno-incompatible-pointer-types", 91 ] 92} 93 94config("ivi-input-controller_public_config") { 95 include_dirs = [] 96} 97 98ohos_shared_library("ivi-input-controller") { 99 sources = 100 [ "ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c" ] 101 102 configs = [ ":ivi-input-controller_config" ] 103 104 public_configs = [ ":ivi-input-controller_public_config" ] 105 106 deps = [ 107 ":ivi_input_protocol", 108 ":ivi_wm_protocol", 109 "//third_party/wayland_standard:wayland_core_protocol", 110 "//third_party/weston:ivi_application_protocol", 111 "//third_party/weston:libweston", 112 ] 113 114 public_deps = [] 115 116 part_name = "graphic_standard" 117 subsystem_name = "graphic" 118} 119 120## Build ivi-input-controller.so }}} 121 122## Build ivi-id-agent.so {{{ 123config("ivi-id-agent_config") { 124 visibility = [ ":*" ] 125 126 include_dirs = [ 127 "//third_party/weston/compositor", 128 "//third_party/weston/ivi-shell", 129 "//third_party/weston/include/libweston", 130 ] 131 132 cflags = [] 133} 134 135config("ivi-id-agent_public_config") { 136 include_dirs = [] 137} 138 139ohos_shared_library("ivi-id-agent") { 140 sources = [ "ivi-id-agent-modules/ivi-id-agent/src/ivi-id-agent.c" ] 141 142 configs = [ ":ivi-id-agent_config" ] 143 144 public_configs = [ ":ivi-id-agent_public_config" ] 145 146 deps = [ "//third_party/weston:libweston-desktop" ] 147 148 public_deps = [] 149 150 part_name = "graphic_standard" 151 subsystem_name = "graphic" 152} 153 154## Build ivi-id-agent.so }}} 155 156## Build libilmClient.so {{{ 157config("libilmClient_config") { 158 visibility = [ ":*" ] 159 160 include_dirs = [ "ivi-layermanagement-api/ilmCommon/include" ] 161 162 cflags = [ 163 "-Wall", 164 "-Werror", 165 ] 166} 167 168config("libilmClient_public_config") { 169 include_dirs = [ "ivi-layermanagement-api/ilmClient/include" ] 170} 171 172ohos_shared_library("libilmClient") { 173 sources = [ 174 "ivi-layermanagement-api/ilmClient/src/ilm_client.c", 175 "ivi-layermanagement-api/ilmClient/src/ilm_client_wayland_platform.c", 176 ] 177 178 configs = [ ":libilmClient_config" ] 179 180 public_configs = [ ":libilmClient_public_config" ] 181 182 deps = [ "//third_party/wayland_standard:libwayland_client" ] 183 184 public_deps = [ 185 "//third_party/wayland_standard:wayland_core_protocol", 186 "//third_party/weston:ivi_application_protocol", 187 ] 188 189 part_name = "graphic_standard" 190 subsystem_name = "graphic" 191} 192 193## Build libilmClient.so }}} 194 195## Build libilmCommon.so {{{ 196config("libilmCommon_config") { 197 visibility = [ ":*" ] 198 199 include_dirs = [] 200 201 cflags = [] 202} 203 204config("libilmCommon_public_config") { 205 include_dirs = [ "ivi-layermanagement-api/ilmCommon/include" ] 206} 207 208ohos_shared_library("libilmCommon") { 209 sources = [ 210 "ivi-layermanagement-api/ilmCommon/src/ilm_common.c", 211 "ivi-layermanagement-api/ilmCommon/src/ilm_common_wayland_platform.c", 212 ] 213 214 configs = [ ":libilmCommon_config" ] 215 216 public_configs = [ ":libilmCommon_public_config" ] 217 218 deps = [ 219 ":libilmControl", 220 "//third_party/wayland_standard:libwayland_client", 221 ] 222 223 public_deps = [] 224 225 part_name = "graphic_standard" 226 subsystem_name = "graphic" 227} 228 229## Build libilmCommon.so }}} 230 231## Build libilmControl.so {{{ 232config("libilmControl_config") { 233 visibility = [ ":*" ] 234 235 include_dirs = [ "ivi-layermanagement-api/ilmCommon/include" ] 236 237 cflags = [] 238} 239 240config("libilmControl_public_config") { 241 include_dirs = [ "ivi-layermanagement-api/ilmControl/include" ] 242} 243 244ohos_shared_library("libilmControl") { 245 sources = [ 246 "ivi-layermanagement-api/ilmControl/src/bitmap.c", 247 "ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c", 248 "ivi-layermanagement-api/ilmControl/src/writepng.c", 249 ] 250 251 configs = [ ":libilmControl_config" ] 252 253 public_configs = [ ":libilmControl_public_config" ] 254 255 deps = [ 256 ":ivi_input_protocol", 257 ":ivi_wm_protocol", 258 "//third_party/libpng:libpng", 259 "//third_party/wayland_standard:libwayland_client", 260 ] 261 262 public_deps = [] 263 264 part_name = "graphic_standard" 265 subsystem_name = "graphic" 266} 267 268## Build libilmControl.so }}} 269 270## Build libilmInput.so {{{ 271config("libilmInput_config") { 272 visibility = [ ":*" ] 273 274 include_dirs = [ "ivi-layermanagement-api/ilmCommon/include" ] 275 276 cflags = [] 277} 278 279config("libilmInput_public_config") { 280 include_dirs = [ "ivi-layermanagement-api/ilmInput/include" ] 281} 282 283ohos_shared_library("libilmInput") { 284 sources = [ "ivi-layermanagement-api/ilmInput/src/ilm_input.c" ] 285 286 configs = [ ":libilmInput_config" ] 287 288 public_configs = [ ":libilmInput_public_config" ] 289 290 deps = [ 291 ":ivi_input_protocol", 292 ":libilmControl", 293 "//third_party/wayland_standard:libwayland_client", 294 ] 295 296 public_deps = [] 297 298 part_name = "graphic_standard" 299 subsystem_name = "graphic" 300} 301 302## Build libilmInput.so }}} 303 304## Build layer-add-surfaces {{{ 305config("layer-add-surfaces_config") { 306 visibility = [ ":*" ] 307 308 include_dirs = [] 309 310 cflags = [] 311} 312 313ohos_executable("layer-add-surfaces") { 314 install_enable = true 315 316 sources = [ 317 "ivi-layermanagement-examples/layer-add-surfaces/src/layer-add-surfaces.c", 318 ] 319 320 configs = [ ":layer-add-surfaces_config" ] 321 322 deps = [ 323 ":libilmCommon", 324 ":libilmControl", 325 "//third_party/wayland_standard:wayland_core_protocol", 326 "//third_party/weston:ivi_application_protocol", 327 ] 328 329 part_name = "graphic_standard" 330 subsystem_name = "graphic" 331} 332 333## Build layer-add-surfaces }}} 334 335## Build LayerManagerControl {{{ 336config("LayerManagerControl_config") { 337 visibility = [ ":*" ] 338 339 include_dirs = [ "ivi-layermanagement-examples/LayerManagerControl/include" ] 340 341 cflags = [ "-Wno-header-hygiene" ] 342} 343 344ohos_executable("LayerManagerControl") { 345 install_enable = true 346 347 sources = [ 348 "ivi-layermanagement-examples/LayerManagerControl/src/Expression.cpp", 349 "ivi-layermanagement-examples/LayerManagerControl/src/ExpressionInterpreter.cpp", 350 "ivi-layermanagement-examples/LayerManagerControl/src/analyze.cpp", 351 "ivi-layermanagement-examples/LayerManagerControl/src/commands.cpp", 352 "ivi-layermanagement-examples/LayerManagerControl/src/common.cpp", 353 "ivi-layermanagement-examples/LayerManagerControl/src/control.cpp", 354 "ivi-layermanagement-examples/LayerManagerControl/src/input_commands.cpp", 355 "ivi-layermanagement-examples/LayerManagerControl/src/main.cpp", 356 "ivi-layermanagement-examples/LayerManagerControl/src/print.cpp", 357 "ivi-layermanagement-examples/LayerManagerControl/src/sceneio.cpp", 358 "ivi-layermanagement-examples/LayerManagerControl/src/util.cpp", 359 ] 360 361 configs = [ ":LayerManagerControl_config" ] 362 363 deps = [ 364 ":libilmCommon", 365 ":libilmControl", 366 ":libilmInput", 367 "//third_party/wayland_standard:wayland_core_protocol", 368 "//third_party/weston:ivi_application_protocol", 369 ] 370 371 part_name = "graphic_standard" 372 subsystem_name = "graphic" 373} 374 375## Build LayerManagerControl }}} 376 377## Build simple-weston-client {{{ 378config("simple-weston-client_config") { 379 visibility = [ ":*" ] 380 381 include_dirs = [ "//third_party/bounds_checking_function/include" ] 382 383 cflags = [ 384 "-Wall", 385 "-Werror", 386 "-Wno-unused-function", 387 "-Wno-unused-variable", 388 ] 389} 390 391ohos_executable("simple-weston-client") { 392 install_enable = true 393 394 sources = [ "ivi-layermanagement-examples/simple-weston-client/src/simple-weston-client.c" ] 395 396 configs = [ 397 ":simple-weston-client_config", 398 "//third_party/libdrm:libdrm_public_config", 399 ] 400 401 deps = [ 402 "//third_party/wayland-protocols_standard:linux_dmabuf_unstable_v1_protocol", 403 "//third_party/wayland-protocols_standard:viewporter_protocol", 404 "//third_party/wayland_standard:libwayland_client", 405 "//third_party/wayland_standard:libwayland_cursor", 406 "//third_party/wayland_standard:wayland_core_protocol", 407 "//third_party/weston:ivi_application_protocol", 408 "//third_party/weston:libweston", 409 "//utils/native/base:utils", 410 ] 411 412 part_name = "graphic_standard" 413 subsystem_name = "graphic" 414} 415 416## Build simple-weston-client }}} 417 418## Build libscreen-info-module.so {{{ 419config("libscreen-info-module_config") { 420 visibility = [ ":*" ] 421 422 include_dirs = [ 423 "//third_party/weston/compositor", 424 "//third_party/weston/include", 425 "//third_party/weston/ivi-shell", 426 ] 427 428 cflags = [] 429} 430 431config("libscreen-info-module_public_config") { 432 include_dirs = [ "screen-info/module" ] 433} 434 435ohos_shared_library("libscreen-info-module") { 436 sources = [ "screen-info/module/screen-info.c" ] 437 438 configs = [ ":libscreen-info-module_config" ] 439 440 public_configs = [ ":libscreen-info-module_public_config" ] 441 442 deps = [ 443 ":ivi-controller", 444 "//third_party/weston:libweston", 445 ] 446 447 part_name = "graphic_standard" 448 subsystem_name = "graphic" 449} 450 451## Build libscreen-info-module.so }}} 452 453## Build libtest-screen-info-module.so {{{ 454config("libtest-screen-info-module_config") { 455 visibility = [ ":*" ] 456 457 include_dirs = [ 458 "//third_party/weston/compositor", 459 "//third_party/weston/include", 460 "//third_party/weston/ivi-shell", 461 ] 462 463 cflags = [] 464} 465 466ohos_shared_library("libtest-screen-info-module") { 467 sources = [ "screen-info/test-module/call-screen-info.c" ] 468 469 configs = [ ":libtest-screen-info-module_config" ] 470 471 deps = [ 472 ":ivi-controller", 473 ":libscreen-info-module", 474 ":screen_info_protocol", 475 "//third_party/weston:libweston", 476 ] 477 478 part_name = "graphic_standard" 479 subsystem_name = "graphic" 480} 481 482## Build libtest-screen-info-module.so }}} 483 484## Build screen-info-module-test {{{ 485config("screen-info-module-test_config") { 486 visibility = [ ":*" ] 487 488 include_dirs = [] 489 490 cflags = [] 491} 492 493ohos_executable("screen-info-module-test") { 494 install_enable = true 495 496 sources = [ "screen-info/test/main.c" ] 497 498 configs = [ ":screen-info-module-test_config" ] 499 500 deps = [ 501 ":screen_info_protocol", 502 "//third_party/wayland_standard:libwayland_client", 503 ] 504 505 part_name = "graphic_standard" 506 subsystem_name = "graphic" 507} 508## Build screen-info-module-test }}} 509