| # Copyright 2023 The Pigweed Authors |
| # |
| # 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 |
| # |
| # https://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. |
| |
| include($ENV{PW_ROOT}/pw_build/pigweed.cmake) |
| include($ENV{PW_ROOT}/pw_protobuf_compiler/proto.cmake) |
| |
| pw_add_library(pw_i2c.address STATIC |
| HEADERS |
| public/pw_i2c/address.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_assert |
| SOURCES |
| address.cc |
| ) |
| |
| pw_add_library(pw_i2c.initiator INTERFACE |
| HEADERS |
| public/pw_i2c/initiator.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_bytes |
| pw_chrono.system_clock |
| pw_i2c.address |
| pw_status |
| ) |
| |
| pw_add_library(pw_i2c.device INTERFACE |
| HEADERS |
| public/pw_i2c/device.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_bytes |
| pw_chrono.system_clock |
| pw_i2c.address |
| pw_i2c.initiator |
| pw_span |
| pw_status |
| ) |
| |
| pw_add_library(pw_i2c.register_device STATIC |
| HEADERS |
| public/pw_i2c/register_device.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_bytes |
| pw_chrono.system_clock |
| pw_i2c.address |
| pw_i2c.device |
| pw_i2c.initiator |
| pw_result |
| pw_status |
| PRIVATE_DEPS |
| pw_assert |
| SOURCES |
| register_device.cc |
| ) |
| |
| pw_proto_library(pw_i2c.protos |
| SOURCES |
| i2c.proto |
| INPUTS |
| i2c.options |
| PREFIX |
| pw_i2c |
| ) |
| |
| pw_add_library(pw_i2c.i2c_service STATIC |
| HEADERS |
| public/pw_i2c/i2c_service.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_chrono.system_clock |
| pw_i2c.initiator |
| pw_i2c.protos.pwpb_rpc |
| PRIVATE_DEPS |
| pw_containers.vector |
| pw_i2c.address |
| pw_status |
| SOURCES |
| i2c_service.cc |
| ) |
| |
| pw_add_library(pw_i2c.mock STATIC |
| HEADERS |
| public/pw_i2c/initiator_mock.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_bytes |
| pw_containers |
| pw_containers.to_array |
| pw_i2c.initiator |
| PRIVATE_DEPS |
| pw_assert |
| pw_unit_test |
| SOURCES |
| initiator_mock.cc |
| ) |
| |
| pw_add_library(pw_i2c.gmock INTERFACE |
| HEADERS |
| public/pw_i2c/initiator_gmock.h |
| PUBLIC_INCLUDES |
| public |
| PUBLIC_DEPS |
| pw_i2c.initiator |
| pw_third_party.googletest |
| ) |
| |
| pw_add_test(pw_i2c.address_test |
| SOURCES |
| address_test.cc |
| PRIVATE_DEPS |
| pw_i2c.address |
| GROUPS |
| modules |
| pw_i2c |
| ) |
| |
| if(NOT "${pw_chrono.system_clock_BACKEND}" STREQUAL "") |
| pw_add_test(pw_i2c.device_test |
| SOURCES |
| device_test.cc |
| PRIVATE_DEPS |
| pw_containers |
| pw_i2c.device |
| pw_i2c.mock |
| GROUPS |
| modules |
| pw_i2c |
| ) |
| |
| pw_add_test(pw_i2c.register_device_test |
| SOURCES |
| register_device_test.cc |
| PRIVATE_DEPS |
| pw_assert |
| pw_i2c.register_device |
| GROUPS |
| modules |
| pw_i2c |
| ) |
| |
| pw_add_test(pw_i2c.initiator_mock_test |
| SOURCES |
| initiator_mock_test.cc |
| PUBLIC_DEPS |
| pw_containers |
| pw_i2c.mock |
| GROUPS |
| modules |
| pw_i2c |
| ) |
| |
| pw_add_test(pw_i2c.i2c_service_test |
| SOURCES |
| i2c_service_test.cc |
| PUBLIC_DEPS |
| pw_containers.vector |
| pw_i2c.i2c_service |
| pw_i2c.mock |
| pw_rpc.test_utils |
| pw_status |
| GROUPS |
| modules |
| pw_i2c |
| ) |
| endif() |