blob: 7c31900cc129d35d9da8a489661a27c4219e778b [file]
# 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)
include($ENV{PW_ROOT}/pw_trace_tokenized/lock.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_varint
)
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
)
if(CONFIG_ZEPHYR_PIGWEED_MODULE)
pw_add_library(pw_trace_tokenized.zephyr_trace_time STATIC
PRIVATE_DEPS
pw_trace_tokenized.config
PUBLIC_DEPS
zephyr_interface
SOURCES
zephyr_trace_time.cc
)
if(CONFIG_PIGWEED_TRACE_TOKENIZED_TIME)
set(pw_trace_tokenizer_time pw_trace_tokenized.zephyr_trace_time CACHE STRING "Tokenizer trace time implementation" FORCE)
endif()
endif()
set(pw_trace_tokenized_LOCK_BACKEND pw_trace_tokenized.interrupt_spin_lock)
pw_add_library(pw_trace_tokenized.interrupt_spin_lock INTERFACE
HEADERS
public/pw_trace_tokenized/internal/interrupt_spin_lock_native.h
interrupt_spin_lock_public_overrides/pw_trace_tokenized_backend/lock_native.h
PUBLIC_INCLUDES
public
interrupt_spin_lock_public_overrides
PUBLIC_DEPS
pw_sync.interrupt_spin_lock
)
pw_add_library(pw_trace_tokenized.no_lock INTERFACE
HEADERS
public/pw_trace_tokenized/internal/no_lock_native.h
no_lock_public_overrides/pw_trace_tokenized_backend/lock_native.h
PUBLIC_INCLUDES
public
no_lock_public_overrides
PUBLIC_DEPS
pw_sync.no_lock
)
pw_add_facade(pw_trace_tokenized.lock INTERFACE
BACKEND
pw_trace_tokenized_LOCK_BACKEND
HEADERS
public/pw_trace_tokenized/internal/lock.h
PUBLIC_INCLUDES
public
)
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_trace_tokenized.config
pw_span
pw_status
pw_tokenizer
SOURCES
trace.cc
PRIVATE_DEPS
pw_trace_tokenized.lock
pw_trace.facade
pw_varint
${pw_trace_tokenizer_time}
)
pw_add_library(pw_trace_tokenized INTERFACE
PUBLIC_DEPS
pw_trace_tokenized.core
)
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_thread.sleep
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_span
pw_trace_tokenized.core
PUBLIC_DEPS
pw_bytes
pw_containers.algorithm
pw_containers.inline_var_len_entry_queue
pw_status
pw_trace_tokenized.config
PUBLIC_DEFINES
PW_TRACE_BUFFER_SIZE_BYTES=${pw_trace_tokenized_BUFFER_SIZE}
)
if("${pw_trace_BACKEND}" STREQUAL "pw_trace_tokenized")
pw_add_test(pw_trace_tokenized.trace_buffer_test
SOURCES
trace_buffer_test.cc
PRIVATE_DEPS
pw_trace
pw_trace_tokenized.trace_buffer
GROUPS
modules
pw_trace_tokenized
)
endif()
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
HEADERS
public/pw_trace_tokenized/trace_rpc_service_nanopb.h
PUBLIC_INCLUDES
public
PUBLIC_DEPS
pw_trace_tokenized.core
pw_trace_tokenized.trace_buffer
pw_log
SOURCES
trace_rpc_service_nanopb.cc
PRIVATE_DEPS
pw_trace_tokenized.protos.nanopb_rpc
)
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_trace_tokenized.trace_buffer
PUBLIC_DEPS
pw_status
pw_stream
pw_trace_tokenized.core
)
pw_add_library(pw_trace_tokenized.trace_service_pwpb STATIC
HEADERS
public/pw_trace_tokenized/trace_service_pwpb.h
SOURCES
trace_service_pwpb.cc
PUBLIC_INCLUDES
public
PUBLIC_DEPS
pw_trace_tokenized.base_trace_service
pw_trace_tokenized.protos.pwpb_rpc
)
pw_add_library(pw_trace_tokenized.transfer_handler STATIC
HEADERS
public/pw_trace_tokenized/transfer_handler.h
PUBLIC_INCLUDES
public
SOURCES
transfer_handler.cc
PRIVATE_DEPS
pw_containers.inline_var_len_entry_queue
pw_containers.var_len_entry_queue
pw_log
pw_trace_tokenized.trace_buffer
PUBLIC_DEPS
pw_trace_tokenized.config
pw_transfer
)
if("${pw_trace_BACKEND}" STREQUAL "pw_trace_tokenized")
pw_add_test(pw_trace_tokenized.transfer_handler_test
SOURCES
transfer_handler_test.cc
PRIVATE_DEPS
pw_string.builder
pw_tokenizer.decoder
pw_trace
pw_trace_tokenized
pw_trace_tokenized.decoder
pw_trace_tokenized.trace_buffer
pw_trace_tokenized.transfer_handler
GROUPS
modules
pw_trace_tokenized
)
endif()
pw_add_library(pw_trace_tokenized.decoder STATIC
HEADERS
public/pw_trace_tokenized/decoder.h
SOURCES
decoder.cc
PUBLIC_INCLUDES
public
PUBLIC_DEPS
pw_trace_tokenized
pw_bytes
pw_log
pw_result
pw_status
pw_stream
pw_string
pw_tokenizer.decoder
pw_varint.stream
pw_third_party.fuchsia.stdcompat
)