Add benchmarks, change project structure

This commit is contained in:
2025-10-12 10:20:09 +03:00
parent b1870bd709
commit 364d3a32ec
45 changed files with 323 additions and 51 deletions

42
bench/CMakeLists.txt Normal file
View File

@@ -0,0 +1,42 @@
# Project and C standard configuration
project(bhunit LANGUAGES C)
set(CMAKE_C_STANDARD 90)
set(CMAKE_C_STANDARD_REQUIRED ON)
# Disable extensions
set(CMAKE_C_EXTENSIONS OFF)
# Library code
set(BHBENCH_SOURCE
src/Bench.c
)
set(BHBENCH_HEADER
include/BH/Bench.h
)
# Library
add_library(BHBench STATIC ${BHBENCH_SOURCE} ${BHBENCH_HEADER})
target_include_directories(BHBench PUBLIC include)
target_link_libraries(BHBench BHLib)
# Enable testing
include(CTest)
enable_testing()
# Search files
file(GLOB TEST_FILES "tests/*.c")
foreach(TEST_FILENAME ${TEST_FILES})
# Add test
get_filename_component(TEST_NAME ${TEST_FILENAME} NAME_WE)
add_executable("${TEST_NAME}" ${TEST_FILENAME})
target_link_libraries("${TEST_NAME}" BHLib BHBench)
add_test(NAME "${TEST_NAME}" COMMAND "${TEST_NAME}")
# Enable coverage
if(ENABLE_COVERAGE)
target_compile_options("${TEST_NAME}" PRIVATE -coverage)
target_link_options("${TEST_NAME}" PRIVATE -coverage)
endif()
endforeach()