diff --git a/CMakeLists.txt b/CMakeLists.txt index 6828533645f9bc1e1dbf4ced9b19fb7fc6f1169f..1a008550fc9dc469396b1cc686fd0d8afdc853ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,8 @@ find_package(Vulkan REQUIRED) find_package(OpenGL REQUIRED COMPONENTS GLX) find_package(HIDAPI) find_package(OpenHMD) - +find_package(Libcheck) +find_package(glfw3) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") find_package(X11) @@ -37,6 +38,7 @@ cmake_dependent_option(BUILD_WITH_HIDAPI "Enable HIDAPI-based OSVR HDK driver" O cmake_dependent_option(BUILD_WITH_WAYLAND "Enable Wayland support" ON "WAYLAND_FOUND" OFF) cmake_dependent_option(BUILD_WITH_XLIB "Enable xlib support" ON "X11_FOUND" OFF) cmake_dependent_option(BUILD_WITH_OPENGL "Enable OpenGL Graphics API support?" ON "OPENGL_FOUND" OFF) +cmake_dependent_option(BUILD_TESTING "Enable building of the test suite?" ON "LIBCHECK_FOUND AND glfw3_FOUND AND OPENGL_FOUND" OFF) if(NOT BUILD_WITH_OPENHMD AND NOT BUILD_WITH_HIDAPI) message(FATAL_ERROR "You must enable at least one driver: either provide OpenHMD and enable BUILD_WITH_OPENHMD (for a variety of devices via OpenHMD), or provide HIDAPI and enable BUILD_WITH_HIDAPI (for the HDK driver)") @@ -58,4 +60,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter") add_subdirectory(src) add_subdirectory(doc) -add_subdirectory(tests) +if(BUILD_TESTING) + include(CTest) + add_subdirectory(tests) +endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c136b733c55a47232672b5b03b272a76cfde2763..94d29e9536d818777eef4b1ac9f5f1cfa531fdc7 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,5 +1,5 @@ - -find_package(Libcheck REQUIRED) +# Copyright 2018-2019, Collabora, Ltd. +# SPDX-License-Identifier: BSL-1.0 add_executable(tests tests_common.c @@ -7,15 +7,15 @@ add_executable(tests tests_unit.c tests_system.c) -target_include_directories(tests PRIVATE "${CMAKE_SOURCE_DIR}/src") -target_include_directories(tests PRIVATE "${CMAKE_SOURCE_DIR}/src/external") -target_include_directories(tests PRIVATE "${CMAKE_SOURCE_DIR}/src/xrt/include") -target_include_directories(tests PRIVATE "${CMAKE_SOURCE_DIR}/src/xrt/state_trackers") -target_include_directories(tests PRIVATE "${CMAKE_SOURCE_DIR}/src/xrt/auxiliary") - -find_package(glfw3 3.2 REQUIRED) -find_package(OpenGL REQUIRED) -target_include_directories(tests PRIVATE ${OPENGL_INCLUDE_DIR}) +target_include_directories(tests PRIVATE + "${PROJECT_SOURCE_DIR}/src" + "${PROJECT_SOURCE_DIR}/src/external" + "${PROJECT_SOURCE_DIR}/src/xrt/include" + "${PROJECT_SOURCE_DIR}/src/xrt/state_trackers" + "${PROJECT_SOURCE_DIR}/src/xrt/auxiliary" +) -target_link_libraries(tests ${RUNTIME_TARGET} libcheck::check ${OPENGL_gl_LIBRARY} glfw X11) +target_link_libraries(tests ${RUNTIME_TARGET} libcheck::check OpenGL::GL glfw X11) +# TODO: adjust the runner so we can individually run test cases here. +add_test(NAME monado_tests COMMAND tests)