aboutsummaryrefslogtreecommitdiff
path: root/test/CMakeLists.txt
blob: e5a230d29f453aaf111c4b918ae8ebc254585aa4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 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(BHUNIT_SOURCE
    src/Unit.c
)

set(BHUNIT_HEADER
    include/BH/Unit.h
)

# Library
add_library(BHUnit STATIC ${BHUNIT_SOURCE} ${BHUNIT_HEADER})
target_include_directories(BHUnit PUBLIC include)

# 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 BHUnit)
    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()