blob: 937576d467f7f80e1a172c297a49d1fe81e5758f [file] [log] [blame] [edit]
# Copyright 2020 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)
include($ENV{PW_ROOT}/pw_trace_tokenized/backend.cmake)
pw_add_module_config(pw_trace_tokenized_CONFIG)
pw_add_library(pw_trace_tokenized.config INTERFACE
HEADERS
public/pw_trace_tokenized/config.h
PUBLIC_INCLUDES
public
PUBLIC_DEPS
${pw_trace_CONFIG}
)
pw_add_library(pw_trace_tokenized.fake_trace_time STATIC
PRIVATE_DEPS
pw_trace_tokenized.config
SOURCES
fake_trace_time.cc
)
pw_add_library(pw_trace_tokenized.host_trace_time STATIC
PRIVATE_DEPS
pw_trace_tokenized.config
SOURCES
host_trace_time.cc
)
pw_add_library(pw_trace_tokenized.core STATIC
HEADERS
public/pw_trace_tokenized/internal/trace_tokenized_internal.h
public/pw_trace_tokenized/trace_callback.h
public/pw_trace_tokenized/trace_tokenized.h
public_overrides/pw_trace_backend/trace_backend.h
PUBLIC_INCLUDES
public
public_overrides
PUBLIC_DEPS
pw_log
pw_span
pw_status
pw_tokenizer
SOURCES
trace.cc
PRIVATE_DEPS
pw_trace_tokenized.config
pw_assert
pw_ring_buffer
pw_trace.facade
pw_varint
${pw_trace_tokenizer_time}
)
pw_add_library(pw_trace_tokenized INTERFACE
PUBLIC_DEPS
pw_trace_tokenized.core
pw_trace_tokenized.config
PUBLIC_INCLUDES
public
public_overrides
PRIVATE_DEPS
${pw_trace_tokenizer_time}
)
if(("${pw_trace_BACKEND}" STREQUAL "pw_trace_tokenized") AND
(NOT "${pw_trace_tokenizer_time}" STREQUAL ""))
pw_add_test(pw_trace_tokenized.trace_tokenized_test
SOURCES
trace_test.cc
PRIVATE_DEPS
pw_trace_tokenized.core
pw_trace
${pw_trace_tokenizer_time}
GROUPS
modules
pw_trace_tokenized
)
endif()
pw_add_library(pw_trace_tokenized.trace_buffer STATIC
HEADERS
public/pw_trace_tokenized/trace_buffer.h
PUBLIC_INCLUDES
public
SOURCES
trace_buffer.cc
PRIVATE_DEPS
pw_trace_tokenized.core
PUBLIC_DEPS
pw_bytes
pw_ring_buffer
pw_tokenizer
pw_trace_tokenized.config
pw_varint
pw_span
PUBLIC_DEFINES
PW_TRACE_BUFFER_SIZE_BYTES=${pw_trace_tokenized_BUFFER_SIZE}
)
pw_proto_library(pw_trace_tokenized.protos
SOURCES
pw_trace_protos/trace_rpc.proto
pw_trace_protos/trace_service.proto
INPUTS
pw_trace_protos/trace_rpc.options
pw_trace_protos/trace_service.options
DEPS
pw_chrono.protos
)
pw_add_library(pw_trace_tokenized.rpc_service STATIC
SOURCES
trace_rpc_service_nanopb.cc
PRIVATE_DEPS
pw_assert
pw_log
pw_ring_buffer
pw_trace_tokenized.trace_buffer
pw_trace_tokenized.protos.nanopb_rpc
pw_varint
PUBLIC_DEPS
pw_tokenizer
pw_status
)
pw_add_library(pw_trace_tokenized.base_trace_service STATIC
HEADERS
public/pw_trace_tokenized/base_trace_service.h
SOURCES
base_trace_service.cc
PUBLIC_INCLUDES
public
PRIVATE_DEPS
pw_log
pw_stream
pw_ring_buffer
PUBLIC_DEPS
pw_trace_tokenized
pw_trace_tokenized.trace_buffer
)
pw_add_library(pw_trace_tokenized.trace_service_pwpb STATIC
SOURCES
trace_service_pwpb.cc
PRIVATE_DEPS
pw_chrono.system_clock
PUBLIC_DEPS
pw_trace_tokenized.base_trace_service
pw_trace_tokenized.protos.pwpb_rpc
)