|
1 | 1 | project(api-tests)
|
2 | 2 |
|
3 | 3 | set(TESTS_ROOT ${CMAKE_CURRENT_LIST_DIR})
|
4 |
| -set(VENDOR_DIR "${TESTS_ROOT}/vendor") |
5 | 4 |
|
6 |
| -add_subdirectory("${VENDOR_DIR}/Catch2-3.8.0") |
| 5 | +set(APP_ROOT "${TESTS_ROOT}/../api") |
| 6 | + |
| 7 | +find_package(Catch2 CONFIG REQUIRED) |
7 | 8 |
|
8 | 9 | set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
9 | 10 | set(THREADS_PREFER_PTHREAD_FLAG TRUE)
|
10 | 11 |
|
11 |
| -file(GLOB_RECURSE FOUND_TEST_SOURCES "${TESTS_ROOT}/*.test.cpp") |
| 12 | +# list(APPEND TEST_SOURCES ${TESTS_ROOT}/CMakeLists.txt) |
12 | 13 |
|
13 |
| -enable_testing() |
| 14 | +file(GLOB_RECURSE FOUND_TEST_SOURCES "${APP_ROOT}/*.test.cpp") |
14 | 15 |
|
15 |
| -set (TEST_SOURCES |
16 |
| - ${FOUND_TEST_SOURCES} |
17 |
| - ${TEST_SOURCES} |
18 |
| - ) |
| 16 | +enable_testing() |
19 | 17 |
|
20 |
| -add_executable(${PROJECT_NAME} ${TEST_SOURCES}) |
| 18 | +# Set TEST_SOURCES to the found test files. |
| 19 | +set(TEST_SOURCES ${FOUND_TEST_SOURCES}) |
21 | 20 |
|
22 |
| -target_include_directories(${PROJECT_NAME} PRIVATE |
23 |
| - ${CMAKE_BINARY_DIR} |
24 |
| - include |
25 |
| - ) |
| 21 | +if(NOT TEST_SOURCES) |
| 22 | + message(WARNING "No test source files found in ${APP_ROOT}.") |
| 23 | +endif() |
26 | 24 |
|
| 25 | +if(TEST_SOURCES) |
| 26 | + add_executable(${PROJECT_NAME} ${TEST_SOURCES}) |
27 | 27 |
|
28 |
| -if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") |
29 |
| -find_package(Threads REQUIRED) |
30 |
| -set(PLATFORM_LINKLIBS |
31 |
| - Threads::Threads |
32 |
| - ) |
33 |
| -endif() |
| 28 | + target_include_directories(${PROJECT_NAME} PRIVATE |
| 29 | + ${CMAKE_BINARY_DIR} |
| 30 | + include |
| 31 | + ) |
34 | 32 |
|
35 |
| -target_link_libraries(${PROJECT_NAME} |
36 |
| - PRIVATE |
37 |
| - SonicPi::API |
38 |
| - Catch2::Catch2WithMain |
39 |
| - ${PLATFORM_LINKLIBS} |
40 |
| - ${CMAKE_THREAD_LIBS_INIT}) |
| 33 | + if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") |
| 34 | + find_package(Threads REQUIRED) |
| 35 | + set(PLATFORM_LINKLIBS Threads::Threads) |
| 36 | + endif() |
41 | 37 |
|
42 |
| -add_test(${PROJECT_NAME} ${PROJECT_NAME}) |
| 38 | + target_link_libraries(${PROJECT_NAME} |
| 39 | + PRIVATE |
| 40 | + SonicPi::API |
| 41 | + Catch2::Catch2WithMain |
| 42 | + ${PLATFORM_LINKLIBS} |
| 43 | + ${CMAKE_THREAD_LIBS_INIT} |
| 44 | + ) |
43 | 45 |
|
44 |
| -SOURCE_GROUP(tests REGULAR_EXPRESSION ".*.test.(cpp|h)+") |
45 |
| -SOURCE_GROUP(tests FILES ${TEST_SOURCES}) |
| 46 | + add_test(${PROJECT_NAME} ${PROJECT_NAME}) |
46 | 47 |
|
| 48 | + SOURCE_GROUP(tests REGULAR_EXPRESSION ".*.test.(cpp|h)+") |
| 49 | + SOURCE_GROUP(tests FILES ${TEST_SOURCES}) |
| 50 | +endif() |
0 commit comments