option(WITH_GTEST_PARALLEL "Enable running gtest based tests in parallel" OFF)
if(WITH_GTEST_PARALLEL)
+ set(gtest_parallel_source_dir ${CMAKE_CURRENT_BINARY_DIR}/gtest-parallel)
include(ExternalProject)
ExternalProject_Add(gtest-parallel_ext
- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/gtest-parallel
+ SOURCE_DIR "${gtest_parallel_source_dir}"
GIT_REPOSITORY "https://github.com/google/gtest-parallel.git"
GIT_TAG "master"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "")
add_dependencies(tests gtest-parallel_ext)
+ find_package(PythonInterp 2.7 REQUIRED)
+ set(GTEST_PARALLEL_COMMAND
+ ${PYTHON_EXECUTABLE} ${gtest_parallel_source_dir}/gtest-parallel)
endif()
#sets uniform compiler flags and link libraries
set(UNITTEST "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${unittest_name}")
# If the second argument is "parallel", it means we want a parallel run
if(WITH_GTEST_PARALLEL AND "${ARGV1}" STREQUAL "parallel")
- ExternalProject_Get_Property(gtest-parallel_ext source_dir)
- set(UNITTEST ${source_dir}/gtest-parallel ${UNITTEST})
+ set(UNITTEST ${GTEST_PARALLEL_COMMAND} ${UNITTEST})
endif()
add_ceph_test(${unittest_name} "${UNITTEST}")
target_link_libraries(${unittest_name} ${UNITTEST_LIBS})