PROJECT(OpenViBESDKTest) # ------------------ # Project variables # ------------------ SET(OVT_GLOBAL_VERSION_MAJOR 0) SET(OVT_GLOBAL_VERSION_MINOR 1) SET(OVT_GLOBAL_VERSION_PATCH 0) SET(OVT_GLOBAL_VERSION_STRING "${OVT_GLOBAL_VERSION_MAJOR}.${OVT_GLOBAL_VERSION_MINOR}.${OVT_GLOBAL_VERSION_PATCH}") IF(NOT DEFINED OVT_TEST_DATA_DIR) MESSAGE(FATAL_ERROR "Path to tests input data files is not set") ENDIF() # --------------------- # Project dependencies # --------------------- # Add some search directory to module path SET(OVT_CMAKE_DIR ${OV_BASE_DIR}/cmake-modules) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${OVT_CMAKE_DIR}) # Modify library prefixes and suffixes to comply to Windows or Linux naming IF(WIN32) SET(CMAKE_FIND_LIBRARY_PREFIXES "") SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") ELSEIF(APPLE) SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") SET(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".a") ELSE() SET(CMAKE_FIND_LIBRARY_PREFIXES "lib") SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") ENDIF() SET(GTEST_ROOT ${OV_CUSTOM_DEPENDENCIES_PATH}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest) FIND_PACKAGE(GTest REQUIRED) INCLUDE_DIRECTORIES(${GTEST_INCLUDE_DIRS}) # -------------------- # Test configuration # -------------------- # On Windows and Linux, some environment setting scripts are needed to ease the testing process SET(OVT_SCRIPT_DIR ${OV_BASE_BIN_DIR}/scripts) IF(WIN32) # Wrapper script that set the environment and launch ctest # It is located at build directory root to be as close as possible as standard ctest use CONFIGURE_FILE(${OV_BASE_DIR}/scripts/windows-ctest-launcher.cmd-base ${OV_BASE_BIN_DIR}/ctest-launcher.cmd) ELSEIF(UNIX) # Wrapper script that set the environment and launch ctest # It is located at build directory root to be as close as possible as standard ctest use CONFIGURE_FILE(${OV_BASE_DIR}/scripts/unix-ctest-launcher.sh-base ${OV_BASE_BIN_DIR}/ctest-launcher.sh) ENDIF() # ${PROJECT_BINARY_DIR}/Testing/Temporary is automatically created by CTest for log files # We create a temporary subdir for our test that will be create before each test is run # and removed afterwards (see CTestCustom.cmake.in) SET(OVT_TEST_TEMPORARY_DIR ${OV_BASE_BIN_DIR}/Testing/Temporary/OVT/) # Create test data directory for big or binary files FILE(MAKE_DIRECTORY ${OVT_TEST_DATA_DIR}) # Ctest custom options CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/CTestCustom.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake @ONLY) # Memcheck configuration IF(UNIX) FIND_PROGRAM(MEMORYCHECK_COMMAND valgrind /usr/bin/valgrind) FILE(TO_CMAKE_PATH "${CMAKE_SOURCE_DIR}/data/resources/valgrind.supp" MEMORYCHECK_SUPPRESSIONS_FILE) SET(MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --leak-check=full --run-libc-freeres=no --show-possibly-lost=no" ) ELSEIF(WIN32) FIND_PROGRAM(MEMORYCHECK_COMMAND purify "C:/Program Files (x86)/") ENDIF() # Timeout must be set first SET (DART_TESTING_TIMEOUT 72000 CACHE STRING "Maximum time allowed before CTest will kill the test." FORCE) INCLUDE(CTest) ENABLE_TESTING() # Utility variable for subproject SET(OVT_OPENVIBE_DATA ${CMAKE_CURRENT_BINARY_DIR}/data/openvibe) # ---------------------- # CMake tree processing # ---------------------- # Process tools first. # Some important variables are defined within tools projects for their use by other # projects as: # - OVT_UNIT_TOOLKIT_INCLUDE_DIR # - OVT_UNIT_TOOLKIT_TARGET_FILE # - OVT_ACCURACY_TARGET_FILE ADD_SUBDIRECTORY(unit-toolkit) INCLUDE_DIRECTORIES(${OVT_UNIT_TOOLKIT_INCLUDE_DIR}) # Process unit tests # When adding a new test driver, driver directory must be added here ADD_SUBDIRECTORY(ov-base) ADD_SUBDIRECTORY(openvibe-module-csv) ADD_SUBDIRECTORY(openvibe-module-fs) ADD_SUBDIRECTORY(openvibe-module-ebml) ADD_SUBDIRECTORY(openvibe-module-xml) ADD_SUBDIRECTORY(openvibe-module-socket) ADD_SUBDIRECTORY(openvibe-module-system) ADD_SUBDIRECTORY(openvibe-toolkit) ADD_SUBDIRECTORY(openvibe-kernel) ADD_SUBDIRECTORY(openvibe-plugin-stream-codecs)