This is likely the cleaner approach compared to just enforcing a serial run for the CLI test.
57 lines
1.9 KiB
CMake
57 lines
1.9 KiB
CMake
cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
|
|
|
|
# metadata
|
|
set(META_PROJECT_NAME syncthingtesthelper)
|
|
set(META_PROJECT_TYPE library)
|
|
set(META_APP_NAME "Syncthing Tray Test Helper")
|
|
set(META_APP_DESCRIPTION "Helper for testing components of Syncthing Tray")
|
|
set(META_PUBLIC_QT_MODULES Core)
|
|
set(META_NO_INSTALL_TARGETS ON)
|
|
set(META_NO_CPP_UNIT ON)
|
|
set(META_TEST_TARGET_IS_MANUAL ON)
|
|
set(META_ADD_DEFAULT_CPP_UNIT_TEST_APPLICATION OFF)
|
|
|
|
# add project files
|
|
set(HEADER_FILES helper.h syncthingtestinstance.h)
|
|
set(SRC_FILES helper.cpp syncthingtestinstance.cpp)
|
|
|
|
set(TEST_HEADER_FILES)
|
|
set(TEST_SRC_FILES tests/manualtesting.cpp)
|
|
|
|
set(TS_FILES)
|
|
|
|
# don't allow adding a target suffix to the test library
|
|
set(SYNCTHINGTESTHELPER_CONFIGURATION_TARGET_SUFFIX none)
|
|
|
|
# find c++utilities
|
|
find_package(${PACKAGE_NAMESPACE_PREFIX}c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.0.0 REQUIRED)
|
|
use_cpp_utilities()
|
|
|
|
# find qtutilities (only CMake modules used)
|
|
find_package(${PACKAGE_NAMESPACE_PREFIX}qtutilities${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES} 6.0.0 REQUIRED)
|
|
list(APPEND CMAKE_MODULE_PATH ${QT_UTILITIES_MODULE_DIRS})
|
|
|
|
# find syncthingconnector
|
|
find_package(syncthingconnector ${META_APP_VERSION} REQUIRED)
|
|
use_syncthingconnector()
|
|
|
|
# link also explicitly against the following Qt modules
|
|
list(APPEND ADDITIONAL_QT_MODULES Network)
|
|
|
|
# include modules to apply configuration
|
|
include(BasicConfig)
|
|
include(QtConfig)
|
|
include(WindowsResources)
|
|
include(LibraryTarget)
|
|
include(TestTarget)
|
|
include(Doxygen)
|
|
include(ConfigHeader)
|
|
|
|
# exclude the target from 'all' target so it is only built when tests are built
|
|
set_target_properties("${META_TARGET_NAME}" PROPERTIES EXCLUDE_FROM_ALL ON)
|
|
|
|
# avoid running this test in parallel with other tests spawning a Syncthing test instance
|
|
if (META_MAIN_TEST_NAME)
|
|
set_tests_properties("${META_MAIN_TEST_NAME}" PROPERTIES RESOURCE_LOCK "syncthingtestinstance")
|
|
endif ()
|