Add benchmarks, change project structure
This commit is contained in:
42
bench/CMakeLists.txt
Normal file
42
bench/CMakeLists.txt
Normal 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()
|
||||
Reference in New Issue
Block a user