Skip to content

Commit 5c6d19e

Browse files
committed
Add CMake API for tests
1 parent 430ceb8 commit 5c6d19e

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,14 @@ project(scratchcpp-player VERSION 0.1 LANGUAGES CXX)
55
set(CMAKE_AUTOMOC ON)
66
set(CMAKE_CXX_STANDARD_REQUIRED ON)
77

8+
option(SCRATCHCPP_PLAYER_BUILD_UNIT_TESTS "Build unit tests" ON)
9+
810
find_package(Qt6 6.6 COMPONENTS Quick QuickControls2 REQUIRED)
911

12+
if (SCRATCHCPP_PLAYER_BUILD_UNIT_TESTS)
13+
find_package(Qt6 6.6 COMPONENTS Test REQUIRED)
14+
endif()
15+
1016
add_subdirectory(src)
1117
add_subdirectory(res)
1218

build/module_test.cmake

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
if (SCRATCHCPP_PLAYER_BUILD_UNIT_TESTS)
2+
set(TARGET ${MODULE}_test)
3+
set(TEST_MAIN_SRC ${PROJECT_SOURCE_DIR}/test/main.cpp)
4+
set(GTEST_DIR thirdparty/googletest)
5+
add_subdirectory(${PROJECT_SOURCE_DIR}/${GTEST_DIR} ${CMAKE_CURRENT_BINARY_DIR}/${GTEST_DIR})
6+
7+
include(GoogleTest)
8+
9+
add_executable(
10+
${TARGET}
11+
${TEST_MAIN_SRC}
12+
${MODULE_TEST_SRC}
13+
)
14+
15+
target_link_libraries(
16+
${TARGET}
17+
GTest::gtest_main
18+
Qt6::Gui
19+
Qt6::Test
20+
)
21+
22+
target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
23+
endif()

test/main.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#include <QGuiApplication>
2+
#include <gtest/gtest.h>
3+
4+
int main(int argc, char **argv)
5+
{
6+
QGuiApplication a(argc, argv);
7+
::testing::InitGoogleTest(&argc, argv);
8+
return RUN_ALL_TESTS();
9+
}

0 commit comments

Comments
 (0)