blob: 90741c9654ad333b08b815a41883dc45394d8094 [file] [log] [blame]
# Copyright 2024 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_perf_test/backend.cmake")
include("$ENV{PW_ROOT}/pw_sync/backend.cmake")
include("$ENV{PW_ROOT}/pw_thread/backend.cmake")
# Libraries
pw_add_library(pw_allocator.examples.named_u32 INTERFACE
HEADERS
named_u32.h
PUBLIC_INCLUDES
public
PUBLIC_DEPS
pw_bytes
pw_string
)
pw_add_library(pw_allocator.examples.custom_allocator STATIC
HEADERS
custom_allocator.h
PUBLIC_INCLUDES
public
PUBLIC_DEPS
pw_allocator.allocator
SOURCES
custom_allocator.cc
PRIVATE_DEPS
pw_log
pw_result
)
pw_add_library(pw_allocator.examples.custom_allocator_test_harness INTERFACE
HEADERS
custom_allocator_test_harness.h
PUBLIC_INCLUDES
public
PUBLIC_DEPS
pw_allocator.examples.custom_allocator
pw_allocator.test_harness
pw_allocator.testing
)
# Examples
pw_add_test(pw_allocator.examples.basic
PRIVATE_DEPS
pw_allocator.examples.named_u32
pw_allocator.allocator
pw_allocator.testing
SOURCES
basic.cc
)
pw_add_test(pw_allocator.examples.block_allocator
PRIVATE_DEPS
pw_allocator.examples.named_u32
pw_allocator.last_fit_block_allocator
SOURCES
block_allocator.cc
)
if((NOT "${pw_perf_test.timer_interface_BACKEND}" STREQUAL ""))
pw_add_test(pw_allocator.examples.custom_allocator_perf_test
PRIVATE_DEPS
pw_allocator.examples.custom_allocator_test_harness
pw_perf_test
pw_random
SOURCES
custom_allocator_perf_test.cc
)
endif()
pw_add_test(pw_allocator.examples.custom_allocator_test
PRIVATE_DEPS
pw_allocator.examples.custom_allocator
pw_allocator.examples.custom_allocator_test_harness
pw_allocator.examples.named_u32
pw_allocator.fuzzing
pw_allocator.testing
pw_containers.vector
pw_fuzzer.fuzztest
SOURCES
custom_allocator_test.cc
)
pw_add_test(pw_allocator.examples.linker_sections
PRIVATE_DEPS
pw_allocator.examples.named_u32
pw_allocator.allocator
pw_allocator.block_allocator
SOURCES
linker_sections.cc
)
pw_add_test(pw_allocator.examples.metrics
PRIVATE_DEPS
pw_allocator.examples.named_u32
pw_allocator.testing
pw_allocator.tracking_allocator
pw_tokenizer
SOURCES
metrics.cc
)
if((NOT "${pw_sync.interrupt_spin_lock_BACKEND}" STREQUAL "") AND
(NOT "${pw_thread.test_thread_context_BACKEND}" STREQUAL ""))
pw_add_test(pw_allocator.examples.spin_lock
PRIVATE_DEPS
pw_allocator.examples.named_u32
pw_allocator.synchronized_allocator
pw_allocator.testing
pw_sync.interrupt_spin_lock
pw_thread.test_thread_context
pw_thread.thread
pw_thread.thread_core
pw_assert
SOURCES
spin_lock.cc
)
endif()