43 lines
1017 B
CMake
43 lines
1017 B
CMake
# 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()
|