diff --git a/CMakeLists.txt b/CMakeLists.txt index 261a4c73..2aea0393 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,10 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type: Debug or Release" FORCE) endif() +if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) + include(CTest) +endif() + list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") enable_testing() diff --git a/README.md b/README.md index 8335019b..219bb084 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ Aside from standard search options (`ZLIB_INCLUDE_DIR`, `ZLIB_LIBRARY`, ...) the * `ENABLE_GLES1` - Enable OpenGL ES driver, legacy * `ENABLE_GLES2` - Enable OpenGL ES 2+ driver * `USE_SDL2` (default: platform-dependent, usually `ON`) - Use SDL2 instead of older native device code +* `BUILD_TESTING` (default: `ON`) - Build Catch2 tests e.g. on a Linux system you might want to build for local use like this: @@ -49,6 +50,19 @@ Run the following script in PowerShell: cd irrlicht cmake -B build -G "Visual Studio 17 2022" -A "Win64" -DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake -DBUILD_SHARED_LIBS=OFF cmake --build build --config Release + +Test +---- + +To run the Catch2 tests, the project must first be built with `BUILD_TESTING` enabled. + +The tests can be run with ctest: + + cd build + ctest + +Run the tests directly for more detailed output: + build/bin//tests Platforms --------- diff --git a/source/Irrlicht/tests/CMakeLists.txt b/source/Irrlicht/tests/CMakeLists.txt index cef86516..17c1092f 100644 --- a/source/Irrlicht/tests/CMakeLists.txt +++ b/source/Irrlicht/tests/CMakeLists.txt @@ -18,3 +18,9 @@ target_link_libraries(tests Catch2::Catch IrrlichtMt::IrrlichtMt ) + +add_test( + NAME tests + COMMAND "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tests" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" +) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2a137362..44d214db 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -576,6 +576,10 @@ if(WIN32) set_target_properties(IrrlichtMt PROPERTIES PREFIX "") # for DLL name endif() +if((CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) AND BUILD_TESTING) + add_subdirectory(tests) +endif() + # Installation of library install(TARGETS IrrlichtMt tinygltf EXPORT IrrlichtMt-export