aboutsummaryrefslogtreecommitdiff
path: root/test/CMakeLists.txt
blob: c70cd1c99a71faab6fe6b900c1c1aaa66d53b598 (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
set(CMAKE_C_STANDARD 90)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)

# Enable testing
include(CTest)
enable_testing()

# Search files
file(GLOB TEST_FILES "src/*.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 all compiler warnings
    if(MSVC)
        target_compile_options("${TEST_NAME}" PRIVATE /W4 /WX)
    else()
        target_compile_options("${TEST_NAME}" PRIVATE -Wall -Wextra -Wpedantic -Werror -fstrict-aliasing)
    endif()

    # Enable coverage
    if(COVERAGE)
        target_compile_options("${TEST_NAME}" PRIVATE -coverage)
        target_link_options("${TEST_NAME}" PRIVATE -coverage)
    endif()
endforeach()