1# Copyright 2022 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15import("//build_overrides/pigweed.gni") 16 17import("$dir_pw_async/async.gni") 18import("$dir_pw_async/backend.gni") 19import("$dir_pw_async/fake_dispatcher_fixture.gni") 20import("$dir_pw_async/fake_dispatcher_test.gni") 21import("$dir_pw_async/heap_dispatcher.gni") 22import("$dir_pw_build/facade.gni") 23import("$dir_pw_build/target_types.gni") 24import("$dir_pw_chrono/backend.gni") 25import("$dir_pw_docgen/docs.gni") 26 27config("public_include_path") { 28 include_dirs = [ "public" ] 29} 30 31pw_source_set("dispatcher") { 32 public_configs = [ ":public_include_path" ] 33 public_deps = [ 34 ":types", 35 "$dir_pw_chrono:system_clock", 36 dir_pw_function, 37 dir_pw_status, 38 ] 39 public = [ 40 "public/pw_async/dispatcher.h", 41 "public/pw_async/function_dispatcher.h", 42 ] 43 visibility = [ 44 ":*", 45 "$dir_pw_async_basic:*", 46 "$dir_pw_bluetooth_sapphire/*", 47 "$dir_pw_grpc/*", 48 ] + pw_async_EXPERIMENTAL_MODULE_VISIBILITY 49} 50 51pw_facade("task") { 52 backend = pw_async_TASK_BACKEND 53 public_configs = [ ":public_include_path" ] 54 public_deps = [ 55 ":types", 56 "$dir_pw_chrono:system_clock", 57 dir_pw_function, 58 dir_pw_status, 59 ] 60 public = [ "public/pw_async/task.h" ] 61 visibility = [ 62 ":*", 63 "$dir_pw_async_basic:*", 64 "$dir_pw_bluetooth_sapphire/*", 65 "$dir_pw_grpc/*", 66 ] + pw_async_EXPERIMENTAL_MODULE_VISIBILITY 67} 68 69pw_source_set("types") { 70 public_configs = [ ":public_include_path" ] 71 public_deps = [ 72 dir_pw_function, 73 dir_pw_status, 74 ] 75 public = [ 76 "public/pw_async/context.h", 77 "public/pw_async/task_function.h", 78 ] 79 visibility = [ 80 ":*", 81 "$dir_pw_async_basic:*", 82 ] + pw_async_EXPERIMENTAL_MODULE_VISIBILITY 83} 84 85pw_facade("fake_dispatcher") { 86 backend = pw_async_FAKE_DISPATCHER_BACKEND 87 public_configs = [ ":public_include_path" ] 88 public = [ "public/pw_async/fake_dispatcher.h" ] 89 public_deps = [ ":dispatcher" ] 90 visibility = [ 91 ":*", 92 "$dir_pw_async_basic:*", 93 "$dir_pw_bluetooth_sapphire/*", 94 ] + pw_async_EXPERIMENTAL_MODULE_VISIBILITY 95} 96 97fake_dispatcher_fixture("fake_dispatcher_fixture") { 98 backend = ":fake_dispatcher" 99 visibility = [ 100 ":*", 101 "$dir_pw_async_basic:*", 102 "$dir_pw_bluetooth_sapphire/*", 103 ] + pw_async_EXPERIMENTAL_MODULE_VISIBILITY 104} 105 106pw_async_heap_dispatcher_source_set("heap_dispatcher") { 107 task_backend = ":task" 108 visibility = [ 109 ":*", 110 "$dir_pw_async_basic:*", 111 "$dir_pw_bluetooth_sapphire/*", 112 ] + pw_async_EXPERIMENTAL_MODULE_VISIBILITY 113} 114 115pw_test_group("tests") { 116} 117 118pw_doc_group("docs") { 119 sources = [ 120 "backends.rst", 121 "docs.rst", 122 ] 123} 124 125# Satisfy source_is_in_build_files presubmit step 126pw_source_set("satisfy_presubmit") { 127 sources = [ 128 "fake_dispatcher_test.cc", 129 "heap_dispatcher.cc", 130 "public/pw_async/fake_dispatcher_fixture.h", 131 "public/pw_async/heap_dispatcher.h", 132 ] 133 visibility = [] 134} 135