99
1010cmake_minimum_required (VERSION 3.1)
1111
12+ find_package (doctest REQUIRED)
13+ find_package (Threads)
14+
1215if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR )
1316 project (xtensor-test )
1417
@@ -118,46 +121,6 @@ else()
118121 message (FATAL_ERROR "Unsupported compiler: ${CMAKE_CXX_COMPILER_ID} " )
119122endif ()
120123
121- if (DOWNLOAD_GTEST OR GTEST_SRC_DIR)
122- if (DOWNLOAD_GTEST)
123- # Download and unpack googletest at configure time
124- configure_file (downloadGTest.cmake.in googletest-download/CMakeLists.txt)
125- else ()
126- # Copy local source of googletest at configure time
127- configure_file (copyGTest.cmake.in googletest-download/CMakeLists.txt)
128- endif ()
129- execute_process (COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR} " .
130- RESULT_VARIABLE result
131- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /googletest-download )
132- if (result)
133- message (FATAL_ERROR "CMake step for googletest failed: ${result} " )
134- endif ()
135- execute_process (COMMAND ${CMAKE_COMMAND} --build .
136- RESULT_VARIABLE result
137- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /googletest-download )
138- if (result)
139- message (FATAL_ERROR "Build step for googletest failed: ${result} " )
140- endif ()
141-
142- set (gtest_force_shared_crt ON CACHE BOOL "" FORCE)
143-
144- # Add googletest directly to our build. This defines
145- # the gtest and gtest_main targets.
146- add_subdirectory (${CMAKE_CURRENT_BINARY_DIR} /googletest-src
147- ${CMAKE_CURRENT_BINARY_DIR} /googletest-build EXCLUDE_FROM_ALL )
148-
149- set (GTEST_INCLUDE_DIRS "${gtest_SOURCE_DIR} /include" )
150- add_library (GTest::GTest INTERFACE IMPORTED )
151- target_link_libraries (GTest::GTest INTERFACE gtest)
152- add_library (GTest::Main INTERFACE IMPORTED )
153- target_link_libraries (GTest::Main INTERFACE gtest_main)
154- else ()
155- find_package (GTest REQUIRED)
156- endif ()
157-
158- find_package (Threads)
159-
160- include_directories (${GTEST_INCLUDE_DIRS} SYSTEM )
161124
162125# For unit test and coverity scan.
163126# The Coverity scanner takes time and it could cause build timeout(10mins) in Travis CI.
@@ -284,7 +247,7 @@ add_custom_target(
284247
285248foreach (filename IN LISTS COMMON_BASE XTENSOR_TESTS)
286249 string (REPLACE ".cpp" "" targetname ${filename} )
287- add_executable (${targetname} ${filename} ${TEST_HEADERS} ${XTENSOR_HEADERS} )
250+ add_executable (${targetname} main.cpp ${filename} ${TEST_HEADERS} ${XTENSOR_HEADERS} )
288251 if (XTENSOR_USE_XSIMD)
289252 target_compile_definitions (${targetname}
290253 PRIVATE
@@ -300,19 +263,16 @@ foreach(filename IN LISTS COMMON_BASE XTENSOR_TESTS)
300263 if (XTENSOR_USE_OPENMP)
301264 target_compile_definitions (${targetname} PRIVATE XTENSOR_USE_OPENMP)
302265 endif ()
303- if (DOWNLOAD_GTEST OR GTEST_SRC_DIR)
304- add_dependencies (${targetname} gtest_main)
305- endif ()
306266 target_include_directories (${targetname} PRIVATE ${XTENSOR_INCLUDE_DIR} )
307- target_link_libraries (${targetname} PRIVATE xtensor GTest::GTest GTest::Main ${CMAKE_THREAD_LIBS_INIT} )
267+ target_link_libraries (${targetname} PRIVATE xtensor doctest::doctest ${CMAKE_THREAD_LIBS_INIT} )
308268 add_custom_target (
309269 x${targetname}
310270 COMMAND ${targetname}
311271 DEPENDS ${targetname} ${filename} ${XTENSOR_HEADERS} )
312272 add_test (NAME ${targetname} COMMAND ${targetname} )
313273endforeach ()
314274
315- add_executable (test_xtensor_lib ${COMMON_BASE} ${XTENSOR_TESTS} ${TEST_HEADERS} ${XTENSOR_HEADERS} )
275+ add_executable (test_xtensor_lib main.cpp ${COMMON_BASE} ${XTENSOR_TESTS} ${TEST_HEADERS} ${XTENSOR_HEADERS} )
316276if (XTENSOR_USE_XSIMD)
317277 target_compile_definitions (test_xtensor_lib
318278 PRIVATE
@@ -329,12 +289,8 @@ if(XTENSOR_USE_OPENMP)
329289 target_compile_definitions (test_xtensor_lib PRIVATE XTENSOR_USE_OPENMP)
330290endif ()
331291
332- if (DOWNLOAD_GTEST OR GTEST_SRC_DIR)
333- add_dependencies (test_xtensor_lib gtest_main)
334- endif ()
335-
336292target_include_directories (test_xtensor_lib PRIVATE ${XTENSOR_INCLUDE_DIR} )
337- target_link_libraries (test_xtensor_lib PRIVATE xtensor GTest::GTest GTest::Main ${CMAKE_THREAD_LIBS_INIT} )
293+ target_link_libraries (test_xtensor_lib PRIVATE xtensor doctest::doctest ${CMAKE_THREAD_LIBS_INIT} )
338294
339295add_custom_target (xtest COMMAND test_xtensor_lib DEPENDS test_xtensor_lib)
340296add_test (NAME xtest COMMAND test_xtensor_lib)
@@ -345,9 +301,5 @@ add_test(NAME xtest COMMAND test_xtensor_lib)
345301add_library (test_xtensor_core_lib ${COMMON_BASE} ${TEST_HEADERS} ${XTENSOR_HEADERS} )
346302target_include_directories (test_xtensor_core_lib PRIVATE ${XTENSOR_INCLUDE_DIR} )
347303
348- if (DOWNLOAD_GTEST OR GTEST_SRC_DIR)
349- add_dependencies (test_xtensor_core_lib gtest_main)
350- endif ()
351-
352- target_link_libraries (test_xtensor_core_lib PRIVATE xtensor GTest::GTest GTest::Main ${CMAKE_THREAD_LIBS_INIT} )
304+ target_link_libraries (test_xtensor_core_lib PRIVATE xtensor doctest::doctest ${CMAKE_THREAD_LIBS_INIT} )
353305add_custom_target (coverity COMMAND coverity_scan DEPENDS test_xtensor_core_lib)
0 commit comments